[uridecodebin3][dashdemux] Video is not playing when dashdemux switch to next period in mpd
Hi.
I'm using the following pipeline to play a dash where the mpd is having 2 periods. (gstreamer v1.18.4)
gst-launch-1.0 -v uridecodebin3 uri=https://dash.akamaized.net/dash264/TestCases/5a/nomor/4.mpd name=decodebin connection-speed=250 caps="video/x-h264;audio/x-raw" decodebin.video_0 ! h264parse config-interval=-1 ! video/x-h264,stream-format=byte-stream ! rtph264pay ! udpsink host=host.docker.internal port=55006 decodebin.audio_0 ! audioconvert ! audioresample ! opusenc ! rtpopuspay ! udpsink host=host.docker.internal port=55008
Both audio and video are playing fine, but after ~4m when dashdemux advance to the next period, I see the following: new audio_01 src pad is created new video_01 src pad is created
decodebin3 automatically selects properly audio_01, but it doesn't seem to receive any collection event for video_01 stream, and it ends up with video_00 and audio_01 streams being selected, where nothing is being pushed to video_00 since it was used for the first period.
As a result, the pipeline keeps playing only audio from the new period, and no video is being played at all.
Note that if I change the pipeline to play only video, the next period is played just fine: (So the issue isn't suspected to be with the video stream itself)
gst-launch-1.0 -v uridecodebin3 uri=https://dash.akamaized.net/dash264/TestCases/5a/nomor/4.mpd name=decodebin connection-speed=250 caps="video/x-h264;audio/x-raw" decodebin.video_0 ! h264parse config-interval=-1 ! video/x-h264,stream-format=byte-stream ! rtph264pay ! udpsink host=host.docker.internal port=55006
Logs attached with GST_DEBUG level is set to 3,dash:5,soup:4,gstadaptivedemux:4,decodebin:5,parsebin:5 gst-main-debug.log