GNOME Bugzilla – Bug 603528
dvdlpcmdec? mpegpsdemux? some vob files with lpcm audio don't preroll
Last modified: 2018-11-03 15:33:57 UTC
i have a vob file with an lpcm audio track only and it doesn't start playing with playbin2 or decodebin2 what works fine is plugging the pipeline manually like this: gst-launch-0.10 filesrc location=VTS_01_1.VOB ! dvddemux ! dvdlpcmdec ! multiqueue ! audioconvert ! audioresample ! alsasink
Created attachment 148860 [details] GST_DEBUG=*:5 gst-launch-0.10 --gst-debug-no-color playbin2 uri=file:///media/dvd/VIDEO_TS/VTS_01_1.VOB flags=2 > /net/dream/analysis/playbin2_lpcm.log 2>&1
the sample file is available upon request through nonpublic ftp download
The lpcm srcpad seems to be blocked and never unblocked. It also seems something racy is going on between the espose of the video pads and the blocking. Needs more investigation.
Doesn't seem to happen with all VOB/LPCM files though, e.g. this one works fine for me: http://www.networkrailmediacentre.co.uk/imagelibrary/downloadMedia.ashx?MediaDetailsID=3161 (VOB, 81.6MB)
This looks like an issue with dvdlpcmdec to me (or mpegpsdemux? can we make it signal audio/x-lpcm instead?). It doesn't seem to handle some types of private1-lpcm type properly or the demuxer doesn't frame it properly in this case. $ gst-launch-0.10 file:///home/tpm/tmp/iso/VIDEO_TS/VTS_01_1.VOB ! dvddemux ! dvdlpcmdec ! pulsesink -v Setting pipeline to PAUSED ... Pipeline is PREROLLING ... /GstPipeline:pipeline0/GstDVDDemux:dvddemux0.GstPad:sink: caps = video/mpeg, mpegversion=(int)2, systemstream=(boolean)true, parsed=(boolean)true /GstPipeline:pipeline0/GstDVDDemux:dvddemux0.GstPad:current_video: caps = video/mpeg, mpegversion=(int)2, systemstream=(boolean)false /GstPipeline:pipeline0/GstDVDDemux:dvddemux0.GstPad:current_audio: caps = audio/x-lpcm, width=(int)24, rate=(int)48000, channels=(int)2, dynamic_range=(int)128, emphasis=(boolean)false, mute=(boolean)false /GstPipeline:pipeline0/GstDvdLpcmDec:dvdlpcmdec0.GstPad:src: caps = audio/x-raw-int, rate=(int)48000, channels=(int)2, endianness=(int)4321, depth=(int)24, width=(int)24, signed=(boolean)true, channel-positions=(GstAudioChannelPosition)< GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT > /GstPipeline:pipeline0/GstDvdLpcmDec:dvdlpcmdec0.GstPad:sink: caps = audio/x-lpcm, width=(int)24, rate=(int)48000, channels=(int)2, dynamic_range=(int)128, emphasis=(boolean)false, mute=(boolean)false /GstPipeline:pipeline0/GstPulseSink:pulsesink0.GstPad:sink: caps = audio/x-raw-int, rate=(int)48000, channels=(int)2, endianness=(int)4321, depth=(int)24, width=(int)24, signed=(boolean)true, channel-positions=(GstAudioChannelPosition)< GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT > Pipeline is PREROLLED ... Setting pipeline to PLAYING ... New clock: GstPulseSinkClock mpegpsdemux signals audio/x-private1-lpcm without details and dvdlpcmdec just churns through the file without outputting anything: $ gst-launch-0.10 file:///home/tpm/tmp/iso/VIDEO_TS/VTS_01_1.VOB ! mpegpsdemux ! dvdlpcmdec ! pulsesink -v Setting pipeline to PAUSED ... Pipeline is PREROLLING ... /GstPipeline:pipeline0/GstDvdLpcmDec:dvdlpcmdec0.GstPad:sink: caps = audio/x-private1-lpcm /GstPipeline:pipeline0/GstDvdLpcmDec:dvdlpcmdec0.GstPad:src: caps = audio/x-raw-int, rate=(int)48000, channels=(int)2, endianness=(int)4321, depth=(int)24, width=(int)24, signed=(boolean)true, channel-positions=(GstAudioChannelPosition)< GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT > /GstPipeline:pipeline0/GstPulseSink:pulsesink0.GstPad:sink: caps = audio/x-raw-int, rate=(int)48000, channels=(int)2, endianness=(int)4321, depth=(int)24, width=(int)24, signed=(boolean)true, channel-positions=(GstAudioChannelPosition)< GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT > Pipeline is PREROLLED ... Setting pipeline to PLAYING ... New clock: GstPulseSinkClock Got EOS from element "pipeline0". Execution ended after 207429 ns. Setting pipeline to PAUSED ... Setting pipeline to READY ... /GstPipeline:pipeline0/GstPulseSink:pulsesink0.GstPad:sink: caps = NULL /GstPipeline:pipeline0/GstDvdLpcmDec:dvdlpcmdec0.GstPad:src: caps = NULL /GstPipeline:pipeline0/GstDvdLpcmDec:dvdlpcmdec0.GstPad:sink: caps = NULL /GstPipeline:pipeline0/GstMpegPSDemux:mpegpsdemux0.GstPad:audio_a0: caps = NULL /GstPipeline:pipeline0/GstMpegPSDemux:mpegpsdemux0.GstPad:video_e0: caps = NULL Setting pipeline to NULL ... Freeing pipeline ...
This bug hasn't been touched in 6 years. The VOB isn't available anymore for testing. Andreas or Tim, can you provide the file again (or test it) ?
if i could just remember which DVD that was... it's been some time ^^"
It was "DVD Title: NIGHTSFROMTHEALHAMBRAPAL". It still freezes at the beginning when clicking on 'Play concert' in the DVD menu.
-- 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-ugly/issues/1.