GNOME Bugzilla – Bug 336387
[mpegdemux] reffing null caps
Last modified: 2006-03-28 20:20:37 UTC
(gdb) r --gst-fatal-warnings filesrc location=/home/thomas/gst/media/large/bullet.vob ! mpegparse ! mpegdemux ! fakesink Starting program: /home/thomas/gst/head/gstreamer/tools/.libs/gst-launch-0.10 --gst-fatal-warnings filesrc location=/home/thomas/gst/media/large/bullet.vob ! mpegparse ! mpegdemux ! fakesink Reading symbols from shared object read from target memory...done. Loaded system supplied DSO at 0xa77000 [Thread debugging using libthread_db enabled] [New Thread -1208551760 (LWP 25364)] Setting pipeline to PAUSED ... [New Thread -1214846048 (LWP 25367)] Pipeline is PREROLLING ... GStreamer-CRITICAL **: gst_caps_ref: assertion `caps != NULL' failed aborting... Program received signal SIGABRT, Aborted.
+ Trace 67303
Thread NaN (LWP 25367)
This happens for all .vob files in the media/ dir as well.
this is a regression from the previous release. Seems lots of mpeg code was touched, but shouldn't be too hard to fish out.
The line in gstmpegdemux.c 927 GST_BUFFER_CAPS (outbuf) = gst_caps_ref (outstream->caps); was introduced as part of the patch in bug #326598. It's unrelated and doesn't make much sense either (as there is already a gst_buffer_set_caps() call two lines above), so it can just be removed. What still needs fixing though is that outstream->caps is NULL in the first place though (which isn't caught when gst_buffer_set_caps() is used).
Actually, those streams in questions are mpeg private streams - so I guess they aren't supposed to have caps and things don't need fixing after all (besides the removal of that line).
2006-03-28 Tim-Philipp Müller <tim at centricular dot net> * gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_send_subbuffer): Don't ref NULL caps (private streams have NULL caps) (#336387); also, no need to set caps on the same buffer twice.