Age | Commit message (Collapse) | Author | Files | Lines |
|
This fixes #SPEC-2125.
The fix consists in specifying the number of channels
in the softvol pcm configuration.
When it is not set, the libasound detects a configuration
mismatch (the default number of channels being 2), and
attempts to remove the sotfvol control, which for unknown reason,
(broken support on kernel side ?) randomly fails.
Change-Id: I816b623715e413452e6793ee519e97fac6fdde43
Signed-off-by: Thierry Bultel <thierry.bultel@iot.bzh>
|
|
Fixes most memory leaks in softmixer.
The concept of 'transaction' for dynamic streams has
been generalized to the objects created at startup.
The cleanup is done via a handle set through a atexit()
call.
Also added a missing strdup in alsa-api-loop, that fixes
a double free.
Warning, the bluez-alsa PCM are not closed in this
version. This is intentional due to a BUG in the
bluealsa ioplug PCM, that crashes upon close
(pthread_cancel is used to terminate the io_thread
and things get very bad. I have a pending fix for
that, relying on a cancellation pipe, but deeper
testing must be done).
As an effect, only one phone call can be made,
else 4a needs to be restarted
Change-Id: Idb84cafe15f17c0ef02fcc70296d541dc55a2dcf
Signed-off-by: Thierry Bultel <thierry.bultel@iot.bzh>
Signed-off-by: Stephane Desneux <stephane.desneux@iot.bzh>
|
|
This adds support for bluetooth telephony.
A big rework in the softmixer internals has been
mandatory, in order to support dynamic streams creation
and deletions.
Bluetooth telephony relies on the recent evolutions
of bluez-alsa, the most important one being the
support of HFP over Ofono. The softmixer opens
PCM ioplugs provided by bluez-alsa.
Bluetooth SCO needs 2 streams, one for listening
and the other for talking. These streams are created
upon requests sent by the hal-manager.
The hal manager subscribes for bluez-alsa events
and request the list of availalble transports.
For each "attach" transaction verb, the softmixer
maintains a list of the all created objects
(sources, sinks, zones, ramps, streams, and more)
Additionnally, it creates a new verb when the attach
succeeds, that verb is typically something like
"sco_XX:XX:XX:XX:XX:XX", and the only supported action
at the present time is {"action":"remove"}, that performs
all the cleanup of the registered objects.
Change-Id: I1b119e6c079e60daf771e63c083a1ef33a39f379
Signed-off-by: Thierry Bultel <thierry.bultel@iot.bzh>
|
|
Also sets the right number of channels.
Signed-off-by: Thierry Bultel <thierry.bultel@iot.bzh>
|
|
Use correct chanel number when creating PCM.
Change-Id: I17ac0273f9a6eec1d3b49845f579495f2cdcf9d7
Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
|
|
Signed-off-by: Thierry Bultel <thierry.bultel@iot.bzh>
|
|
|
|
|
|
|
|
|
|
Mixing with volume and mute per audio role works.
|
|
|
|
|