From 46dbe2a372a37c676fc308ca9ac15a04ec6beffc Mon Sep 17 00:00:00 2001 From: Philippe Normand <philn@igalia.com> Date: Wed, 13 Sep 2023 15:11:32 +0100 Subject: [PATCH] interaudiosrc: Add audio meta to buffers containing non-interleaved samples Without this a downstream audioconverter wouldn't be able to map the GstAudioBuffer prior to conversion. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5324> --- subprojects/gst-plugins-bad/gst/inter/gstinteraudiosrc.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/subprojects/gst-plugins-bad/gst/inter/gstinteraudiosrc.c b/subprojects/gst-plugins-bad/gst/inter/gstinteraudiosrc.c index f516a585fb..ef2b7fc4c1 100644 --- a/subprojects/gst-plugins-bad/gst/inter/gstinteraudiosrc.c +++ b/subprojects/gst-plugins-bad/gst/inter/gstinteraudiosrc.c @@ -412,6 +412,12 @@ gst_inter_audio_src_create (GstBaseSrc * src, guint64 offset, guint size, } n = period_samples; + /* audioconvert expects an audio meta for planar layout audio inputs. */ + if (GST_AUDIO_INFO_LAYOUT (&interaudiosrc->info) == + GST_AUDIO_LAYOUT_NON_INTERLEAVED) { + gst_buffer_add_audio_meta (buffer, &interaudiosrc->info, n, NULL); + } + GST_BUFFER_OFFSET (buffer) = interaudiosrc->n_samples; GST_BUFFER_OFFSET_END (buffer) = interaudiosrc->n_samples + n; GST_BUFFER_DTS (buffer) = GST_CLOCK_TIME_NONE;