Audio-resampling isn't actually performed?

Sebastian Dröge sebastian at
Sat Nov 14 10:00:22 UTC 2020

On Thu, 2020-11-12 at 05:16 -0600, Lusine wrote:
> Hi Folks,
> Thanks for your feedback. My element is based on GstAudioAggregator and it's
> pretty simple - I only overwrite base aggregate function in my element.

If you do that you don't get any of the features of GstAudioAggregator.

You must only override the create_output_buffer() and
aggregate_one_buffer() virtual methods.

> [...]
> It  works correctly when both my inputs(sink pads) have the same audio rate
> but in case of inputs have different sample rates I get the following error
> message even though I do resampling(bringing to the same audio rate with
> audioresample) before passing to the audio aggregator element:
> ERROR                  qtmux gstqtmux.c:4535:gst_qt_mux_add_buffer:
> decreasing DTS value 0:00:08.845333332 < 0:00:18.612919076
> Please let me know what I'm missing. Why this code works when my input files
> have the same audio rate and why I get this error when both my inputs have
> different rates even though I resample the audio streams to the same rate
> with audioresample element before passing them to my custom plugin.

That suggests that you don't synchronize streams correctly inside your
custom element. Hard to say without a runnable testcase for this

But this is unlikely to happen if you use GstAudioAggregator correctly,
i.e. don't override the GstAggregator::aggregate() virtual method.

Sebastian Dröge, Centricular Ltd ·

More information about the gstreamer-devel mailing list