Xavier Claessens
24356c099a
audioconvert: Fix regression when using a mix matrix
...
This fixes regression introduced by commit da3a1011. When a mix matrix
is set, we still want to set the default channel-mask on output caps.
Fixes : #4579
Co-authored-by: Sebastian Dröge <sebastian@centricular.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9487 >
2025-08-06 10:25:51 +00:00
Xavier Claessens
472d528ffe
audioconvert: Fix setting mix-matrix when input caps changes
...
When the number of input channels changes, application might have to set
a new mix-matrix. Application must set the new matrix before
audioconvert receives updated caps, otherwise negotiation would fail.
That means it should be allowed to set an invalid mix-matrix until we
receive new caps or next buffer.
This fixes a regression in GStreamer >=1.24.9 caused by:
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7363
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9215 >
2025-06-26 00:58:05 +00:00
Xavier Claessens
73d5b5b3db
audioconvert: Replace g_warning with GST_WARNING_OBJECT
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9215 >
2025-06-26 00:58:05 +00:00
Mathieu Duponchelle
3de86b2b97
docs: port plugins to explicit sources
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8273 >
2025-01-13 19:17:13 +01:00
Sebastian Dröge
275134c883
base: audio: video: Use more efficient caps/structure API in various places
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7432 >
2024-09-26 19:26:18 +03:00
Mathieu Duponchelle
25f3ab2e6c
audioconvert: handle new GstRequestMixMatrix custom upstream event
...
An example use case is the gstwebrtc-api demo, which will cause
webrtcsink to forward such events. This lets the end user define a mix
matrix without requiring any application code server side.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7363 >
2024-08-20 17:05:49 +00:00
Mathieu Duponchelle
fd90d7bdee
audioconvert: fix setting of mix matrix at run time
...
There were two main issues:
The mix matrix was not protected with the object lock
The code was mistakenly assuming that after updating the mix matrix
a reconfigure event sent upstream would be enough to cause upstream to
send caps again, and the converter was only reconstructed in ->set_caps.
That was not actually enough, as if the new matrix didn't affect the
number of input / output channels there was no reason for upstream to do
anything after getting the unchanged caps.
The fix for this was to have ->transform also recreate the converter
when needed, with the added subtlety that depending on the mix matrix
the element could be set to passthrough. This means that when setting
the mix matrix the converter also had to be recreated immediately to
check if the element had to be switched back to non-passthrough.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7363 >
2024-08-20 17:05:49 +00:00
Loïc Le Page
8fb96253be
audioconvert: add possibility to reorder input channels
...
When audioconvert has unpositionned audio channels as input
it can now use reordering configurations to automatically
position those channels.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5923 >
2024-04-22 12:06:11 +02:00
Jurijs Satcs
23f654a943
audioconvert: set mix-matrix when user changes it to empty
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6243 >
2024-03-01 11:58:57 +00:00
Guillaume Desmottes
b603095ac3
audioconvert: change gst_audio_convert_get_unit_size() log levels
...
INFO is a bit high for such technical details and best to use WARNING
when it fails.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5822 >
2023-12-18 10:07:39 +00:00
Lieven Paulissen
9cc7e8c035
audioconvert: Fix fallback to identity mixing matrix when setting an empty mix-matrix
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5530 >
2023-10-27 10:07:40 +00:00
Tim-Philipp Müller
dec3aa55e9
audioconvert, audioresample, audiofilter: fix divide by 0 for input buffer without caps
...
gst-launch-1.0 audiotestsrc ! udpsink host=127.0.0.1
gst-launch-1.0 udpsrc ! audioconvert ! autoaudiosink
would crash with a floating point exception when clipping the input
buffer owing to a division by zero because no caps event was received.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3469 >
2022-11-26 08:47:49 +00:00
Thibault Saunier
6a4425e46a
meson: Call pkgconfig.generate in the loop where we declare plugins dependencies
...
Removing some copy pasted code
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2970 >
2022-09-01 21:17:35 +00:00
Ádám Balázs
55716ac21c
gstaudioconvert: doc: Fix mix-matrix example
...
mix-matrix should contain float elements, modify the example to do so
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2966 >
2022-08-31 17:24:51 +00:00
Sebastian Dröge
2eee3f4ca4
audioconvert: If no channel-mask can be fixated then use a NONE channel layout
...
Otherwise this is generating caps without a channel-mask, which is
invalid for >1 channels and will always fail negotiation.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2350 >
2022-05-03 13:41:07 +03:00
Sebastian Dröge
3941eb7dbd
audioconvert: Add dithering-threshold property
...
By default, no dithering is applied if the target bit depth is above 20
bits. This new property allows to apply dithering nonetheless in these
cases.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1730 >
2022-02-25 19:32:28 +00:00
Thibault Saunier
2fd28195ca
Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir
2021-09-24 16:13:26 -03:00