gstreamer/tests/check/elements
Sebastian Dröge 71e46bcf38 audioaggregator: Resync on the next buffer when dropping a buffer on discont resyncing
If a buffer is dropped during resyncing on a discont because either its
end offset is already before the current output offset of the
aggregator or because it fully overlaps with the part of the current
output buffer that was already filled, then don't just assume that the
next buffer is going to start at exactly the expected offset. It might
still require some more dropping of samples.

This caused the input to be mixed with an offset to its actual position
in the output stream, causing additional latency and wrong
synchronization between the different input streams.

Instead consider each buffer after a discont as a discont until the
aggregator actually resynced and starts mixing samples from the input
again.

Also update the start output offset of a new input buffer if samples
have to be dropped at the beginning. Otherwise it might be mixed too
early into the output and overwrite part of the output buffer that
already took samples from this input into account.

Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/912
which is a regression introduced by https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1180/

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1224>
2021-07-12 09:42:39 +03:00
..
adder.c Use gst_element_request_pad_simple... 2021-05-05 11:55:54 +03:00
appsink.c appsink: Reuse sample object in pull_sample if possible 2018-04-19 16:14:12 +02:00
appsrc.c appsrc: Add test for testing the max-* and leaky-type properties 2021-05-05 15:13:33 +00:00
audioconvert.c tests: audioconvert: fix leaks in unit test 2019-03-06 10:51:40 +00:00
audiointerleave.c Use gst_element_request_pad_simple... 2021-05-05 11:55:54 +03:00
audiomixer.c audioaggregator: Resync on the next buffer when dropping a buffer on discont resyncing 2021-07-12 09:42:39 +03:00
audiorate.c valgrind: free buffer list in audiorate test 2019-06-05 20:51:47 +00:00
audioresample.c tests/check/elements/audioresample.c: avoid implict int ot float conversion 2020-08-04 17:32:31 +03:00
audiotestsrc.c tests: audiotestsrc: add unit test for non-interleaved audio output 2018-07-11 12:23:32 +03:00
compositor.c Use gst_element_request_pad_simple... 2021-05-05 11:55:54 +03:00
decodebin.c tests: Avoid hang with decodebin test 2020-06-08 08:11:00 +02:00
encodebin.c Use gst_element_request_pad_simple... 2021-05-05 11:55:54 +03:00
glbin.c tests/glbin: setting a full reference means we need to unref 2019-03-06 23:32:18 +11:00
glfilter.c check: verify gst_gl_display_add_context() 2020-05-09 07:31:04 +02:00
glimagesink.c Pass the code through codespell 2019-08-30 13:05:36 +00:00
glmixer.c glmixer: Fix unit test to actually work reliably 2020-09-10 14:19:04 +03:00
glstereo.c tests: add glviewconvert users integration unit test 2020-04-24 12:12:31 +10:00
libvisual.c tests: include config.h and don't include unix headers 2018-01-16 18:14:59 +00:00
multifdsink.c multifdsink: remove defunct include guarded by unused HAVE_FIONREAD_IN_SYS_FILIO 2019-12-09 07:33:55 +00:00
multisocketsink.c multifdsink: remove defunct include guarded by unused HAVE_FIONREAD_IN_SYS_FILIO 2019-12-09 07:33:55 +00:00
opus.c tests: include config.h and don't include unix headers 2018-01-16 18:14:59 +00:00
overlaycomposition.c overlaycomposition: Fix test for big endian. 2021-04-12 04:39:49 -04:00
playbin-complex.c tests: playbin-complex: skip test that needs oggdemux if it's not available 2017-09-10 16:32:31 +01:00
playbin.c tests: include config.h and don't include unix headers 2018-01-16 18:14:59 +00:00
playsink.c tests: playsink: add minimal test for playsink element 2016-05-14 16:02:16 +01:00
rawaudioparse.c tests: include config.h and don't include unix headers 2018-01-16 18:14:59 +00:00
rawvideoparse.c Pass the code through codespell 2019-08-30 13:05:36 +00:00
streamsynchronizer.c Use gst_element_request_pad_simple... 2021-05-05 11:55:54 +03:00
subparse.c tests: subparse: add test for webvtt without hour component 2020-06-18 09:06:32 +09:00
textoverlay.c Use gst_element_request_pad_simple... 2021-05-05 11:55:54 +03:00
urisourcebin.c tests/urisourcebin: add get/set watermark test 2018-11-07 15:10:05 +00:00
videoconvert.c videoconvert,videoscale: Add alternate-field negotiation tests 2021-02-04 21:47:27 +02:00
videorate.c videorate: Error out on streams with no way to guess framerate 2020-07-20 22:05:57 +00:00
videoscale.c videoconvert,videoscale: Add alternate-field negotiation tests 2021-02-04 21:47:27 +02:00
videotestsrc.c tests: include config.h and don't include unix headers 2018-01-16 18:14:59 +00:00
volume.c tests: include config.h and don't include unix headers 2018-01-16 18:14:59 +00:00
vorbisdec.c tests: vorbisec: fix leaks in unit test 2019-03-06 10:51:40 +00:00
vorbistag.c tests: include config.h and don't include unix headers 2018-01-16 18:14:59 +00:00