-
Notifications
You must be signed in to change notification settings - Fork 228
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Android: Use C++17, update to liboboe 1.6.1, improve oboe source handling #2472
Conversation
liboboe 1.6.1 (and maybe earlier versions) requires C++17 for std::timed_mutex
Instead of hardcoding the list of relevant .cpp and .h files, use qmake's $$files to detect the sources. This makes liboboe updates easier and makes Jamulus.pro more readable. It has been confirmed that the hardcoded list of .cpp and .h files closely matches the list of available files. In other words, this commit does not change the content of the variables a lot, it just switches from hardcoding to dynamic detection. The new approach adds a single new .h file which was not listed previously: libs/oboe/src/flowgraph/resampler/KaiserWindow.h
This updates the included git submodule from a 01/2021 manual commit to the latest stable version. We should aim to use the latest supported version. There are also unresolved CodeQL warnings about our current liboboe tree.
I can't test Android at the moment. @ngocdh @j-santander I think you know a bit more about Android? |
Sorry I can't help here. |
I've just tried it on my phone (Moto G4 Play -- rather old meanwhile). Jamulus starts, I can connect and audio is at least as "good", maybe even better than with the previous version. However, audio still sounds broken, but I suspect that's related to the phone performance and maybe the capturing buffer size (which I can't adjust due to UI problems). |
You need to test audio over 4G/5G but probably it’s ok like that. |
Which raises a good point - we need to stop concentrating on anything on the Android build (and iOS?) apart from fixing the UI. It borders on useless on my Moto G9 Power (which has a wide, short display so cuts off the bottom of every window). |
iOS works fine for me over LTE. |
I think that's tracked in #1529 (although I don't know about anyone working on it). I agree that it should be a priority for all Android-related things, but I don't think we should block PRs like this which are basic maintenance. |
Not at all. But I'd rather anyone putting effort into Android was making it useable. |
After doing
This suggests that the latest is 1.5.1, not 1.6.1 - was the latter a typo? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm happy this PR does what it intends to. I can build on my Ubuntu 20 VM. I have compared the makefiles generated by qmake
for this commit with those for the branch point, and verified that the $$files(... , true)
calls find all the correct files. I have loaded the apk from this PR on my Android phone, and it runs equally well or badly as the previous version I had loaded. There are issues that need to be investigated and understood in the Android port, but they are independent of this PR.
Well, this is interesting. I was certainly planning to update to 1.6.1, which is the latest release. The release page (and 1.6.1 tag) point to the very commit you listed.
Based on the following output (I haven't found a better way to display this than `--verify`), 1.5.1 is such an annotated commit which is used by `git describe` by default, while 1.6.1 isn't:
So, in summary:
|
Short description of changes
Android: Build with C++17 support in preparation for oboe 1.6.1 update
liboboe 1.6.1 (and maybe earlier versions) requires C++17 for std::timed_mutex
Android: Detect liboboe sources automatically
Instead of hardcoding the list of relevant .cpp and .h files, use qmake's $$files to detect the sources. This makes liboboe updates easier and makes Jamulus.pro more readable.
It has been confirmed that the hardcoded list of .cpp and .h files closely matches the list of available files. In other words, this commit does not change the content of the variables a lot, it just switches from hardcoding to dynamic detection. The new approach adds a single new .h file which was not listed previously:
libs/oboe/src/flowgraph/resampler/KaiserWindow.h
Android: Update liboboe to 1.6.1
This updates the included git submodule from a 01/2021 manual commit to the latest stable version.
We should aim to use the latest supported version. There are also unresolved CodeQL warnings about our current liboboe tree, which might already be fixed in newer versions.
Jamulus.pro: Fix wrong indentation in Android block
CHANGELOG: Android: Improved compilation and updated liboboe to 1.6.1
Context: Fixes an issue?
Does this change need documentation? What needs to be documented and how?
No.
Status of this Pull Request
Ready code-wise.
What is missing until this pull request can be merged?
Checklist