[pulseaudio-discuss] [RFC v2 00/18] bluetooth: Revive MP3 passthrough over A2DP

Frédéric Dalleau frederic.dalleau at linux.intel.com
Thu Mar 22 09:36:24 PDT 2012


This is the v2 of the work on A2DP MPEG and media API.
v1 tried to send MP3 using A2DP source role.
v2 adds a sink to receive the MP3 data and restores SBC/MPEG switching.
There is also a patch in BlueZ to make this work. It will take time before the
DBUS apis are worked out.

It is possible using two adapters to send and receive the data using one
pulseaudio. It is interesting to see that the IEC data received using this
technique is exactly the same that was sent.

# test MP3 playback
pacmd set-card-profile bluez_card.aa_bb_cc_dd_ee_ff a2dp
paplay <your_file>.wav --device=bluez_sink.aa_bb_cc_dd_ee_ff
paplay --raw --passthrough -v --format="s16le" --rate=44100 --device=bluez_sink.aa_bb_cc_dd_ee_ff <your_file>.iec 

# test MP3 sink
pacmd set-card-profile bluez_card.00_11_22_33_44_55 a2dp_source
/usr/bin/parec --raw --passthrough -v --format="s16le" --rate=44100 --device=bluez_source.00_11_22_33_44_55 <your_file>2.iec

Still one bug pending, when switching back from MPEG to SBC, the sink does not
resume. I just kill paplay then wait until module-suspend-on-idle suspend the
stream, then retry. Of course this is still rough, so there might be others!

Let me know what you think.


Arun Raghavan (3):
  bluetooth: Use new API for exposing A2DP MPEG sinks
  bluetooth: Handle configuration failures more gracefully
  bluetooth: Fixes for PCM-MPEG switching

Frédéric Dalleau (14):
  Fix build : Remove usage of passthrough profile
  bluetooth: Register MP3 endpoint for bluetooth
  bluetooth: Handle SelectConfiguration for MP3 endpoint
  bluetooth: module-bluetooth-device changes
  bluetooth: Initialize codec value
  bluetooth: configure device based on selected transport
  bluetooth: Register MP3 sink endpoint for bluetooth
  bluetooth: declare source support for IEC61937
  bluetooth: Build and push IEC frame if codec is MPEG
  bluetooth: Build and push fragmented MPEG frames
  bluetooth: Fix module-bluetooth-device load failed
  bluetooth: utility to trigger a2dp reconfigure
  bluetooth: parse MediaTransport.Codecs property
  bluetooth: switch between SBC and MPEG

Pierre-Louis Bossart (1):
  bluetooth: MP3 passthrough over A2DP

 src/modules/bluetooth/bluetooth-util.c            |  272 ++++-
 src/modules/bluetooth/bluetooth-util.h            |    4 +
 src/modules/bluetooth/module-bluetooth-device.c   | 1353 ++++++++++++++++++---
 src/modules/bluetooth/module-bluetooth-discover.c |    3 +-
 src/modules/bluetooth/rtp.h                       |   14 +-
 5 files changed, 1437 insertions(+), 209 deletions(-)


More information about the pulseaudio-discuss mailing list