- Split out from D10169 to make it slimmer
Details
- Reviewers
mat rakuco - Group Reviewers
kde - Commits
- rP437956: New port: multimedia/QtAV
Diff Detail
- Repository
- rP FreeBSD ports repository
- Lint
No Lint Coverage - Unit
No Test Coverage - Build Status
Buildable 8588 Build 8902: arc lint + arc unit
Event Timeline
FWIW, I ported this a while back for some other port that flopped and never submitted since it would just be a leaf. Very close to what you did. I'll just add that since we have many users still using portmaster/portupgrade, this will auto-dectect optional dependencies already installed including audio/openal(-soft), audio/pulseaudio, multimedia/libass, multimedia/libva, and textproc/uchardet. All of those probably should be optionified so that the dependencies are registered properly. The regression tests could probably be optionified too. I don't really have a strong opinion on the ones that you have as hard dependencies, so that leaves openal and uchardet to deal with.
I did experience extremely choppy (to the point of being ridiculous) audio playback using pulseaudio with the example player. Not sure if it's just me or if it should just be disabled so users aren't getting a bad experience. Openal worked just fine, but IIRC it would default to pulseaudio if both were installed and there was no way that I could find to select which one to use. Without openal, there was no sound at all. It would play videos (no sound) and would not attempt to play audio files at all.
If anyone else can verify, I would just disable pulseaudio completely and add openal as a hard dependency.
@jhale: nice to see you around! Thanks for the detailed explanation.
@tcberner: https://github.com/wang-bin/QtAV/wiki/QtAV-Build-Configurations explains how to enable/disable checks for several of the features Jason mentioned, it's worth taking a look at. I'm also curious as to whether the libraries, binaries and headers should be installed into Qt's prefix. Isn't it more logical to install them into ${LOCALBASE} instead?
First step to optionify the optional dependencies.
I'm not quite sure yet wheter it actually works as expected.
It seems to never pick up portaudio (which might be a good thing wrt to @jhale's comments), but always libva and openal.
uchardet and pulseaudio seems to work as expected.
I'll have to look into the qmake stuff... for libva and openal.
Don't install to Qt's directories, but to ${LOCALBASE}/{bin,include,lib} as suggested by @rakuco.
What kind of problems did you have with openal and libva? I test-built the port here with the options checked, then unset them and the configuration process did not look for them. Same with starting the build with the options disabled, so the dependency packages aren't even installed.
multimedia/QtAV/Makefile | ||
---|---|---|
20 | Poudriere says you need USE_GL=gl too. | |
52–53 | Why are these two needed? |
I edited my previous comment. Pulseaudio is what what causing trouble, not portaudio. (I always get those two mixed up).
I never tested portaudio because it was conditioned to always be off in QtAV.pro.
Line 58 has: win32:macx:!android:!winrt:!no-portaudio: OptionalDepends *= portaudio
I removed the blocking conditions and tried the example player with portaudio only and it seems to work fine.
When building it outside of poudieire with those installed and the options unset it is still linked against.
no worries. I think I'll just keep it as an option
I never tested portaudio because it was conditioned to always be off in QtAV.pro.
Line 58 has: win32:macx:!android:!winrt:!no-portaudio: OptionalDepends *= portaudio
yes that confused me :D
That's what I couldn't reproduce here with Poudriere:
- poudriere testbuild -i with your patch.
- make clean inside the jail.
- Remove OPENAL and VAAPI from OPTIONS_DEFINE.
- make build manually in the same jail (so that libva and openal-soft are still installed).
- According to readelf -d /wrkdirs/usr/ports/multimedia/QtAV/work/.build/lib_unix_x86_64_llvm/libQtAV.so, neither libva.so nor libopenal.so are linked against.
Drop PORTAUDIO option.
The other options work, I used ldd to check :) -- lesson learned.