GNOME Bugzilla – Bug 359545
ffdemux_mpegts broken
Last modified: 2006-10-04 13:43:02 UTC
I'm trying to play an MPEG2 transport stream using the following pipeline: gst-launch-0.10 filesrc location=file.mpeg ! ffdemux_mpegts ! mpeg2dec ! xvimagesink It fails with the following output: Setting pipeline to PAUSED ... Pipeline is PREROLLING ... (gst-launch-0.10:7056): GStreamer-CRITICAL **: gst_pad_push_event: assertion `GST_IS_PAD (pad)' failed /pipeline0/mpeg2dec0.sink: caps = video/mpeg, width=(int)704, height=(int)576, framerate=(fraction)25/1, mpegversion=(int)2, systemstream=(boolean)false, codec_data=(buffer)000001b32c024023186a238110111112121213131313141414141415151515151516161616161616171717171717171718181819181818191a1a1a1a191b1b1b1b1b1c1c1c1c1e1e1e1f1f21000001b5148200010000 /pipeline0/mpeg2dec0.src: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)704, height=(int)576, pixel-aspect-ratio=(fraction)12/11, framerate=(fraction)25/1 Fluendo's flutsdemux also fails to work. MPlayer and Xine have no problem playing the same file.
Here is a testcase: http://www.david-web.co.uk/download/file.mpeg
flutsdemux SVN handles the stream fine now: * src/gstmpegtsdemux.c: (gst_fluts_demux_send_new_segment), (gst_fluts_stream_parse_pmt): Make sure we create a PCR stream so that we can use it to store the base_PCR in.
* ext/ffmpeg/gstffmpegdemux.c: (gst_ffmpegdemux_averror), (gst_ffmpegdemux_init), (gst_ffmpegdemux_close), (gst_ffmpegdemux_push_event), (gst_ffmpegdemux_send_event), (gst_ffmpegdemux_src_query), (gst_ffmpegdemux_open), (gst_ffmpegdemux_loop), (gst_ffmpegdemux_sink_activate), (gst_ffmpegdemux_sink_activate_push), (gst_ffmpegdemux_sink_activate_pull): Don't try to use or remove non-existing pads. Use _scale some more. Don't try to do maths with invalid timestamps. Fixes #359545. Prepare for push based scheduling.