We only need as many ports and buffer data as the maximum number
of channels, which is 64.
Fix empty output size. We're only ever going to fill this with
float samples.
The transport is already added in profile_new_connection(), unless
is_new is TRUE
Apart from being wrong, adding the same node twice in a list also causes
spa_list_foreach() to loop forever...
libcamera is depending on libdrm in libcamera_wrapper.cpp but it was
implicitely including the header drm_fourcc.h with libcamera
file pixel_format.h
With this patch, the libcamera plugin should explicitely depends on
libdrm as it needs DRM fourcc and should not depend on multiple
inclusion from libcamera.
Add a FourCC for Motion-JPEG compressed format. This is a temporary
addition until the format gets merged in the upstream kernel.
Channelmix has now a control port that receives control sequences. Each Control
of those sequences are handled individually by channelmix in order to change
properties when a specific amount of samples have been processed.
Co-authored-by: Wim Taymans
Log device name and stream direction
Don't log xrun errors in alsa, we signal the xrun signal, which should
take care of logging if any.
Log quantum in xrun.
ratelimit xrun messages.
The announce messages are not put in a queue so we don't need
to allocate one (and a timer). Without the timer, we avoid wakeups
and consume less power.
See #225
Make a new DRAINED status.
Place the DRAINED status on an input IO when a stream is out of
buffers and draining.
All nodes that don't have HAVE_DATA on the input io need to copy
it to the output io and return the status. This makes sure the
DRAINED is forwarded and nodes return DRAINED from _process()
DRAINED on the resampler flushes out the last queued samples and then
forwards the DRAINED in the next iteration.
Emit a new drained signal from the context when a node returns
DRAINED. Use this to trigger the drained signal in the stream.