Barnabás Pőcze
13208220d8
spa: libcamera: print camera id when it appears/disappears
2022-09-15 11:17:47 +00:00
Barnabás Pőcze
086de7dcac
spa: libcamera: properly dispose of shared_ptr
...
Previously, in `remove_device()`, the last device would be copied into
the slot of the to-be-remove device. The problem with this is that it
left the shared_ptr untouched in the previously last slot, and hence
creating an extra reference. Fix this by moving instead of copying.
A similar problem is present in `clear_devices()` which also
did not properly dispose of the shared_ptrs. Fix that by
calling `reset()` on each device's camera pointer.
2022-09-15 11:17:47 +00:00
Barnabás Pőcze
442a0c54ea
spa: libcamera: move shared_ptr to avoid copy
2022-09-15 11:17:47 +00:00
Barnabás Pőcze
ba04a0f936
spa: libcamera: take raw pointer to avoid shared_ptr copy
2022-09-15 11:17:47 +00:00
Barnabás Pőcze
9370fbee3d
spa: libcamera: indent with tabs instead of spaces
2022-09-15 11:17:47 +00:00
Frédéric Danis
fdccc10bc7
bluez5: Use SelectProperties Endpoint property to detect device role
...
BlueZ adds the Endpoint property to the Properties dictionary of
SelectProperties.
This allows to know which remote Endpoint is an acceptor, and so which
local transport should be used as an initiator.
2022-09-15 11:17:20 +00:00
Frédéric Danis
d4b639419a
bluez5: Init BAP LC3 coder/decoder depending on direction
...
For LE Audio, sink and source have their own media transport endpoint.
Media sink or source only needs the coder or decoder respectively.
2022-09-15 11:17:20 +00:00
Frédéric Danis
28b4fbecfb
bluez5: Manage BAP linked transports
...
Multiple transport from the same device may share the same stream (CIS)
and group (CIG) but for different direction, e.g. a speaker and a
microphone. In this case they are linked.
In this case:
- On acquire, if another transport has already been acquired, the new
transport should not call Acquire or TryAcquire but re-use values from
the previously acquired transport,
- on release, the closing of transport fd and call to Release should be
done only for the last transport.
2022-09-15 11:17:20 +00:00
Frédéric Danis
81f70aa1ec
bluez5: Allow media source connection for BAP
2022-09-15 11:17:20 +00:00
Frédéric Danis
cd50188787
bluez5: Fix node creation depending on device role
...
We can't determine which remote endpoint or device the
SelectConfiguration() call is associated with. For LE Audio BAP, as this
method is called only for the Initiator we set the whole instance as a
Central/Initiator.
This flag is unset on BAP media endpoint removal.
2022-09-15 11:17:20 +00:00
Frédéric Danis
e0c79959fc
bluez5: Add stereo support to LE Audio LC3 codec
2022-09-15 11:17:20 +00:00
Frédéric Danis
fd1b331353
bluez5: Fix sink timeout for BAP
...
Data should be written to the ISO Stream fd every 10ms or 7.5ms depending
on the configuration selected.
2022-09-15 11:17:20 +00:00
Frédéric Danis
071730ecab
bluez5: Use delay from QoS for BAP
2022-09-15 11:17:20 +00:00
Frédéric Danis
39ef812ed5
bluez5: Complete BAP audio location mapping
2022-09-15 11:17:20 +00:00
Frédéric Danis
f428b13d06
bluez5: Set BAP QoS depending on selected configuration
...
This move the QoS setup to be codec specific and fills it depending on the
selected codec configuration.
2022-09-15 11:17:20 +00:00
Frédéric Danis
284da66deb
bluez5: Add BAP_SINK/SOURCE from PACS UUID to adapter profiles
...
BAP sink/source are characteristics of the PACS profile, but we're more
interested by those characteristics then the more generic profile.
2022-09-15 11:17:20 +00:00
Frédéric Danis
496dda1bcc
bluez5: Check if BlueZ daemon support LE Audio
...
Legacy BlueZ 5 API doesn't support to register BAP codecs, which prevents
to register A2DP enhanced codecs.
2022-09-15 11:17:20 +00:00
Frédéric Danis
b7ad1d1869
bluez5: Add SelectProperties DBus method support
2022-09-15 11:17:20 +00:00
Frédéric Danis
96acc5a79a
bluez5: Add LE Audio BAP support to bluez5-device
2022-09-15 11:17:20 +00:00
Frédéric Danis
201fd7755d
bluez5: Add LC3 codec support to LE Audio BAP
...
By default this codec is disabled as the BlueZ support for LE Audio is
still experimental.
2022-09-15 11:17:20 +00:00
Frédéric Danis
fd0bcb1699
bluez5: Add LE Audio BAP support to media-codecs
2022-09-15 11:17:20 +00:00
Frédéric Danis
00d51c3d31
bluez5: Rename codec API from *a2dp* to *media*
...
The BlueZ Media1 interface will not only be used for A2DP but also for
LE Audio and code related can be shared.
2022-09-15 11:17:20 +00:00
Wim Taymans
565bb2c493
resample: fix peaks sse code
...
Fix the shuffle arguments.
Use another way of making 0x80000000 and use andnot to remove the
sign bit.
2022-09-14 16:58:41 +02:00
Dmitry Sharshakov
3b89e6f369
alsa-seq: add an option to disable longname in MIDI ports
...
Untested yet
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
2022-09-13 07:46:40 +00:00
Dmitry Sharshakov
ea646c2d98
alsa-seq: set card long name or number in port names
...
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
2022-09-13 07:46:40 +00:00
Wim Taymans
5e890925a0
module-echo-cancel: don't load newer modules
...
Add some version comments for the new AEC methods
2022-09-13 09:44:36 +02:00
Jonas Holmberg
70471989e5
module-echo-cancel: Add activate/deactivate methods
...
Add methods activate() that is called before first call to run() when
stream starts and deactivate() that is called after last call to run()
when stream stops. This makes it possible for aec-plugins to reset their
state between streams.
2022-09-12 18:24:07 +00:00
Wim Taymans
634d7107a4
v4l2: use the device name to open in BeginParams
2022-09-12 09:51:55 +02:00
Wim Taymans
a7c28d64ae
resample-peaks: small improvement
...
Makes it easier for the compiler to make a constant.
2022-09-08 15:40:01 +02:00
Wim Taymans
46c8c9ec03
audioconvert: set monitor port buffer size correctly
...
Also use quantum_limit samples on the monitor ports.
Fixes #2677
2022-09-08 12:25:28 +02:00
Wim Taymans
903f831b2d
alsa: scale min value back to nominal rate
2022-09-07 23:39:51 +02:00
Wim Taymans
7057cca05e
alsa: adjust min and max rates
...
Use the DSD scaler and interleave factors to calculate the min and
max rates.
2022-09-07 21:58:32 +02:00
Wim Taymans
955815b468
alsa: only scale DSD samplerates
2022-09-07 21:42:45 +02:00
Wim Taymans
68581235ae
alsa: fix min dsd rate
...
We just need to allow from DSD64 onwards. Remove some unused fields.
2022-09-07 20:23:53 +02:00
Wim Taymans
72b6788c68
alsa: don't set impossible rates
...
When the max rate is smaller than the min rate, don't add the DSD
format at all because it is not possible to play it.
See #93
2022-09-07 19:58:30 +02:00
Wim Taymans
23522651f9
alsa: dsd rates are expressed in byte rate
...
DSD64 would be a rate of 44100 * 64 / 8. When packed in U32_BE, we would
negotiate 44100 * 8 / 4 (88200) with the device, this means all rates
from 88200 and up are allowed for DSD64 in U32_BE.
2022-09-07 19:54:09 +02:00
Wim Taymans
c9ee142b78
resample-peaks: unroll loop a little
2022-09-07 16:18:58 +02:00
Wim Taymans
187006f30e
audioconvert: remove some double defines
2022-09-07 16:08:21 +02:00
Wim Taymans
6e9e02b420
audioconvert: refactor peaks resampler
...
Use common code in macro and generate arch specific version.
Compile with -Ofast to optimize some fmaxf calls.
2022-09-07 16:00:31 +02:00
Wim Taymans
968bc382af
log: initialize pos to help the compiler
...
Although pos will be set to 0 in the first iteration, the compiler does
not seem to figure this out, so help it a little:
../spa/include/spa/support/log.h:306:21: warning: ‘pos’ may be used uninitialized [-Wmaybe-uninitialized]
306 | pos += sprintf(str + pos, "%02x ", buf[i]); \
| ^~
../spa/include/spa/support/log.h:301:13: note: ‘pos’ was declared here
301 | int pos; \
| ^~~
2022-09-07 09:17:19 +02:00
Frédéric Danis
2c72597271
bluez5: Use spa_log_hexdump() to dump media properties/configuration
2022-09-07 07:50:23 +02:00
Frédéric Danis
1d39ea004e
log: Add spa_log_hexdump
2022-09-07 07:50:23 +02:00
Wim Taymans
5b2b93f915
alsa: add period-size, period-num and headroom in props
...
Add the currently configured alsa hw_params in the properties for
easier access.
2022-09-06 20:16:29 +02:00
Wim Taymans
ffc09ce55e
videoconvert: refresh with latest audioadapter copy
2022-09-06 17:48:00 +02:00
Wim Taymans
201e6ae9fd
audioconvert: use given channelmap for volume
...
Use the given channelmap for the volume, like it used to be in old
audioconvert.
This makes new streams expose a volume even when not negotiated yet.
2022-09-05 15:29:16 +02:00
Wim Taymans
71ec8650ba
audioconvert: remove redundant set_volume calls
2022-09-05 13:23:18 +02:00
Wim Taymans
0c47ab76a7
channelmix: Only filter FC/LFE when present
2022-09-05 13:22:40 +02:00
Wim Taymans
7b432aec88
spa: make default samplerate 48000
...
Remove some 44100 default rates and use 48000 instead.
2022-09-05 12:21:20 +02:00
Wim Taymans
cad7db9f58
libcamera: close camera in error path
2022-09-05 09:25:42 +02:00
Pauli Virtanen
df858cae7c
bluez5: clarify OPUS-A2DP spec
...
Also remove DRAFT tag.
2022-09-03 19:08:27 +00:00