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 336387 - [mpegdemux] reffing null caps
[mpegdemux] reffing null caps
Product: GStreamer
Classification: Platform
Component: gst-plugins-ugly
git master
Other Linux
: Normal normal
: 0.10.3
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Reported: 2006-03-28 19:16 UTC by Thomas Vander Stichele
Modified: 2006-03-28 20:20 UTC
See Also:
GNOME target: ---
GNOME version: ---

Description Thomas Vander Stichele 2006-03-28 19:16:44 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.

Thread NaN (LWP 25367)

  • #0 __kernel_vsyscall
  • #1 raise
    from /lib/
  • #2 abort
    from /lib/
  • #3 g_logv
    from /usr/lib/
  • #4 g_log
    from /usr/lib/
  • #5 g_return_if_fail_warning
    from /usr/lib/
  • #6 gst_caps_ref
    at gstcaps.c line 354
  • #7 gst_mpeg_demux_send_subbuffer
    from /home/thomas/gst/0.10/gst-plugins-ugly/gst/mpegstream/.libs/
  • #8 gst_mpeg_demux_process_private
    from /home/thomas/gst/0.10/gst-plugins-ugly/gst/mpegstream/.libs/
  • #9 gst_mpeg_demux_parse_pes
    from /home/thomas/gst/0.10/gst-plugins-ugly/gst/mpegstream/.libs/
  • #10 gst_mpeg_parse_chain
    from /home/thomas/gst/0.10/gst-plugins-ugly/gst/mpegstream/.libs/
  • #11 gst_pad_chain
    at gstpad.c line 3189
  • #12 gst_pad_push
    at gstpad.c line 3288
  • #13 gst_mpeg_parse_send_buffer
    from /home/thomas/gst/0.10/gst-plugins-ugly/gst/mpegstream/.libs/
  • #14 gst_mpeg_parse_chain
    from /home/thomas/gst/0.10/gst-plugins-ugly/gst/mpegstream/.libs/
  • #15 gst_pad_chain
    at gstpad.c line 3189
  • #16 gst_pad_push
    at gstpad.c line 3288
  • #17 gst_base_src_loop
    at gstbasesrc.c line 1381
  • #18 gst_task_func
    at gsttask.c line 193
  • #19 g_thread_pool_push
    from /usr/lib/
  • #20 g_thread_create_full
    from /usr/lib/
  • #21 start_thread
    from /lib/
  • #22 clone
    from /lib/

This happens for all .vob files in the media/ dir as well.
Comment 1 Thomas Vander Stichele 2006-03-28 19:17:51 UTC
this is a regression from the previous release.  Seems lots of mpeg code was touched, but shouldn't be too hard to fish out.
Comment 2 Tim-Philipp Müller 2006-03-28 20:01:29 UTC
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).

Comment 3 Tim-Philipp Müller 2006-03-28 20:12:49 UTC
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).
Comment 4 Tim-Philipp Müller 2006-03-28 20:20:37 UTC
 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.