GNOME Bugzilla – Bug 498715
GStreamer fails to decode MPEG1 Video RTP streams when gst-ffmpeg is installed
Last modified: 2007-11-21 13:53:42 UTC
Please describe the problem: If gst-ffmpeg is installed any gstreamer based player (eg. kmplayer with gst engine or totem) fails to decode mpeg1 video rtp streams from an rtsp session. Totem fails with this error: Internal GStreamer error: negotiation problem. On the console the following message can be read: gstffmpegdec.c(1981): gst_ffmpegdec_chain (): /play/decodebin1/ffdec_mpeg40: ffdec_mpeg4: input format was not set before data start If gst-ffmpeg is not installed, it works correctly. Steps to reproduce: 1. Install gst-ffmpeg 2. Try to play rtsp://live.polito.it/test/tc_mpeg1.mpg 3. Fails 4. Uninstall gst-ffmpeg 5. Try to play rtsp://live.polito.it/test/tc_mpeg1.mpg 6. Works Actual results: Expected results: Does this happen every time? Yes. Other information: I suppose it depends on the fact "video/mpeg" is mapped to MPEG1, MPEG2 and MPEG4 in ./ext/ffmpeg/gstffmpegcodecmap.c, but it should be mapped to MPEG1 and 2 only.
I've worked a bit on it and found the bug. The problem is located in gst-plugins-good, gst/rtp/gstrtpmpvdepay.c. mpegversion is not defined in the static caps. Changing: GST_STATIC_CAPS ("video/mpeg, systemstream = (boolean) FALSE") to: GST_STATIC_CAPS ("video/mpeg, mpegversion = (int) 2, systemstream = (boolean) FALSE") Solves the problem.
yeah, was already fixed in CVS here: http://webcvs.freedesktop.org/gstreamer/gst-plugins-good/gst/rtp/gstrtpmpvdepay.c?r1=1.4&r2=1.5