New API for Bluetooth A2DP codecs

Submitted by Pali Rohár on Jan. 12, 2019, 3:21 p.m.

Details

Reviewer None
Submitted Jan. 12, 2019, 3:21 p.m.
Last Updated July 5, 2019, 1:03 p.m.
Revision 95

Cover Letter(s)

Revision 1
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 2
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 3
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 4
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 5
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 6
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 7
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 8
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 9
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 10
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 11
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 12
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 13
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 14
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 15
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 16
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 17
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 18
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 19
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 20
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 21
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 22
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 23
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 24
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 25
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 26
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 27
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 28
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 29
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 30
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 31
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 32
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 33
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 34
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 35
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 36
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 37
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 38
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 39
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 40
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 41
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 42
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 43
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 44
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 45
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 46
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 47
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 48
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 49
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 50
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 51
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 52
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 53
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 54
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 55
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 56
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 57
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 58
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 59
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 60
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 61
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 62
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 63
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 64
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 65
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 66
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 67
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 68
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 69
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 70
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 71
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 72
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 73
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 74
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 75
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 76
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 77
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 78
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 79
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 80
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 81
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 82
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 83
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 84
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 85
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 86
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 87
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 88
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 89
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 90
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 91
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 92
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 93
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 94
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    
Revision 95
      This is 3rd version of my patch series for modular A2DP codec API and
aptX support. v2 link: https://patchwork.freedesktop.org/series/46058/

This patch series provides new modular API for Bluetooth A2DP codecs,
clean up module-bluez5-device and bluez5-util to be codec independent
and convert SBC codec into this new API for A2DP codecs. Also it adds
support for aptX and FastStream A2DP codecs.

New codec API is designed in way, that for adding new codec is not
needed to touch bluez5-util nor module-bluez5-device files. Whole
codec registration is done in a2dp-codec-util.c file, without need
to update any header file.

New codec API is prepared for A2DP codec switching and for A2DP voice
backchannel support, but this is not implemented yet.

For every A2DP codec is created card profile. When using bluez patches
from https://marc.info/?l=linux-bluetooth&m=154696260401673&w=2 then
only those profiles codec profiles are created which are supported
by remote headset/endpoint.

In V3 series was fixed problems pointed by Tanu.

With this new modular API it should be easy to add other codec support
like MP3, AAC, aptX HD or LDAC.

API is designed also for ability to register "more variants" or one
A2DP codec. E.g. SBC codec forced to high quality, SBC codec forced
to low quality, SBC codec with automatic quality.

Once we agree on final version of codec API, I can prepare patches
also for choosing above SBC codec quality.

Pali Rohár (7):
  switch-on-port-available: Fix null pointer dereference
  bluetooth: policy: Remove BlueZ 4 related code
  bluetooth: policy: Reflect a2dp profile names
  bluetooth: Update a2dp-codecs.h from upstream bluez project
  bluetooth: Modular API for A2DP codecs
  bluetooth: Add A2DP aptX codec support
  bluetooth: Add A2DP FastStream codec support

 configure.ac                                    |  36 ++
 src/Makefile.am                                 |  20 +-
 src/modules/bluetooth/a2dp-codec-api.h          |  78 +++
 src/modules/bluetooth/a2dp-codec-aptx.c         | 330 +++++++++++
 src/modules/bluetooth/a2dp-codec-faststream.c   | 401 +++++++++++++
 src/modules/bluetooth/a2dp-codec-sbc.c          | 621 ++++++++++++++++++++
 src/modules/bluetooth/a2dp-codec-util.c         |  64 ++
 src/modules/bluetooth/a2dp-codec-util.h         |  34 ++
 src/modules/bluetooth/a2dp-codecs.h             | 354 +++++++++++-
 src/modules/bluetooth/bluez5-util.c             | 702 ++++++++++++++--------
 src/modules/bluetooth/bluez5-util.h             |  38 +-
 src/modules/bluetooth/module-bluetooth-policy.c |  19 +-
 src/modules/bluetooth/module-bluez5-device.c    | 740 ++++++++++--------------
 src/modules/module-switch-on-port-available.c   |   2 +-
 14 files changed, 2718 insertions(+), 721 deletions(-)
 create mode 100644 src/modules/bluetooth/a2dp-codec-api.h
 create mode 100644 src/modules/bluetooth/a2dp-codec-aptx.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-faststream.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-sbc.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.c
 create mode 100644 src/modules/bluetooth/a2dp-codec-util.h
    

Revisions