GNOME Bugzilla – Bug 785795
uridecodebin won't connect the sink to decoder while the audio information is wrong
Last modified: 2018-11-03 11:58:55 UTC
I have found lots of video sample files in MPEG TS format with an invalid audio channel. The FFmpeg will ignore those audio channel, but Gstreamer will obey the PID information creating a data path for audio. I have not looked into the uridecodebin, I think there is something wrong in audio part stopping the connection of the video decoder and video sink. I talked to slomo last time, he said it could be a bug, so file it today. You could find a video sample at https://drive.google.com/open?id=0B0olUVfSCbB3TUxURkFOX2FVQVk 0009_rio_4K_60fps_hevc_20mbps.ts is the smallest files of them.
It more likely the problem of the decodebin2: 0:00:00.637520042 877 0x7f8c046c50 DEBUG decodebin gstdecodebin2.c:3941:gst_decode_chain_is_complete:<decodebin0> Chain 0x7f8801ad30 is complete: 0 0:00:00.637534917 877 0x7f8c046c50 DEBUG decodebin gstdecodebin2.c:3900:gst_decode_group_is_complete:<decodebin0> Group 0x7f8c0601c0 is complete: 0 0:00:00.637548042 877 0x7f8c046c50 DEBUG decodebin gstdecodebin2.c:3941:gst_decode_chain_is_complete:<decodebin0> Chain 0x794d510 is complete: 0 0:00:00.638901084 877 0x7f8c046c50 DEBUG decodebin gstdecodebin2.c:3530:multi_queue_overrun_cb:<decodebin0> Setting group 0x7f8c0601c0 multiqueue to 'playing' buffering mode 0:00:00.638969334 877 0x7f8c046c50 DEBUG decodebin gstdecodebin2.c:3709:decodebin_set_queue_size_full:<multiqueue0> use buffering 0 0:00:00.638983625 877 0x7f8c046c50 DEBUG decodebin gstdecodebin2.c:3742:decodebin_set_queue_size_full:<multiqueue0> setting limits 2097152 bytes, 5 buffers, 0 time 0:00:00.639031459 877 0x7f8c046c50 DEBUG decodebin gstdecodebin2.c:3941:gst_decode_chain_is_complete:<decodebin0> Chain 0x7f8801ad30 is complete: 0 0:00:00.639046042 877 0x7f8c046c50 DEBUG decodebin gstdecodebin2.c:3900:gst_decode_group_is_complete:<decodebin0> Group 0x7f8c0601c0 is complete: 0 0:00:00.639058584 877 0x7f8c046c50 DEBUG decodebin gstdecodebin2.c:3941:gst_decode_chain_is_complete:<decodebin0> Chain 0x794d510 is complete: 0 0:00:00.657449542 877 0x7f88045320 DEBUG decodebin gstdecodebin2.c:3941:gst_decode_chain_is_complete:<decodebin0> Chain 0x7f8801ad30 is complete: 0 0:00:00.657539667 877 0x7f88045320 DEBUG decodebin gstdecodebin2.c:3900:gst_decode_group_is_complete:<decodebin0> Group 0x7f8c0601c0 is complete: 0 0:00:00.657567084 877 0x7f88045320 DEBUG decodebin gstdecodebin2.c:3941:gst_decode_chain_is_complete:<decodebin0> Chain 0x794d510 is complete: 0 0:00:00.657607625 877 0x7f88045320 DEBUG decodebin gstdecodebin2.c:5052:gst_decode_pad_query:<decodebin0> calling autoplug-query for decodepad1 (element mppvideodec0): accept-caps query: 0x7f70003050, GstQueryAcceptCaps, caps=(GstCaps)"video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)3840\,\ height\=\(int\)2160\,\ interlace-mode\=\(string\)progressive\,\ multiview-mode\=\(string\)mono\,\ multiview-flags\=\(GstVideoMultiviewFlagsSet\)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono\,\ pixel-aspect-ratio\=\(fraction\)1/1\,\ chroma-site\=\(string\)mpeg2\,\ colorimetry\=\(string\)bt2020\,\ framerate\=\(fraction\)0/1", result=(boolean)false; 0:00:00.657726042 877 0x7f88045320 DEBUG decodebin gstdecodebin2.c:5061:gst_decode_pad_query:<decodebin0> autoplug-query returned 0 0:00:00.657792250 877 0x7f88045320 DEBUG decodebin gstdecodebin2.c:3941:gst_decode_chain_is_complete:<decodebin0> Chain 0x7f8801ad30 is complete: 0 0:00:00.657819667 877 0x7f88045320 DEBUG decodebin gstdecodebin2.c:3900:gst_decode_group_is_complete:<decodebin0> Group 0x7f8c0601c0 is complete: 0 0:00:00.657843875 877 0x7f88045320 DEBUG decodebin gstdecodebin2.c:3941:gst_decode_chain_is_complete:<decodebin0> Chain 0x794d510 is complete: 0
gst_decode_chain_is_complete() at gst_decode_group_is_complete() will failed at audio chain, I found the endpad->blocked is set at normal videos while those video files having problem are not.
It is a bug of decodebin2 not decodebin3, so I wonder whether it is worth to fix it.
-- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/373.