After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 359545 - ffdemux_mpegts broken
ffdemux_mpegts broken
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-libav
0.10.1
Other Linux
: Normal normal
: 0.10.2
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2006-10-04 10:24 UTC by David Johnson
Modified: 2006-10-04 13:43 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description David Johnson 2006-10-04 10:24:31 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.
Comment 1 David Johnson 2006-10-04 10:30:27 UTC
Here is a testcase:
http://www.david-web.co.uk/download/file.mpeg
Comment 2 Wim Taymans 2006-10-04 11:27:51 UTC
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.
Comment 3 Wim Taymans 2006-10-04 13:43:02 UTC
        * 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.