Hi,
On Fri, May 31, 2019 at 04:59:02PM +0300, Kai Vehmanen wrote:
> Hi all,
>
> I've been testing pulse with the new Intel SOF [1] audio drivers (that are
> going to 5.2 kernel).
>
> In my tests, e.g. system suspend/stress tests work much better on latest
> master of pulseaudio, compared to
Previously module-bluetooth-policy was switching from A2DP to HSP profile
when VOIP application started recording of source. Now it switch to profile
with the highest priority which has both sink and source. In most cases it
is HSP profile, but it can be also bi-directional A2DP profile (e.g.
Some A2DP codecs (like FastStream or aptX Low Latency) are bi-directional
and can be used for both music playback and audio call. This patch
implements usage of backchannel if A2DP codec provided by pulseaudio API
supports it.
A2DP codec switching needs new version of bluez as older version does
This patch provides support for FastStream codec in bluetooth A2DP profile.
FastStream codec is bi-directional, which means that support both music
playback and microphone voice at the same time.
FastStream codec is just SBC codec with fixed parameters. For playback are
used following parameters:
In next patches, codec name is appended end the end of a2dp profile names.
---
src/modules/bluetooth/module-bluetooth-policy.c | 12 ++--
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/src/modules/bluetooth/module-bluetooth-policy.c
Bluez and remote device decide which A2DP codec would use. Use this
selected A2DP codec as initial profile in pulseaudio.
In most cases it is either last used codec or codec with higher priority by
defined by remote device.
To detect which A2DP profile was activated by bluez, look at bluez
Specify configuration for Low, Middle, High and Ultra High Quality of SBC
codec. SBC codec in Ultra High Quality has higher quality than aptX.
Automatic Quality mode matches configuration of SBC codec which was used
before this change. Which means that it accept configuration between Low
and High
Some A2DP codecs (e.g. SBC or aptX-HD) use RTP packets. For sources use
timestamps from RTP packets to calculate read index and therefore remote
timestamp for synchronization.
---
src/modules/bluetooth/a2dp-codec-api.h | 4 ++--
src/modules/bluetooth/a2dp-codec-sbc.c | 3 ++-
Changes in v11:
* Implement reading SO_TIMESTAMP for A2DP source
* Fix segfault when setting initial A2DP profile
* Fix parsing remote timestamp from A2DP RTP packets
* Simplify FastStream codec implementation (even length zero padding)
Pali Rohár (11):
bluetooth: Fix A2DP codec API to provide
Rename struct rtp_payload to rtp_sbc_payload as it is specific for SBC
codec. Add proper checks for endianity in rtp.h header and use uint8_t type
where appropriated. And because rtp_sbc_payload structure is not parsed by
decoder there is no support for fragmented SBC frames. Add warning for it.
---
src/modules/bluetooth/module-bluez5-device.c | 31 ++--
1 file changed, 29 insertions(+), 2 deletions(-)
diff --git a/src/modules/bluetooth/module-bluez5-device.c
b/src/modules/bluetooth/module-bluez5-device.c
index c0b293d94..e79d472bc 100644
---
This patch provides support for aptX and aptX HD codecs in bluetooth A2DP
profile. It uses open source LGPLv2.1+ licensed libopenaptx library which
can be found at https://github.com/pali/libopenaptx.
aptX for s24 stereo samples provides fixed 6:1 compression ratio and
bitrate 352.8 kbit/s, aptX
Each codec has different compression ratio and own method how to calculate
buffer size of encoded or decoded samples. So change A2DP codec API to
provide this information for module-bluez5-device module and fix
a2dp_prepare_encoder_buffer() and a2dp_prepare_decoder_buffer() functions.
API
13 matches
Mail list logo