gstreamer/subprojects/gst-integration-testsuites/testsuites/validate
Enrique Ocaña González 92a4cfe20f qtdemux: Don't emit GstSegment correcting start time when in MSE mode
When using qtdemux in a pipeline that should only work as a pure demuxer (not
for actual playback), qtdemux shouldn't emit new GstSegments to correct
the start time (jump to the future) to ensure that the user experiences no
playback delay. By doing so, it's generating the wrong segments when an append
of data from the past happens. When that happens, downstream elements such as
parsers (eg: aacparse) may clip those buffers laying before the GstSegment and
create problems on the GStreamer client app (eg: WebKit).

Getting buffers clipped out because of the wrong GstSegments started becoming
a problen when this commit was introduced:

ab6e49e9cc audioparsers: add back segment clipping to parsers that have lost it

This clipping makes test DASH shaka 35 from MVT tests[1] to fail in
WebKitGTK/WPE (at least) and can potentially cause a number of other problems
in the WebKit Media Source Extensions (MSE) code.

Note that this new behaviour of not emitting new GstSegments only makes sense
when qtdemux is being used as a pure demuxer and not as part of a regular
pipeline. This is why the variant field has been added. When equal to
VARIANT_MSE_BYTESTREAM, it will make qtdemux behave differently in push mode,
taking decisions that meet the expectations for an MSE-like processing mode.
This kind of tweaks have been done in the past for MSS streams, for instance.
That code has been refactored to use VARIANT_MSS_FRAGMENTED now, instead of
its own dedicated boolean flag.

Co-authored by: Alicia Boya García <ntrrgc@gmail.com>

...who suggested to use "variant: mse-bytestream" in the caps to identify that
mode, as proposed in her unmerged patch:

https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/467

[1] https://github.com/rdkcentral/mvt

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3867>
2023-02-06 12:42:49 +00:00
..
appsrc Import gst-integration-testsuites 2021-09-24 16:29:33 -03:00
aspectcropratio Import gst-integration-testsuites 2021-09-24 16:29:33 -03:00
baseparse test: update tests to include the new meta 2022-06-03 08:29:05 +00:00
clock_sync Import gst-integration-testsuites 2021-09-24 16:29:33 -03:00
dash adaptivedemux2: Generate proper stream-id taking into account upstream 2023-02-01 22:26:34 +00:00
decryptor gst-integration-testsuites: Update cenc_audio_esds_property_overrides expected output file 2022-12-17 19:30:51 +02:00
flow Import gst-integration-testsuites 2021-09-24 16:29:33 -03:00
flvdemux Import gst-integration-testsuites 2021-09-24 16:29:33 -03:00
h264 test: update tests to include the new meta 2022-06-03 08:29:05 +00:00
h265parse Import gst-integration-testsuites 2021-09-24 16:29:33 -03:00
interlace Import gst-integration-testsuites 2021-09-24 16:29:33 -03:00
matroska Import gst-integration-testsuites 2021-09-24 16:29:33 -03:00
mp4 test: update tests to include the new meta 2022-06-03 08:29:05 +00:00
mse qtdemux: Don't emit GstSegment correcting start time when in MSE mode 2023-02-06 12:42:49 +00:00
nle Import gst-integration-testsuites 2021-09-24 16:29:33 -03:00
playbin Import gst-integration-testsuites 2021-09-24 16:29:33 -03:00
playbin3 decodebin3: Do not try to plug a decoder on raw formats 2022-10-06 08:41:49 +00:00
rtp rtph264pay: Handle 'profile' field 2021-12-12 10:59:00 -03:00
scaletempo Import gst-integration-testsuites 2021-09-24 16:29:33 -03:00