OSDN Git Service
Chih-Wei Huang [Fri, 9 Oct 2009 11:21:45 +0000 (19:21 +0800)]
add sbc_primitives_mmx.c for x86
The Android Open Source Project [Fri, 5 Feb 2010 16:09:33 +0000 (08:09 -0800)]
reconcile main tree with open-source eclair
The Android Open Source Project [Fri, 29 Jan 2010 22:07:48 +0000 (14:07 -0800)]
reconcile android-2.1_r1 snapshot
The Android Open Source Project [Tue, 12 Jan 2010 23:18:17 +0000 (15:18 -0800)]
android-2.1_r1 snapshot
Nick Pelly [Thu, 17 Dec 2009 11:12:26 +0000 (03:12 -0800)]
Use monotonically increasing clock for A2DP timing.
This is to avoid skips when the system time changes.
Nick Pelly [Tue, 15 Dec 2009 00:55:17 +0000 (16:55 -0800)]
Stop trying to send A2DP packets quickly to catch-up on missed write()'s after
falling behind by 200ms, or on poll() timeout.
This allows us to recover more quickly from a situation where an A2DP headset
rejects A2DP packets for a short time. We now reset to regular packet metering
faster.
Nick Pelly [Thu, 10 Dec 2009 00:20:28 +0000 (16:20 -0800)]
Changes flush timeout from 60 ms to 120 ms.
Less A2DP drop-outs due to unnecessary flushing.
BCM recommend 120-150ms for lazy flushing.
Nick Pelly [Wed, 9 Dec 2009 09:25:41 +0000 (01:25 -0800)]
Fix liba2dp.c compiler warnings.
Nick Pelly [Wed, 9 Dec 2009 09:23:43 +0000 (01:23 -0800)]
Set A2DP L2CAP socket to flushable while streaming A2DP, and set the automatic
flush timeout.
Remove the (ahead < 0) logic that was designed to skip forwards when streaming
was lagging. This logic was not working properly, and ACL flushing does its
job.
Nick Pelly [Wed, 9 Dec 2009 09:18:22 +0000 (01:18 -0800)]
Add L2CAP_LM_FLUSHABLE to Bluez header.
Nick Pelly [Wed, 9 Dec 2009 09:09:36 +0000 (01:09 -0800)]
Add ACL flow control state (MTU, packets available, packets total) for debug.
Accessed with the debug tool 'hcitool con'
Jean-Baptiste Queru [Fri, 13 Nov 2009 02:45:21 +0000 (18:45 -0800)]
eclair snapshot
Yu Kang Ku [Thu, 5 Nov 2009 18:49:48 +0000 (10:49 -0800)]
Send SBC frames if output buffer is nearly full.
This is to address an A2DP issue seen with the Mazda carkit, where A2DP audio
cannot be played. The MTU size (8200) requested by this carkit is much greater
than the output buffer size (2048) allocated by the Bluez A2DP profile. The
output buffer being full is giving an SBC encode error. This patch checks for
the buffer full condition.
Change-Id: Idded504d085c760baef15cd3cef84fcf57165e4f
Signed-off-by: Yu Kang Ku <kang.ku@motorola.com>
Signed-off-by: Nick Pelly <npelly@google.com>
Nick Pelly [Sat, 31 Oct 2009 01:18:33 +0000 (18:18 -0700)]
Add support for sending Broadcom coexistance setup commands for A2DP links.
Enabled on platforms with BOARD_HAVE_BLUETOOTH_BCM.
Change-Id: Ic223955ac3580e5a9430f96e069f686a7afdbef8
Jaikumar Ganesh [Fri, 30 Oct 2009 16:29:02 +0000 (09:29 -0700)]
Fix handling of SDP records.
Delete SDP records when device is deleted.
Update cache whenever SDP is performed.
Remove SDP records even when there is no driver associated with the UUID.
Bug:
2173752
Dr No: Eastham
Eric Laurent [Fri, 16 Oct 2009 16:22:50 +0000 (09:22 -0700)]
do not merge - Fix for issue
2184627 cherry picked from eclair-mr2
Bluetooth A2DP suspend-resume improvements.
This change will reduce the occurence rate of A2DP sink suspend resume failures observed in issues
2184627,
2181005 and possibly
2189628.
Avoid lockups in case of BT device disconnection during the A2DP start process by using a timeout when reading from bluetooth command socket.
Correct a typo causing potential deadlock in wait_for_start().
Nick Pelly [Thu, 1 Oct 2009 02:09:58 +0000 (19:09 -0700)]
Add DBUS interfaces AddRfcommServiceRecord() and RemoveServiceRecord().
org.bluez.Adapter.AddRfcommServiceRecord takes a name, uuid and channel
and creates a record like:
Service Name: MyApplication
Service RecHandle: 0x10009
Service Class ID List:
UUID 128:
42999bc0-ac5e-11de-8a39-
0800200c9a66
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 26
It returns the integer Record Handle, that can be used with
org.bluez.Adapter.RemoveServiceRecord to remove that record.
Bug:
2158900
DrNo: eastham
Change-Id: Ie375d5ccd24b5faf067a26b8a04a1449b3f56ce2
Nick Pelly [Wed, 30 Sep 2009 18:35:21 +0000 (11:35 -0700)]
Remove redundant call to bluetooth_init().
This is a cleanup to Ian Kent's preceeding patchset.
Change-Id: I8ff00530fdd337873ff898b7fd9009b0fc13f0b4
Zhu Lan [Tue, 23 Jun 2009 08:04:09 +0000 (16:04 +0800)]
Add Bluetooth A2DP suspend/resume to DBUS API.
Change-Id: Icef1729957ed55e491e63d74d14a2c0c93984c4d
Ian Kent [Mon, 28 Sep 2009 15:47:44 +0000 (23:47 +0800)]
bluez a2dp - use a sensible write timeout
The 500 msec write timeout is extremely optimistic, a 1000 msec
timeout is closer to reality.
Ian Kent [Mon, 28 Sep 2009 15:47:44 +0000 (23:47 +0800)]
bluez a2dp - fix wait_for_start() spurious wakeup
When waiting on a condition is is possble to receive spurious
wake ups. Deal with this in wait_for_start().
Change-Id: I678e9d7831333d9b8baa31e9b0ec2597ca9263cd
Ian Kent [Mon, 28 Sep 2009 15:47:44 +0000 (23:47 +0800)]
bluez a2dp - fix wait_for_start() synchronization
On entry to wait_for_start() it's possible we are in state
A2DP_STATE_NONE if a2dp_thread() has not completed bluetooth_init().
Also, we call the pthread_mutex_*() functions more frequently than
we really need to.
Move the mutex locking outside the loop and let condition wait
take care of the locking. Also move the A2DP_STATE_NONE check
below the condition wait so we can be sure the state machine
has been poked before we test it.
Change-Id: I020bea365a623e88cb1a5f7e5fccd8f8aa948518
Ian Kent [Mon, 28 Sep 2009 15:47:44 +0000 (23:47 +0800)]
bluez a2dp - destroy thread attr after thread create
Pthread resources may be used by the thread attributes object.
We should destroy this after thread creation.
Ian Kent [Mon, 28 Sep 2009 15:47:44 +0000 (23:47 +0800)]
bluez a2dp - destroy thread resources at exit
The dynamically created pthread mutex and condition variables
consume pthread resources. They should be destroyed prior to
freeing the structure containing them.
Ian Kent [Mon, 28 Sep 2009 15:47:44 +0000 (23:47 +0800)]
bluez a2dp - fix a2dp_thread() spurious wakeup
When waiting on a condition is is possble to receive spurious
wake ups. Use the fact that when we poke the state machine the
command must have changed to deal with this.
Change-Id: I0ed2f2a15c15dea30cb1d5cf3b67c8549d6802d4
Ian Kent [Mon, 28 Sep 2009 15:47:44 +0000 (23:47 +0800)]
bluez a2dp - fix state machine synchronization
Using a worker thread implementation for A2DP means that if we don't
have some way to syncroniize state transitions we can get overlap of
requested command functions or lost signals. In order for the A2DP
state machine to function each command operation must complete before
the next is initiated or we will get errors caused by these out of
sequence commands. And if we signal the thread when it is not waiting
on the condition the signal will be missed.
This could be partly resolved by implementing a queue but then there
is an overhead with also implementing a wait mechamism for state
transitions. It's much easier and simpler to just hold the mutex
during command processing which also deals with the lost signals issue.
This may well not achieve the original goal of the worker thread
implementation but neither would a queue implementation. It looks
like this is just the way things are!
Ian Kent [Mon, 28 Sep 2009 15:47:43 +0000 (23:47 +0800)]
bluez a2dp - syncronize worker thread start
There is an order of execution assumption made when starting the
a2dp worker thread. Add an additional condition variable to allow
us to make sure we have reached the thread_wait condition wait
before returning from a2dp_init().
Johan Hedberg [Thu, 3 Sep 2009 16:08:07 +0000 (19:08 +0300)]
Rename audio_device_is_connected more appropriately
Johan Hedberg [Thu, 3 Sep 2009 15:22:14 +0000 (18:22 +0300)]
Fix AVDTP Abort when transport closes before response
Change-Id: I5d2bced52514eb14fd8236a9262ae5c71e68f524
Jaikumar Ganesh [Tue, 29 Sep 2009 01:05:23 +0000 (18:05 -0700)]
Fix agent_free call due to the picking up of upmerge fixes.
Change-Id: Ia0a12ec45dd498572e4a4f2354d383ba5ea436ce
Johan Hedberg [Wed, 16 Sep 2009 11:15:22 +0000 (14:15 +0300)]
Fix AVDTP suspend while closing
We should reject any suspend request if we've already started the close
procedure for a stream.
Johan Hedberg [Tue, 15 Sep 2009 18:12:04 +0000 (21:12 +0300)]
Fix command timeout handling when there's no stream
The media stream could be gone by the time that the AVDTP command timeout
expires (e.g. if the media transport channel gets closed prematurely). In
such a case there's no need to send a separate ABORT command but we can
directly proceed with closing the signalling channel.
Johan Hedberg [Tue, 15 Sep 2009 14:17:07 +0000 (17:17 +0300)]
Fix AVDTP ABORTING state transition
The transition to ABORTING state when acting as initiator should happen
when we receive the ABORT reply and not when we send the initial ABORT
command. The reply handling is already correct but since there's a state
change also in the sending part the later state change request would fail.
This patch fixes the issue by removing the state change when sending the
ABORT command.
Change-Id: I9cf9f27924b7d348523125ddccff7c8ecebacf93
Johan Hedberg [Tue, 15 Sep 2009 08:05:49 +0000 (11:05 +0300)]
Fix stream handling when the media transport disconnects prematurely
We might not have a stream anymore when receiving the reply to a AVDTP
command that assumes that there is an existing stream. So ignore the
replies to these commands if we don't have a stream anymore.
Peter Hurley [Wed, 9 Sep 2009 17:25:35 +0000 (13:25 -0400)]
Fixed duplicate attempt from device to connect 'signalling' channel
A device may attempt to initiate a duplicate avdtp channel while
a host-initiated channel connection is still pending. This
situation is referred to as 'XCASE connect:connect' in sink.c and
source.c. This fix rejects the device-initiated connection in this
circumstance.
Johan Hedberg [Sun, 6 Sep 2009 00:18:19 +0000 (03:18 +0300)]
Fix agent destroy callback handling for errors
The destroy callback should not be called if calling the agent fails and
an error is returned to the caller of the agent.c public function.
Johan Hedberg [Sun, 6 Sep 2009 00:15:42 +0000 (03:15 +0300)]
Fix agent_authorize error return
Johan Hedberg [Sat, 5 Sep 2009 20:06:23 +0000 (23:06 +0300)]
Fix audio authorization cancelation on the same mainloop iteration
If the device is trusted and the authorization is canceled before the idle
callback takes place the idle callback should be removed. This patch adds
tracking of the idle id and removes it in the case of cancelation.
Change-Id: I7a22176bb9c881349cde0730e196378c94665ecb
Johan Hedberg [Sat, 5 Sep 2009 19:09:34 +0000 (22:09 +0300)]
Make dev->authorized private to audio/device.c
There's no need to expose the authorized setting outside of device.c.
Johan Hedberg [Sat, 5 Sep 2009 14:50:13 +0000 (17:50 +0300)]
Fix AVDTP stream leak for invalid media transport config
Johan Hedberg [Fri, 4 Sep 2009 16:40:19 +0000 (19:40 +0300)]
Fix race condition in authorizing audio connections
The current check for implicit authorization is if any other audio profile
is already connected. However, a the second profile might try to connect
right after we've gotten a positive authorization reply for the first one
but before the first profile has reached "connected" state. So just by
checking the connected state of other profiles we might get a false
negative for the decision of doing implicit authorization.
This patch adds a variable to the audio_device struct for keeping track of
if we've gotten a positive authorization reply that can be used in
addition to the "any other profiles" connected check. This variable gets
cleared when the (global audio) device state goes back to disconnected.
Johan Hedberg [Thu, 3 Sep 2009 21:45:52 +0000 (00:45 +0300)]
Fix a few more ref-leaks with AVDTP failures and unix socket clients
If any of the IPC messages cause us to create a brand new AVDTP session
and then there's failure caused by disconnection, we have to unref the
session since there will not be a unix.c callback to do it when avdtp.c
wants to clean up in the next mainloop iteration.
Johan Hedberg [Thu, 3 Sep 2009 20:25:54 +0000 (23:25 +0300)]
Fix potential AVDTP reference leak
If the AVDTP connection has just recently disconnected but not yet been
notified to the mainloop then we need to clean the unix.c avdtp session
reference within start_discovery() instead of doing it when the unix
client disconnects. This is because when the AVDTP disconnection finally
gets reported in the next mainloop iteration the unix.c reference wouldn't
get cleared as is intended (since unix.c doesn't have any callbacks at
this point).
Johan Hedberg [Thu, 3 Sep 2009 16:09:52 +0000 (19:09 +0300)]
Fix authorization when the audio profiles are slow to connect
Incoming audio connections should be automatically authorized if either
HFP/HSP or A2DP is already connected for the same device.
Johan Hedberg [Wed, 2 Sep 2009 09:21:52 +0000 (12:21 +0300)]
Reject AVDTP_DISCOVER when there are no SEPs available
Daniel Orstadius [Tue, 1 Sep 2009 10:55:44 +0000 (13:55 +0300)]
Reject AVDTP START/STOP when disconnecting
Jaikumar Ganesh [Fri, 4 Sep 2009 20:26:40 +0000 (13:26 -0700)]
Add new Agent API : RequestPairingConsent.
This callback will be called for incoming pairing requests for 2.1
devices only when the remote IO capabilities are NoInputNoOutput
or DisplayOnly and the local IO capability is DisplayYesNo.
Currently, we were silently auto accepting.
Nick Pelly [Tue, 1 Sep 2009 17:20:07 +0000 (10:20 -0700)]
Do not advertise Voice Recognition support in HF AG SDP record.
James Luan [Fri, 28 Aug 2009 18:23:33 +0000 (13:23 -0500)]
Change UART speed before Bluetooth firmware download.
Jaikumar Ganesh [Tue, 25 Aug 2009 20:47:59 +0000 (13:47 -0700)]
Don't bail out if Discovery is in progress when getting the rfcomm channel.
We should be having the SDP record in the cache. In the very rare
case, that the remote device's SDP records have changed and if a discovery
is in progress, we would have already updated the cache or if we have not
queried the device yet, we are going to fail anyways.
Marcel Holtmann [Fri, 21 Aug 2009 02:50:58 +0000 (19:50 -0700)]
Wait 5 milliseconds before doing Simple Pairing auto-accept
The BITE tester is again really stupid and it can't handle dongles
that can do the DH key exchange quickly. For example the Broadcom
dongles use a fast processors and an optimized DH algorithm. So in
the end they are way too fast.
To make this work, use a 5 milliseconds delay before replying to
the auto-accept case of Simple Pairing.
Jaikumar Ganesh [Wed, 19 Aug 2009 23:21:57 +0000 (16:21 -0700)]
Change version number to 4.47.
Nick Pelly [Tue, 18 Aug 2009 23:43:31 +0000 (16:43 -0700)]
Don't advertise AVRCP Controller support in SDP records.
We are a AVRCP 1.0 target, not a controller.
This is identical to the change we applied to Bluez 3.x
Johan Hedberg [Tue, 11 Aug 2009 07:30:16 +0000 (10:30 +0300)]
Don't enable the SCO server socket when not necessary
The SCO server socket shouldn't be enabled when neither Gateway nor
Headset support is enabled.
Jaikumar Ganesh [Tue, 11 Aug 2009 15:39:23 +0000 (08:39 -0700)]
Upgrade to Bluez 4.47.
Zhu Lan [Mon, 3 Aug 2009 09:19:39 +0000 (17:19 +0800)]
Modify PBAP SDP record.
Fix to pass PTS case TC_SDAS_BV_03_I(since PTS3.2 update2).
The code tried to append the UINT type value to the supported
respositories. However, the wrong function sdp_seq_alloc()
was used. This function adds 2 redundant bytes (SDP_SEQ8 as
0x35, seq) ahead of 0x08, so that latest PTS IOPT will fail.
According to spec, PBAP attributes should report 0x08 0x01
or 0x08 0x03 right after 0x0314. The correct function to use
is sdp_data_alloc(), with clean 0x08 0x01 appended as
SDP_ATTR_SUPPORTED_REPOSITORIES.
Marcel Holtmann [Sat, 1 Aug 2009 22:32:22 +0000 (15:32 -0700)]
Release 4.47
Marcel Holtmann [Sat, 1 Aug 2009 22:32:00 +0000 (15:32 -0700)]
Update library version
Johan Hedberg [Fri, 31 Jul 2009 22:13:56 +0000 (01:13 +0300)]
Fix calling set_limited_discoverable twice
set_mode doesn't need to call set_limited_discoverable since
adapter_mode_changed will do it.
Johan Hedberg [Fri, 31 Jul 2009 22:05:55 +0000 (01:05 +0300)]
Use limited discoverable mode only when 0 < discov_timeout <= 60
Alok Barsode [Wed, 29 Jul 2009 07:41:14 +0000 (13:11 +0530)]
Cache service class updates during bootup
adapter->svc_cache is used to cache service class updates during
bluetoothd bringup or when adapter is down.adapter_disable_svc_cache() is
used to switch off the cache, so any successive service class updates are
directly written to the device.
Luiz Augusto von Dentz [Tue, 21 Jul 2009 13:05:17 +0000 (10:05 -0300)]
Update audio-api.txt including AudioSource documentation.
Luiz Augusto von Dentz [Tue, 21 Jul 2009 13:04:47 +0000 (10:04 -0300)]
Remove deprecated method and signals for AudioSource.
Marcel Holtmann [Fri, 31 Jul 2009 12:56:23 +0000 (05:56 -0700)]
When RFKILL is unblocked restore the previous power setting
Johan Hedberg [Fri, 31 Jul 2009 12:47:19 +0000 (15:47 +0300)]
Add functions for RFKILL and offline mode
This patch adds a couple of helper functions that are needed to cleanly
implement RFKILL and offline mode support.
Marcel Holtmann [Fri, 31 Jul 2009 09:15:34 +0000 (02:15 -0700)]
Fix ipctest and its strict-aliasing problems
Marcel Holtmann [Wed, 29 Jul 2009 19:44:31 +0000 (21:44 +0200)]
Add skeleton for RFKILL support
Marcel Holtmann [Wed, 29 Jul 2009 19:35:00 +0000 (21:35 +0200)]
Fix missing includes from header files
Johan Hedberg [Tue, 28 Jul 2009 10:37:16 +0000 (13:37 +0300)]
Fix serial proxy record info attributes
Johan Hedberg [Tue, 28 Jul 2009 07:36:26 +0000 (10:36 +0300)]
Use 16/32-bit UUID if possible in serial proxy records
Luiz Augusto von Dentz [Mon, 27 Jul 2009 22:20:41 +0000 (19:20 -0300)]
Track sender of CreateProxy.
Only proxies created by serial.conf should be persistent.
Forrest Zhao [Mon, 27 Jul 2009 05:31:30 +0000 (13:31 +0800)]
Remove the serial storage functionality
This functionality isn't needed anymore now that we have serial.conf.
Proxies created through the D-Bus interface will always be temporary not
remembered after a bluetoothd restart.
Johan Hedberg [Fri, 24 Jul 2009 07:27:35 +0000 (10:27 +0300)]
Fix whitespace
Forrest Zhao [Fri, 24 Jul 2009 03:18:20 +0000 (11:18 +0800)]
Add support for multiple serial proxies configuration
Luiz Augusto von Dentz [Wed, 22 Jul 2009 17:33:59 +0000 (14:33 -0300)]
Fix another possible array out of bounds.
Note also that the pppd_opts should be NULL terminated thus there is only
place for 39 options rather 40.
Alok Barsode [Wed, 22 Jul 2009 12:06:54 +0000 (17:36 +0530)]
Remove the service_classes_callback mechanism
Luiz Augusto von Dentz [Tue, 21 Jul 2009 20:13:30 +0000 (17:13 -0300)]
Fix bug which could cause buffer overruns.
Luiz Augusto von Dentz [Tue, 21 Jul 2009 19:00:50 +0000 (16:00 -0300)]
Fix possible array out of bounds.
Luiz Augusto von Dentz [Tue, 21 Jul 2009 16:40:06 +0000 (13:40 -0300)]
Fix segfault when a record is updated.
Current code is freeing the new record when it shouldn't as the memory is
reused by extract_pdu_server.
Johan Hedberg [Tue, 21 Jul 2009 08:50:39 +0000 (11:50 +0300)]
Fix bogus error comparison
There's no "error" variable here so the comparison was always with the
address of the public error function, which will always be != NULL.
Marcel Holtmann [Sat, 18 Jul 2009 21:36:46 +0000 (23:36 +0200)]
Release 4.46
Marcel Holtmann [Sat, 18 Jul 2009 21:27:46 +0000 (23:27 +0200)]
Update library version
Luiz Augusto von Dentz [Fri, 17 Jul 2009 13:11:24 +0000 (10:11 -0300)]
Fix possible use of a pointer after free.
Luiz Augusto von Dentz [Thu, 16 Jul 2009 13:21:50 +0000 (10:21 -0300)]
Fix possible memory leak.
Luiz Augusto von Dentz [Thu, 16 Jul 2009 12:24:37 +0000 (09:24 -0300)]
Fix possible leak or crash on gen_dataseq_pdu in case of out of memory.
Luiz Augusto von Dentz [Thu, 16 Jul 2009 12:23:14 +0000 (09:23 -0300)]
Fix unintended fall through.
Luiz Augusto von Dentz [Wed, 15 Jul 2009 20:28:43 +0000 (17:28 -0300)]
Cleanup gateway code to make Coverty happy.
Luiz Augusto von Dentz [Wed, 15 Jul 2009 19:52:55 +0000 (16:52 -0300)]
Fix unhandled return.
Luiz Augusto von Dentz [Wed, 15 Jul 2009 19:51:08 +0000 (16:51 -0300)]
Remove useless instruction.
Marcel Holtmann [Thu, 16 Jul 2009 05:25:30 +0000 (07:25 +0200)]
Fix strict-aliasing rules handling for hciemu and IP addresses
Marcel Holtmann [Thu, 16 Jul 2009 05:23:38 +0000 (07:23 +0200)]
Fix strict-aliasing rules handling of l2test and info requests
Marcel Holtmann [Thu, 16 Jul 2009 05:15:19 +0000 (07:15 +0200)]
Use -fno-strict-aliasing for audio subdirectory for now
Marcel Holtmann [Thu, 16 Jul 2009 05:13:02 +0000 (07:13 +0200)]
Fix another strict-aliasing rules handling with CMSG_DATA
Marcel Holtmann [Thu, 16 Jul 2009 06:42:06 +0000 (08:42 +0200)]
Fix strict-aliasing rules handling with CMSG_DATA
Mike Lockwood [Thu, 16 Jul 2009 00:27:50 +0000 (20:27 -0400)]
sbc: Enable neon optimizations.
Signed-off-by: Mike Lockwood <lockwood@android.com>
Marcel Holtmann [Wed, 15 Jul 2009 16:15:49 +0000 (18:15 +0200)]
Fix variable typo
Marcel Holtmann [Wed, 15 Jul 2009 16:09:02 +0000 (18:09 +0200)]
Add option to disable optimization independent from debug
Mike Reed [Tue, 14 Jul 2009 15:33:18 +0000 (11:33 -0400)]
disable neon extras until they build properly
Luiz Augusto von Dentz [Mon, 13 Jul 2009 16:33:58 +0000 (13:33 -0300)]
Fix ipctest reading socket forever.
João Paulo Rechi Vita [Wed, 8 Jul 2009 19:25:55 +0000 (16:25 -0300)]
Add Sink role support to audio IPC.