dashdemux: attempting to seek past end of media results in program freezing
Issue
Using dashdemux
and attempting to seek past the end of DASH media results in a program freeze (freezing a custom-made program using GStreamer development files, or freezing gst-launch-1.0
when using that).
Reproducing
Using gst-launch-1.0
,
Create test media with:
gst-launch-1.0 videotestsrc num-buffers=3000 ! x264enc ! h264parse ! dashsink mpd-root-path=C:/temp mpd-filename=experiment_dash.mpd
Play back test media with:
gst-launch-1.0 filesrc name=source location=C:/temp/experiment_dash.mpd ! dashdemux ! tsdemux ! h264parse ! multiqueue ! avdec_h264 ! navseek ! autovideosink
During playback (with the autovideosink
window active) spam the right arrow key on the keyboard several times (causing a forward seek) until the console output indicates that playback is near completion. Spam the right arrow key a few more times, and observe that gst-launch-1.0
is no longer responding.
Alternatively, create the playback pipeline in code and attempt a seek past the end of the media, and then back to 0 and observe that the program is frozen.
Versions
GStreamer 1.20.0+ ('main' 66b176322c...)
Windows 10 Home 21H1 19043.1466
MSVC 19.28.29914 for x64