Comments (86)
Hi guys, I have submitted libldac to Fedora and the aptx module to RPMFusion. They will find their home there... review just takes time. :)
EDIT: it's live!
The RPMFusion build doesn't support the AAC codec due to licensing restrictions. Please build your own if you need AAC support.
Enable the RPMFusion (free) repository.
Then install the package and restart Pulseaudio:
sudo dnf install pulseaudio-module-bluetooth-freeworld --allowerasing
pulseaudio -k
from pulseaudio-modules-bt.
Okay everyone, the package is in the RPMFusion Free repos.
@EHfive please update the Fedora description:
The RPMFusion build doesn't support the AAC codec due to licensing restrictions. Please build your own if you need AAC support.
Enable the RPMFusion (free) repository.
Then install the package and restart Pulseaudio:
sudo dnf install pulseaudio-module-bluetooth-freeworld --allowerasing
pulseaudio -k
from pulseaudio-modules-bt.
@gombosg I am not a packager, but I maintain RISC-V 64-bit Fedora port thus I can help with technical bits.
Btw, people are writing about the project and your work:
- https://eischmann.wordpress.com/2019/02/11/better-bluetooth-sound-quality-on-linux/
- https://www.phoronix.com/scan.php?page=news_item&px=Better-Bluetooth-Linux-Audio
from pulseaudio-modules-bt.
Hi guys, I have submitted libldac to Fedora and the aptx module to RPMFusion. They will find their home there... review just takes time. :)
In the meantime you can indeed install the RPMs directly.
Can't it be package the way that it could get into Fedora and at least enable LDAC there and then it could be extended by some package from RPMFusion with support for AptX, AptX-HD etc.? It's a pity to rely on RPMFusion even for LDAC if it's accepted in Fedora.
from pulseaudio-modules-bt.
Actually, you can use fdk-aac-free licensed under FDK-AAC
fdk-aac-free don't support AAC-HE, but AAC format in A2DP transmission is AAC-LC.
fdk-aac-free and fdk-aac(non-free) share most ABI in AAC-LC case, so I don't need to change anything in pulseaudio-modules-bt to support fdk-aac-free.
from pulseaudio-modules-bt.
from pulseaudio-modules-bt.
@Sesivany : it has to be built with these nonfree libraries present and that counts as a dependency. I became a Fedora packager, too because of this. 🙂 See this:
All package dependencies (build-time or runtime, regular, weak or otherwise) MUST ALWAYS be satisfiable within the official Fedora repositories.
So this has to go to RPMFusion.
I requested the package in RPMFusion, it was approved by a reviewer, but another reviewer disapproved (?) - it's technically approved (the fedora-review +
flag is there) but they don't give me the repo to upload the package to, and don't give me any exact rejection reasons or guidelines.
So I'm pretty much stuck at this point despite putting so much work into the project. Poor thing.
The conversation you linked is interesting. Yes, Pali Rohár's patches are on the way to upstream PA but we don't know how much time it takes to integrate them. There was indeed discussion about @EHfive 's patches on the PA mailing list, but in the end they weren't integrated due to multiple reasons.
There are a lot of licensing issues, yes.
- Libldac is ApacheV2
- ffmpeg is LGPL 2.1
- FDK-AAC has its own license which can be free, but is GPL-incompatible
- Upstream PA is LGPL 2.1
- This project is now GPLv3 which is compatible with ApacheV2 and LGPL2.1, and with extra distribution permission, with FDK-AAC-free.
Problem is that while @EHfive can relicense this project under GPLv3, the Pulseaudio project may not want to do the same.
from pulseaudio-modules-bt.
It does not matter if you link to library or not. Important is if you use that library (either statically bundled or dynamically loaded, or whatever...) and how you call functions of that library. GPL license does not allows you to call GPL-incompatible functions and pass memory from GPL software.
So trying to figure out some tricks how to load GPL-incompatible library at runtime via plugins or whatever would lead just to GPL-violations.
See:
https://www.gnu.org/licenses/gpl-faq.html#GPLStaticVsDynamic
https://www.gnu.org/licenses/gpl-faq.html#GPLPlugins
from pulseaudio-modules-bt.
Okay, the package has been accepted without AAC support. Sorry guys but the FDK-AAC license is really messy. It currently supports LDAC and aptX. You have to build your own for AAC or wait for ffmpeg AAC support.
Testing is appreciated!
The package should be in the updates-testing repo of RPM Fusion or you can download it here.
You can install with
sudo dnf install pulseaudio-module-bluetooth-freeworld --allowerasing
or use the RPM file name in the above command in case of a direct download.
from pulseaudio-modules-bt.
@makruiten look, authors of FDK-AAC library decided that they do not want their library to be used in pulseaudio and also any other GPL software. So this is not problem of pulseaudio, but in authors of FDK-AAC library licensing options. They decided to not allow such thing and you need to respect their will. It is same like if you create something on your own and do not want that somebody else take it from you and would do something with that your own thing against you.
from pulseaudio-modules-bt.
libldac
is installed.
I tried switching from gnome panel. It changes when I switch from low quality plugin to SBC. Switching to LDAC does not do anything. I hope that package is OK. I will try to build it.
from pulseaudio-modules-bt.
@gombosg its working. I have instaled only libldac and the latest package of pulseaudio
/usr/lib64 » ll | grep libldacBT_enc.so vsadilek@ntbvsa
lrwxrwxrwx 1 root root 24 15. úno 15.51 libldacBT_enc.so.2 -> libldacBT_enc.so.2.0.2.2
-rwxr-xr-x 1 root root 52K 15. úno 15.51 libldacBT_enc.so.2.0.2.2
from pulseaudio-modules-bt.
@gombosg also please update the code because the version currently in the repository is outdated and crashes due to missing commit fe90c44
from pulseaudio-modules-bt.
Tested AAC, works fine. Much better quality now. Thanks for this!
from pulseaudio-modules-bt.
@groeffen Thanks, finally I can push it to F30 testing then stable!
@OkropNick In GNOME Control Center you can try switching codecs. There the SBC codec is for making phone calls. You can also read more in the wiki.
EDIT: this AAC update will only be available for F30 since fdk-aac-free
is not available for F29.
from pulseaudio-modules-bt.
@moontide sorry, yeah, since it needs an update with new PA versions in Fedora, it will break every now and then. 🤷♂️ Unfortunately we can never perfectly sync Fedora updates with RPMFusion. OTOH I subscribed for the PA source notifications to never miss updates again.
from pulseaudio-modules-bt.
Add libldac please.
https://github.com/EHfive/ldacBT
Also patch https://github.com/EHfive/pulseaudio-modules-bt/releases/tag/patch_v3
for AAC support. (If didn't)
from pulseaudio-modules-bt.
wiki updated
next time just mail me ( eh5 at sokka.cn )
from pulseaudio-modules-bt.
Thanks, I'll update to patch 3 & integrate libldac
.
from pulseaudio-modules-bt.
I updated it, please test Fedora users: https://copr.fedorainfracloud.org/coprs/gombosg/pulseaudio-modules-bt-aptx/
from pulseaudio-modules-bt.
@gombosg seems this copr repo has been removed. It worked fine this morning when I installed. Did something happen?
from pulseaudio-modules-bt.
Yes, I just got mail today:
Hi,
Unfortunately, I had to delete your gombosg/pulseaudio-modules-bt-aptx
copr. It contains packages which cannot be distributed by Fedora due to
legal concerns.Please remember that legally encumbered items may not be included in
either Fedora or Coprs.Thanks,
Tom Callaway
Fedora Legal
I was suspecting that this might happen one day. I love Fedora but f*ck them for censoring COPR repos.
What now...? Maybe submitting the package to RPMFusion? (Does anyone know an RPMFusion packager to get this sponsored...) Waiting till it gets merged into PulseAudio?
Sources are here:
https://pagure.io/libldac
https://pagure.io/pulseaudio-module-bluetooth-aptx
from pulseaudio-modules-bt.
I guess RPMFusion would be the best bet, or some other repo. I have no clue how to submit packages/get packages to rpmfusion though or if there would be other "public" repos that would take it.
Shame really, just got my F29 set up the way i like it with this, never could get this to work with my manjaro install.
from pulseaudio-modules-bt.
@gombosg i found this from rpmfusion: https://rpmfusion.org/Contributors#Submitting_a_new_package
or you can ask in #rpmfusion channel in irc.freenode.net
from pulseaudio-modules-bt.
Thanks!
[EDIT: see my latest comment for latest RPMs]
from pulseaudio-modules-bt.
@EHfive What is the status for merging into upstream? If not expected, I'll post to RPMFusion since getting kicked out from the Fedora COPR repo.
from pulseaudio-modules-bt.
@gombosg thanks for the rpm, but it can't be installed because no libldac can be found (as its not in any repo)
from pulseaudio-modules-bt.
@EHfive What is the status for merging into upstream? If not expected, I'll post to RPMFusion since getting kicked out from the Fedora COPR repo.
Currently it won't be merged.
from pulseaudio-modules-bt.
@inffy I added it to my comment above... seems that going to RPMFusion is the way currently. I'll look into it in the upcoming days.
from pulseaudio-modules-bt.
Maybe we could re-open the issue until a user-friendly (i.e repository) solution is found and added into the wiki? So people can subscribe to it and get a decent overview on the RPM situation.
from pulseaudio-modules-bt.
No need. It's not hard to install two rpm files.
from pulseaudio-modules-bt.
But they won't be kept up to date eventually.
Plus for some users, yes it is, you even need to search the issue, the doc doesn't state it (probably because it isn't the intended way to serve the packages in the (near) future).
from pulseaudio-modules-bt.
Just discovered this package a day ago. I am happy to help with any SPEC/RPM related questions/issues. Looks like libldac is stuck on FE-Legal
, but comments are positive here.
There is a comment regarding "fdk-aac" package, which basically means that this targets nonfree repo in RPMFusion.
Nice work!
from pulseaudio-modules-bt.
@davidlt Thanks, the package would be approved soon, they just need to lift the FE-LEGAL bug.
Are you a Fedora packager yourself? I could use some guidance getting into reviewing packages. :)
from pulseaudio-modules-bt.
@Sesivany Would be great but according to the Fedora legal & packaging guidelines:
- Patent-encumbered stuff is not allowed (ffmpeg)
- All build dependencies must be within the Fedora repos
I'm just the packager, @EHfive can tell whether it's possible to create or build the package without ffmpeg and AAC present, with only LDAC. (I guess that version won't have aptX and AAC support even if the codec packages are installed.)
It's not impossible but not sure either. Essentially it wouldn't be a new package then, just a patch to be applied against the Fedora version of PA and a PR could be submitted here.
In RPMFusion we already started the discussion and it will simply be a pulseaudio-module-bluetooth-nonfree
package replacing the original, that would contain all codecs.
Edit: to sum up, if libldac
gets into the Fedora repos and it's possible to convert the project into a patch with LDAC only, then I will submit a PR to the Fedora version of PA.
from pulseaudio-modules-bt.
I'm just the packager, @EHfive can tell whether it's possible to create or build the package without ffmpeg and AAC present, with only LDAC. (I guess that version won't have aptX and AAC support even if the codec packages are installed.)
Right. In the next release, I would probably make FDK-AAC/ffmpeg/LDAC be optional at building stage.
from pulseaudio-modules-bt.
That would really help because then we could have it at least with LDAC support in Fedora/RHEL (and other patent-concerned distributions) by default although some claim there is also a problem with LGPL 2.1->Apache License compatibility. But this project has had 3 contributors so far, so it shouldn't be such a problem to grant an exception if necessary.
from pulseaudio-modules-bt.
The soname version number for fdk-aac in rpmfusion is 2, not 1:
[root@localhost ~]# rpm -Uhv /tmp/libldacbt-1.1-1.fc29.x86_64.rpm /tmp/pulseaudio-module-bluetooth-aptx-12.2-1.fc29.x86_64.rpm
error: Failed dependencies:
libfdk-aac.so.1()(64bit) is needed by pulseaudio-module-bluetooth-aptx-12.2-1.fc29.x86_64
[root@localhost ~]# rpm -ql fdk-aac | grep libfdk-aac
/usr/lib64/libfdk-aac.so.2
/usr/lib64/libfdk-aac.so.2.0.0
from pulseaudio-modules-bt.
Just reporting: the packages provided here don't seem to survive upgrade to Fedora 30. They stay installed, but I'm back from LDAC to SBC after the upgrade.
from pulseaudio-modules-bt.
Hopefully the RPMFusion package gets reviewed soon and then we should be good...
from pulseaudio-modules-bt.
The review process is crazy slow, so I'm giving you some new RPMs in the meantime. Sorry. Been waiting for a review for months now.
The below zip contains F29 RPMs.
pulseaudio-module-bluetooth-nonfree.zip
from pulseaudio-modules-bt.
Thanks! It doesn't replace the existing packages from the COPR repo. I gues I can remove them with sudo rpm -e --nodeps libldacbt-1.1-1.fc29.x86_64 pulseaudio-module-bluetooth-aptx-12.2-1.fc29.x86_64
? Removing them with dnf also removes a whole lot of bogus dependencies.
from pulseaudio-modules-bt.
Something else: the package that you've just provided doesn't support AAC, is that right?
from pulseaudio-modules-bt.
Yes, you can remove the old COPR stuff, the repo has been disabled for quite some time now.
I checked, it's because fdk-aac-devel
was not installed (I specified fdk-aac
, which was a mistake). Corrected it and updated the ZIP. @makruiten please tell me if it works. It doesn't build on Rawhide (fdk-aac 2.0) though so I need to raise an issue for that.
from pulseaudio-modules-bt.
It works now, thanks.
Yes, I knew it was disabled and that those could be removed, it was more about the method of removing, since dnf wanted to remove a lot of dependent packages. For people browsing this issue: use my command from #20 (comment) instead of dnf to remove the old COPR packages.
from pulseaudio-modules-bt.
#43 is the 2.0 fdk-aac
build issue.
The RPMFusion package got approved by a reviewer, then another person jumped in that "it shouldn't be approved like this", so I'm confused (and a bit upset) now. We'll see about that.
from pulseaudio-modules-bt.
from pulseaudio-modules-bt.
He sponsored me as a packager in Fedora, so I wouldn't say that. :)
I understand his stance, I'm just upset because he didn't take the review (the package has been sitting there for some time), and after someone reviewed and approved, he is making a rather vague comment about what should or shouldn't be done about the package.
from pulseaudio-modules-bt.
On Fedora 29:
% sudo dnf install pulseaudio-module-bluetooth-nonfree-1.1-3.fc29.x86_64.rpm
Last metadata expiration check: 0:31:33 ago on Fri 15 Mar 2019 09:36:11 CET
Error:
Problem: problem with installed package pulseaudio-module-bluetooth-12.2-1.fc29.x86_64
- package pulseaudio-module-bluetooth-nonfree-1.1-3.fc29.x86_64 conflicts with pulseaudio-module-bluetooth <= 12.2-1.fc29 provided by pulseaudio-module-bluetooth-12.2-1.fc29.x86_64
- conflicting requests
(try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages)
from pulseaudio-modules-bt.
He sponsored me as a packager in Fedora, so I wouldn't say that. :)
I understand his stance, I'm just upset because he didn't take the review (the package has been sitting there for some time), and after someone reviewed and approved, he is making a rather vague comment about what should or shouldn't be done about the package.
If the package doesn't hard-depend on ffmpeg and doesn't contain any codecs why can't it be directly in Fedora? I'm not involved in RPMFusion, but I can certainly help with Fedora (I'm a packager, know package sponsors etc.).
from pulseaudio-modules-bt.
BTW someone is trying to implement the same directly in the PulseAudio project and is concerned about PA-libldac license compatibility: https://eischmann.wordpress.com/2019/02/11/better-bluetooth-sound-quality-on-linux/#comment-10714
It may have the same problem as fdk-aac-free discussed in the RPMFusion review.
from pulseaudio-modules-bt.
All package dependencies (build-time or runtime, regular, weak or otherwise) MUST ALWAYS be satisfiable within the official Fedora repositories.
The trick is that it doesn't have to be a package dependency. Of course, if the software doesn't build or run without it it's a problem, but if it's done the way that it runs well and only doesn't provide certain codecs if ffmpeg is not present in the system, it's fine.
E.g. Firefox relies on ffmpeg for multimedia support, yet it's part of Fedora. If ffmpeg is not present, it simply doesn't playback e.g. H264 videos, that's it.
from pulseaudio-modules-bt.
AFAIK in C you can't link against a library without its devel package being present. Looking at the Firefox specfile, libffi
might be used for this purpose?
from pulseaudio-modules-bt.
Congrats! My headphones are SBC/AAC only, so no feedback from my side. Hopefully AAC support will be added somewhere down the road in one way or another.
from pulseaudio-modules-bt.
I'm not suggesting to do anything against anyone's will :) Maybe down the road there will be an alternative library, some sort of agreement, or whatever the solution might be. Just hoping.
from pulseaudio-modules-bt.
Hello @gombosg thanks for creating rpm package.
I am not able to install it dirrectly from from repository instead I downloaded that rpm package locally.
I have problem with switching to LDAC codec. I used your rpm package before and everything worked.
Sink #2
State: SUSPENDED
Name: bluez_sink.CC_98_8B_4A_C1_1B.a2dp_sink
Description: WH-1000XM3
Driver: module-bluez5-device.c
Sample Specification: s16le 2ch 44100Hz
Channel Map: front-left,front-right
Owner Module: 26
Mute: no
Volume: front-left: 57672 / 88% / -3,33 dB, front-right: 57672 / 88% / -3,33 dB
balance 0,00
Base Volume: 65536 / 100% / 0,00 dB
Monitor Source: bluez_sink.CC_98_8B_4A_C1_1B.a2dp_sink.monitor
Latency: 0 usec, configured 0 usec
Flags: HARDWARE DECIBEL_VOLUME LATENCY
Properties:
bluetooth.protocol = "a2dp_sink"
bluetooth.a2dp_codec = "SBC"
device.description = "WH-1000XM3"
device.string = "CC:98:8B:4A:C1:1B"
device.api = "bluez"
device.class = "sound"
device.bus = "bluetooth"
device.form_factor = "headset"
bluez.path = "/org/bluez/hci0/dev_CC_98_8B_4A_C1_1B"
bluez.class = "0x240404"
bluez.alias = "WH-1000XM3"
device.icon_name = "audio-headset-bluetooth"
device.intended_roles = "phone"
Ports:
headset-output: Headset (priority: 0)
Active Port: headset-output
Formats:
pcm
Before I had bluetooth.a2dp_codec = "LDAC"
I am using fedora 29 with kernel 5 and i have installed libldac.
from pulseaudio-modules-bt.
@vlastoun : Thanks for the test results!
Did you try selecting the codec in the GNOME control panel?
The package was built with LDAC support enabled for sure, and the BT module itself may be a newer version that what you had tried before.
The best would be if you could build it on your own then compare the results - this is to learn whether it's a packaging or a module issue.
from pulseaudio-modules-bt.
@vlastoun also looking at journalctl
helps after trying to connect/switch codecs. Let's see if there's some strange output or error messages.
from pulseaudio-modules-bt.
From journalctl
dub 07 15:29:53 ntbvsa rtkit-daemon[1011]: Successfully made thread 2326 of process 2326 (/usr/bin/pulseaudio) owned by '1152' high priority at nice level -11.
dub 07 15:29:53 ntbvsa pulseaudio[2326]: E: [pulseaudio] a2dp_aptx.c: Cannot open libavcodec library: libavcodec.so. libavcodec.so: cannot open shared object file: No such file or directory
dub 07 15:29:53 ntbvsa pulseaudio[2326]: E: [pulseaudio] a2dp_aptx.c: Cannot open libavcodec library: libavcodec.so. libavcodec.so: cannot open shared object file: No such file or directory
dub 07 15:29:53 ntbvsa pulseaudio[2326]: E: [pulseaudio] a2dp_ldac.c: Cannot open LDAC encoder library: libldacBT_enc.so. libldacBT_enc.so: cannot open shared object file: No such file or directory
dub 07 15:29:53 ntbvsa pulseaudio[2326]: E: [pulseaudio] backend-ofono.c: Failed to register as a handsfree audio agent with ofono: org.freedesktop.DBus.Error.ServiceUnknown: The name org.ofono was not provided by any .service files
dub 07 15:29:53 ntbvsa rtkit-daemon[1011]: Successfully made thread 2377 of process 2326 (/usr/bin/pulseaudio) owned by '1152' RT at priority 5.
dub 07 15:29:53 ntbvsa rtkit-daemon[1011]: Successfully made thread 2385 of process 2326 (/usr/bin/pulseaudio) owned by '1152' RT at priority 5.
dub 07 15:30:24 ntbvsa rtkit-daemon[1011]: Successfully made thread 3553 of process 2326 (/usr/bin/pulseaudio) owned by '1152' RT at priority 5.
dub 07 15:31:41 ntbvsa pulseaudio[2326]: W: [pulseaudio] module-bluez5-device.c: Refused to switch profile to a2dp_sink_ldac: Unavailable profile
dub 07 15:33:12 ntbvsa pulseaudio[2326]: W: [pulseaudio] module-bluez5-device.c: Refused to switch profile to a2dp_sink_ldac: Unavailable profile
from pulseaudio-modules-bt.
@gombosg i solved my problem... i added link ln -s libldacBT_enc.so.2.0.2.2 libldacBT_enc.so
and now it works as before...
~ » pactl list | grep a2dp_codec vsadilek@ntbvsa
bluetooth.a2dp_codec = "LDAC"
from pulseaudio-modules-bt.
@vlastoun : thanks for the test, now we see what's happening.
The libldacBT_(enc|abr).so
symlink was missing indeed, it's in the devel package.
@EHfive , can you make that this package also finds libldacBT_(enc|abr).so.2
?
EDIT: I made this because the Fedora guidelines tell to move unversioned libraries (which is a symlink in this case) to the devel package.
The versioned shared library files (/usr/lib/libfoo.so.3.2.0 and /usr/lib/libfoo.so.3) are necessary for users to run programs linked against libfoo, so they belong in the base package. The other, unversioned, shared library file (/usr/lib/libfoo.so) is only used to actually link libfoo to code being compiled, and is not necessary to be installed on a users system. This means that it belongs in a -devel package. Please note that in most cases, only the fully versioned shared library file (/usr/lib/libfoo.so.3.2.0) is an actual file, all of the other files are symbolic links to it. When a shared library file is only provided in an unversioned format, the packager should ask upstream to consider providing a properly versioned library file. However, in such cases, if the shared library file is necessary for users to run programs linked against it, it must go into the base package.
So I can move it to the base package but if @EHfive can make this to use the libldac2, then it should be OK.
from pulseaudio-modules-bt.
@vlastoun : thanks for the test, now we see what's happening.
The
libldacBT_(enc|abr).so
symlink was missing indeed, it's in the devel package.
@EHfive , can you make that this package also findslibldacBT_(enc|abr).so.2
?EDIT: I made this because the Fedora guidelines tell to move unversioned libraries (which is a symlink in this case) to the devel package.
The versioned shared library files (/usr/lib/libfoo.so.3.2.0 and /usr/lib/libfoo.so.3) are necessary for users to run programs linked against libfoo, so they belong in the base package. The other, unversioned, shared library file (/usr/lib/libfoo.so) is only used to actually link libfoo to code being compiled, and is not necessary to be installed on a users system. This means that it belongs in a -devel package. Please note that in most cases, only the fully versioned shared library file (/usr/lib/libfoo.so.3.2.0) is an actual file, all of the other files are symbolic links to it. When a shared library file is only provided in an unversioned format, the packager should ask upstream to consider providing a properly versioned library file. However, in such cases, if the shared library file is necessary for users to run programs linked against it, it must go into the base package.
So I can move it to the base package but if @EHfive can make this to use the libldac2, then it should be OK.
Dynamic loading simply requires devel package (no soversion).
from pulseaudio-modules-bt.
@EHfive installing libldac-devel
helped - no symlink needed
from pulseaudio-modules-bt.
@vlastoun Yes, I'll move that libldacBT_(enc|abr).so
link from the devel to the base package. Not a nice move but doable.
from pulseaudio-modules-bt.
@vlastoun Yes, I'll move that
libldacBT_(enc|abr).so
link from the devel to the base package. Not a nice move but doable.
That is most certainly not what you want.
DT_SONAME
(and a symlink of that name) is generally used to ensure ABI-compatibility of the library and its users. If an application is linked against a library, it is linked against a specific interface version. This interface version is part of that library's SONAME
. Trying to run that program against a library with a different interface version (and hence different SONAME
) is outright dangerous and may fail in unexpected ways -- the library authors specifically state that this will break, by giving their library a different SONAME
(and thus interface version) than a previous version of their library, and usually they are the most knowledgeable in that area.
Hence when loading a library into a program (be it by adding the library to DT_NEEDED
at compile time or using dlopen
), one should always load the version of the library the program was compiled against, never any other version. Thus the load should happen using the full SONAME
, not some part of it that happens to match an existing (but potentially different) library by accident. If the program happens to support multiple versions of the library, it could for example try to dlopen
the SONAME
s it supports (and no other names) in some defined order, until it finds a supported library.
If in this case the pulseaudio module happens to dlopen
the library with something other than its SONAME
, the pulseaudio module should be fixed, not another Fedora package that is not actually broken.
P.S. -devel packages contain symlinks without a version number in order to allow for the linker parameter -lrary
to pick the first library.so
from the search path, without having to specify the desired version number, i.e. so that at compile time "any available version" can be used.
See-Also: https://en.wikipedia.org/wiki/Soname
See-Also: https://www.gnu.org/software/libtool/manual/libtool.html#Versioning
from pulseaudio-modules-bt.
@devurandom : thanks for the explanation!
If @EHfive is willing to fix this, I'm going to cancel the Bodhi (testing) update.
from pulseaudio-modules-bt.
@vlastoun can you test this please after removing the devel packages?
from pulseaudio-modules-bt.
@gombosg RPMFusion now ships fdk-aac, and fedora repos contain fdk-aac-free.
Also Fedora now considers fdk-aac GPL-compatible: https://lists.fedoraproject.org/archives/list/[email protected]/thread/OVW25JRWOKOLVMW3XGUX7E4OXFUR2RCG/
Please recompile the package with AAC support.
from pulseaudio-modules-bt.
@ValdikSS hi, yes, I read it yesterday, great news!
Well currently there are issues with fdk-aac-free
so it needs some testing. If I build it with it, can you test it?
from pulseaudio-modules-bt.
@gombosg sure. If fdk-aac is considered legal now, maybe it would be better to use it instead of free version?
from pulseaudio-modules-bt.
I submitted #5294 and #5295 to start a conversation on this topic. Last time I wasn't allowed to use fdk-aac
since it was in the nonfree repo.
from pulseaudio-modules-bt.
@gombosg oh sorry, I forgot I don't have any headphones with AAC support. I can perform a test between 2 PCs though.
from pulseaudio-modules-bt.
https://www.phoronix.com/scan.php?page=news_item&px=Fedora-FDK-AAC-Better-Quality
F30: https://bodhi.fedoraproject.org/updates/FEDORA-2019-bd6ec33eef contains fdk-aac-free-2.0.0-1.fc30
from pulseaudio-modules-bt.
@gombosg also please update the code because the version currently in the repository is outdated and crashes due to missing commit fe90c44
It's not outdated, it's at the latest release. I won't include code from the master branch since it's not part of a release (how would I know which master commits warrant a package update and which don't?). But if @EHfive makes one I will.
@davidlt thanks, I'll make a build with fdk-aac-free
during the weekend.
from pulseaudio-modules-bt.
Hi, now that fdk-aac-free
is deemed to be GPL compatible I've made a Fedora build. Can you test this build with AAC? Thanks!
from pulseaudio-modules-bt.
Please include at least commit f44d32e, or better, compile from git master. Without this commit the library crashes on my hardware.
from pulseaudio-modules-bt.
Sure, here's your build!
from pulseaudio-modules-bt.
@ValdikSS Did you get to test it? If it works I can push the update.
from pulseaudio-modules-bt.
I can't test it right now.
from pulseaudio-modules-bt.
@ValdikSS And now? :D
from pulseaudio-modules-bt.
@gombosg I'm away from my devices and won't be able to test in this month.
from pulseaudio-modules-bt.
@gombosg I've tested the build overall, it works fine, but haven't tested AAC.
from pulseaudio-modules-bt.
Thank you very much for your efforts! Is there any possibility to switch between codecs? My connection is always set as LDAC and even when try to switch to another codec, Sony application and:
pactl list | grep a2dp_codec
are always showing that LDAC is on use. Not complaining, just wondering. My OS is Ubuntu 18.04. It also seems that I can not use headphones as headset with microphone even when I switch to "Headset Head Unit" I can hear only noises.
from pulseaudio-modules-bt.
Update
Sorry, there's a bug report already posted: https://bugzilla.rpmfusion.org/show_bug.cgi?id=5558.
Thanks for the pulseaudio-module-bluetooth-freeworld
package.
Now, in Fedora 31/32/33, pulseaudio-13.99.1 is in the update-testing repository, and dnf update pulseaudio* --enablerepo *-testing
is complaining about pulseaudio-module-bluetooth-freeworld-1.3-1.fc31.x86_64 requires libpulsecore-13.0.so()(64bit), but none of the providers can be installed
. Will it work if make the dependency be libpulsecore >= 13.0 && libpulsecommon >= 13.0
?
# dnf update pulseaudio* --enablerepo *-testing 上次元数据过期检查:0:28:14 前,执行于 2020年03月11日 星期三 08时18分41秒。 依赖关系解决。 问题 1: package pulseaudio-module-bluetooth-freeworld-1.3-1.fc31.x86_64 requires libpulsecore-13.0.so()(64bit), but none of the providers can be installed - cannot install both pulseaudio-13.99.1-1.fc31.x86_64 and pulseaudio-13.0-2.fc31.x86_64 - cannot install both pulseaudio-13.0-2.fc31.x86_64 and pulseaudio-13.99.1-1.fc31.x86_64 - cannot install both pulseaudio-13.0-1.fc31.x86_64 and pulseaudio-13.99.1-1.fc31.x86_64 - cannot install the best update candidate for package pulseaudio-module-bluetooth-freeworld-1.3-1.fc31.x86_64 - cannot install the best update candidate for package pulseaudio-13.0-2.fc31.x86_64 问题 2: problem with installed package pulseaudio-module-bluetooth-freeworld-1.3-1.fc31.x86_64 - package pulseaudio-module-bluetooth-freeworld-1.3-1.fc31.x86_64 requires libpulsecommon-13.0.so()(64bit), but none of the providers can be installed - cannot install both pulseaudio-libs-13.99.1-1.fc31.x86_64 and pulseaudio-libs-13.0-2.fc31.x86_64 - cannot install both pulseaudio-libs-13.0-2.fc31.x86_64 and pulseaudio-libs-13.99.1-1.fc31.x86_64 - cannot install both pulseaudio-libs-13.0-1.fc31.x86_64 and pulseaudio-libs-13.99.1-1.fc31.x86_64 - cannot install the best update candidate for package pulseaudio-libs-13.0-2.fc31.x86_64 ================================================================================ Package Arch Version Repository Size ================================================================================ 跳过有冲突的软件包: (添加 '--best --allowerasing' 至命令行来强制升级): pulseaudio x86_64 13.0-1.fc31 fedora 1.0 M pulseaudio x86_64 13.99.1-1.fc31 updates-testing 1.0 M pulseaudio-libs x86_64 13.0-1.fc31 fedora 710 k pulseaudio-libs x86_64 13.99.1-1.fc31 updates-testing 708 k 事务概要 ================================================================================ 跳过 4 软件包 无需任何处理。 完毕!
from pulseaudio-modules-bt.
pulseaudio-module-bluetooth-freeworld Does this give high bitrate SBC? How can I verify that?
from pulseaudio-modules-bt.
Sorry, I don't know. I packaged the vanilla version. If pactl list sinks
doesn't give you the info that you want, you may want to recompile with cusom parameters based on documentation.
from pulseaudio-modules-bt.
Related Issues (20)
- ffmpeg_libs.c: Cannot open libavcodec library: libavcodec.so.58. /lib/i386-linux-gnu/libxvidcore.so.4: cannot make segment writable for relocation: Operation not permitted HOT 3
- Support for 2 SBC profiles HOT 2
- [Question] How to change LDAC bit rate or force highest abrQualityModeID HOT 2
- [BUG] bluetooth HSP/HFP does not work with autodetect_mtu=1 HOT 3
- [BUG] Can't build with libpulse/pulseaudio v13.99.3 HOT 2
- Module settings ignored? Cannot connect Bose 700 in Dual Channel SBC HD/XQ mode. HOT 4
- Incompatible with pulseaudio 14.0 release HOT 2
- Packaging issue? Cannot install on Fedora Silverblue 33 using RPM Fusion 33? HOT 2
- [BUG] Only SBC Available on WH-1000xm3 HOT 1
- unsupported codecs on QCC3020 device HOT 5
- [BUG] unable to create file src/modules/alsa/mixer/samples/USB Device 0x46d:0x9a4--USB Mixer: Invalid argument HOT 2
- Get it into official repositories HOT 4
- Pipewire coming to Fedora HOT 10
- Donations HOT 1
- Support for changing AAC frequency cutoff HOT 1
- Errors when trying to use SBC HOT 1
- [BUG] HOT 1
- [BUG] error: pathspec 'v14.0' did not match any file(s) known to git HOT 2
- [BUG] Can no longer switch from HFP/HSP to any other profile HOT 1
- Deprecation Announcement HOT 12
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pulseaudio-modules-bt.