[gst-devel] mplex issue

Mark Nauwelaerts manauw at skynet.be
Sun Jan 3 18:48:21 CET 2010


Charles-Henri d'Adhémar wrote:
> Hello All !
> 
> I am starting to play with gstreamer as a replacement for many tools I
> used for a while.
> As my first post on this list I would like to thank and congratulate
> you all for this amazing software ! I hope this is the right place for
> asking end-user/developper questions ...
> 
> I have an issue with mplex while trying to extract a video and audio
> from a DVD and put them into a single mpeg file, without any
> transcoding. Here is the gst-launch pipeline I use :
> 
> gst-launch -v dvdreadsrc ! dvddemux name=demuxer demuxer.current_audio
> ! queue ! mplex name=muxer ! filesink location=test.mpeg
> demuxer.current_video ! queue ! muxer.
> 
> The pipeline is in preroll status but never goes to playing :
> 
> [chicha at grogro Bureau]$ LC_ALL=C gst-launch -v dvdreadsrc ! dvddemux
> name=demuxer demuxer.current_audio ! queue ! mplex name=muxer !
> filesink location=test.mpeg demuxer.current_video ! queue ! muxer.
> 
> (gst-launch-0.10:2396): GLib-WARNING **: g_set_prgname() called multiple times
> Setting pipeline to PAUSED ...
> libdvdread: Using libdvdcss version 1.2.10 for DVD access
> 
> libdvdread: Attempting to retrieve all CSS keys
> libdvdread: This can take a _long_ time, please be patient
> 
> libdvdread: Get key for /VIDEO_TS/VIDEO_TS.VOB at 0x00000157
> libdvdread: Elapsed time 0
> libdvdread: Get key for /VIDEO_TS/VTS_01_0.VOB at 0x000001d9
> libdvdread: Elapsed time 0
> libdvdread: Get key for /VIDEO_TS/VTS_01_1.VOB at 0x0001350e
> libdvdread: Elapsed time 0
> ......
> libdvdread: Found 12 VTS's
> libdvdread: Elapsed time 0
> Pipeline is PREROLLING ...
> /GstPipeline:pipeline0/GstDVDDemux:demuxer.GstPad:current_video: caps
> = video/mpeg, mpegversion=(int)2, systemstream=(boolean)false
> /GstPipeline:pipeline0/GstDVDDemux:demuxer.GstPad:current_audio: caps
> = audio/x-ac3
> /GstPipeline:pipeline0/GstDVDDemux:demuxer.GstPad:current_subpicture:
> caps = video/x-dvd-subpicture
> /GstPipeline:pipeline0/GstDVDDemux:demuxer.GstPad:sink: caps =
> video/mpeg, mpegversion=(int)2, systemstream=(boolean)true
> /GstPipeline:pipeline0/GstQueue:queue1.GstPad:sink: caps = video/mpeg,
> mpegversion=(int)2, systemstream=(boolean)false
> /GstPipeline:pipeline0/GstQueue:queue1.GstPad:src: caps = video/mpeg,
> mpegversion=(int)2, systemstream=(boolean)false
> /GstPipeline:pipeline0/GstMplex:muxer.GstPad:src: caps = video/mpeg,
> systemstream=(boolean)true
> /GstPipeline:pipeline0/GstMplex:muxer.GstPad:video_0: caps =
> video/mpeg, mpegversion=(int)2, systemstream=(boolean)false
> /GstPipeline:pipeline0/GstQueue:queue0.GstPad:sink: caps = audio/x-ac3
> /GstPipeline:pipeline0/GstQueue:queue0.GstPad:src: caps = audio/x-ac3
> /GstPipeline:pipeline0/GstMplex:muxer.GstPad:audio_0: caps = audio/x-ac3
> 
> What I do not understand is that when I extract just the video or just
> the audio it works. Also playing the dvd sound + video to a pulsesink
> + xvimagesink works like a charm.
> 
> I am sure I am missing something, but what ?
> Thank you very much for your help !

IIRC, the mplex backend library performs some moderately large initial (audio?) 
buffering, which might cause a deadlock.  Have you already tried setting some 
larger limits on the queue's (e.g. queue max-size-buffers=0 max-size-bytes=0 
max-size-time=4000000000).

There is a more or less cryptic comment regarding this in the mplex element 
documentation.

Mark.




More information about the gstreamer-devel mailing list