Huang-Huang Bao
9384ba5500
bluez5: add properties for A2DP codec sample rate & channel mode configuration
...
Those properties are set as reference sample rate and channels number for A2DP configuration selecting.
2021-05-03 10:07:42 +00:00
Huang-Huang Bao
5c93f780cf
a2dp: improve a2dp sink codec data flushing
...
Let codec decides when rtp packet need to be sent (terminated by MTU size in most case).
LDAC encoding loop can now be terminated by reading if frame_num is written, no 'frame_count' updating is needed.
RTP payload fragmentation can now be implemented more easily based on this.
2021-03-31 11:14:58 +00:00
Pauli Virtanen
a552655edc
bluez5: add bluetoothAudioCodec property to device
...
Also make the "codecless" profiles to automatically switch to the codec
profiles.
2021-03-26 16:59:07 +00:00
JP Guillemin
471fffe4a3
Update a2dp-codec-sbc.c
2021-03-21 12:04:51 +00:00
Huang-Huang Bao
1d390addb1
a2dp: allow codec to hold Props params
...
Initial Props value are parsed from device settings, further changes are triggered by 'set_param' on a2dp node.
Codec can then use props to tweak its transcoder.
2021-03-20 09:16:20 +00:00
Pauli Virtanen
4cf0826b4f
bluez5: connect to SBC endpoints in order of preference
...
High sampling frequencies should be preferred. SBC-XQ should also
prefer dual channel.
2021-02-04 00:05:34 +02:00
Pauli Virtanen
b642c7f209
bluez5: support device capability checks beyond A2DP caps + split sbc-xq to separate codec
...
We would like to have BT device codec capability checks beyond what's
possible based on A2DP caps.
Split SBC-XQ to a separate codec, and enable it in the device-dependent
check (although currently it just uses the config option).
2021-02-02 09:56:29 +00:00
Huang-Huang
c778bd734c
a2dp: improve codec specific transport socket send buffer size setting
2021-01-31 09:01:40 +08:00
Wim Taymans
4440ede41c
bluez5: add SBC XQ support with a config option
2021-01-08 13:00:44 +01:00
Wim Taymans
860389492b
a2dp: fix size check
2021-01-08 12:54:43 +01:00
Wim Taymans
e91fbd2721
bluez5: Implement routes
...
Implement routes on the device. This makes it possible for the
session manager to restore the device volumes.
Use validate_config to get the negotiated channels for the route
volumes.
2021-01-07 18:10:22 +01:00
Wim Taymans
5bb7a0f573
a2dp-codecs: add settings to codec init function
...
To make it possible to add extra config options in init.
Also add a method to update settings in a codec.
2021-01-07 17:39:39 +01:00
Wim Taymans
ece8a95c29
bluez5: improve a2dp codec api
...
Pass dict to select_config to influence the selection
Make a method to validate a config.
Add spa_dict to the codec to pass more info around.
2021-01-07 17:28:49 +01:00
Wim Taymans
e61f571e22
Revert "Update of a2dp-codec-sbc.c to achieve SBC XQ quality in dual channel, with fall back to standard Joint Stereo mode"
...
This reverts commit 4e1cbef687 .
This needs some more work
2021-01-07 14:58:36 +01:00
JP Guillemin
4e1cbef687
Update of a2dp-codec-sbc.c to achieve SBC XQ quality in dual channel, with fall back to standard Joint Stereo mode
2021-01-07 09:39:05 +01:00
Huang-Huang Bao
16f5058af9
a2dp: add ldac ABR support
...
Signed-off-by: Huang-Huang Bao <eh5@sokka.cn>
2020-12-19 19:17:15 +08:00
Wim Taymans
90bdab8414
bluez5: improve param enumeration
...
Return -EIO when we can't enumerate the params
Don't check for end-of-params in a2dp-sink, we do that in the codec.
2020-12-17 11:43:53 +01:00
Wim Taymans
8b52e44836
bluez5: support other ldac bit depth
...
Make the format_info const in codec_init, we just need to read the
final negotiated format in some cases.
Add some more ldac bit depths we support.
2020-12-11 13:30:11 +01:00
Wim Taymans
34a9b1dc1a
a2dp: set channel map
2020-12-09 18:08:24 +01:00
Wim Taymans
106d597305
bluez5: add aptX and aptX HD codecs
...
They need the libopenaptx libraries from
https://github.com/pali/libopenaptx
2020-12-04 11:34:38 +01:00
Wim Taymans
8bf0b7b4db
a2dp: delay codec init to after acquire
...
Some codecs need the MTU as a parameter so wait until we acquire
with creating the codec context.
Make some method to enumerate the parameters from the transport
config and use that for the EnumFormat param.
2020-12-03 18:05:57 +01:00
Wim Taymans
3363544d05
bluez5: use start_decode to skip the header
2020-12-02 17:01:22 +01:00
Wim Taymans
395a30b5d6
a2dp: fix sign of out_decoded
2020-11-02 09:16:59 +01:00
Grzegorz Uriasz
c1530ba171
Use RegisterApplication in bluez5 for A2DP if possible
2020-11-02 09:14:37 +01:00
Wim Taymans
cdb83fa225
a2dp-sbc: implement decode
2020-10-19 18:12:13 +02:00
Wim Taymans
e18c4d76dc
a2dp: move codecs to separate files
2020-10-19 12:12:21 +02:00