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
Program received signal SIGABRT, Aborted.
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.