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 102563 - `GST_DATA_REFCOUNT_VALUE (data) > 0' failed
`GST_DATA_REFCOUNT_VALUE (data) > 0' failed
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins
git master
Other other
: Normal normal
: 0.4.0
Assigned To: Wim Taymans
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2003-01-05 09:09 UTC by Joshua N Pritikin
Modified: 2004-12-22 21:47 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Joshua N Pritikin 2003-01-05 09:09:04 UTC
This is easy to reproduce.

joshua@emit:~/gst/gst-plugins/examples/indexing$ ./indexmpeg -q 1
/local/aleader/original/AlienSong.mpg
INFO ( 2830: 0) Initializing GStreamer Core Library version 0.5.0.1
INFO ( 2830: 0) CPU features: (0081813f) MMX
registry: loaded user_registry in 0.226414 seconds
          (/home/joshua/.gstreamer/registry.xml)
registry: loaded global_registry in 0.031504 seconds
          (/home/joshua/gst/gstreamer/registry.xml)
/pipeline/src.src: active = TRUE
/pipeline/demux.sink: active = TRUE
indexing /local/aleader/original/AlienSong.mpg...
/pipeline/demux: streaminfo = (GstCaps *) { application/x-gst-streaminfo;
mpegversion=(int) 1; bitrate=(int) 600000 }
/pipeline/src.src: caps = (GstCaps *) { video/mpeg; mpegversion=(int) 1;
systemstream=(boolean) TRUE; parsed=(boolean) TRUE }
/pipeline/demux.sink: caps = (GstCaps *) { video/mpeg; mpegversion=(int) 1;
systemstream=(boolean) TRUE; parsed=(boolean) TRUE }
/pipeline/src.src: active = FALSE
/pipeline/demux.sink: active = FALSE
/pipeline/demux.video_00: caps = (GstCaps *) { video/mpeg;
mpegversion=(int) 1; systemstream=(boolean) FALSE }
/pipeline/src.src: active = TRUE
/pipeline/demux.sink: active = TRUE
/pipeline/demux.audio_00: active = TRUE
/pipeline/demux.video_00: active = TRUE
/pipeline/demux.video_00: caps = (GstCaps *) { video/mpeg;
mpegversion=(int) 1; systemstream=(boolean) FALSE }
/pipeline/video_bin/video_decoder.sink: caps = (GstCaps *) { video/mpeg;
mpegversion=(int) 1; systemstream=(boolean) FALSE }
/pipeline/video_bin/video_decoder.sink: active = TRUE
/pipeline/video_bin/video_decoder.src: active = TRUE
/pipeline/video_bin/video_decoder.user_data: active = TRUE
/pipeline/video_bin/video_decoder.src: caps = (GstCaps *) { video/raw;
format=(fourcc) 'I420'; width=(int) 320; height=(int) 240;
pixel_width=(int) 1; pixel_height=(int) 1 }
/pipeline/video_bin/video_decoder: streaminfo = (GstCaps *) {
application/x-gst-streaminfo; bitrate=(int) 480000; framerate=(float)
24.000000 }
/pipeline/src.src: active = FALSE
/pipeline/video_bin/video_decoder.sink: active = FALSE
/pipeline/video_bin/video_decoder.src: active = FALSE
/pipeline/video_bin/video_decoder.user_data: active = FALSE
/pipeline/demux.sink: active = FALSE
/pipeline/demux.audio_00: active = FALSE
/pipeline/demux.video_00: active = FALSE

/pipeline/demux.video_00: caps = (GstCaps *) { video/mpeg;
mpegversion=(int) 1; systemstream=(boolean) FALSE }
/pipeline/video_bin/video_decoder.sink: caps = (GstCaps *) { video/mpeg;
mpegversion=(int) 1; systemstream=(boolean) FALSE }
seeking /local/aleader/original/AlienSong.mpg...
/pipeline/src.src: active = TRUE
/pipeline/demux.sink: active = TRUE
/pipeline/demux.audio_00: active = TRUE
/pipeline/demux.video_00: active = TRUE
/pipeline/video_bin/video_decoder.sink: active = TRUE
/pipeline/video_bin/video_decoder.src: active = TRUE
/pipeline/video_bin/video_decoder.user_data: active = TRUE
/pipeline/sink.sink: active = TRUE
/pipeline/demux: streaminfo = (GstCaps *) { application/x-gst-streaminfo;
mpegversion=(int) 1; bitrate=(int) 600000 }
/pipeline/src.src: caps = (GstCaps *) { video/mpeg; mpegversion=(int) 1;
systemstream=(boolean) TRUE; parsed=(boolean) TRUE }
/pipeline/demux.sink: caps = (GstCaps *) { video/mpeg; mpegversion=(int) 1;
systemstream=(boolean) TRUE; parsed=(boolean) TRUE }
/pipeline/sink.sink: caps = (GstCaps *) { video/raw; format=(fourcc)
'YV12'; width=(int) 320;
height=(int) 240; pixel_width=(int) 1; pixel_height=(int) 1 }
/pipeline/video_bin/video_decoder.src: caps = (GstCaps *) { video/raw;
format=(fourcc) 'YV12'; width=(int) 320; height=(int) 240;
pixel_width=(int) 1; pixel_height=(int) 1 }
/pipeline/video_bin/video_decoder: streaminfo = (GstCaps *) {
application/x-gst-streaminfo; bitrate=(int) 480000; framerate=(float)
24.000000 }

(process:2830): GStreamer-CRITICAL **: file gstdata.c: line 239
(gst_data_unref): assertion `GST_DATA_REFCOUNT_VALUE (data) > 0' failed
/pipeline/src.src: active = FALSE
/pipeline/sink.sink: active = FALSE
/pipeline/video_bin/video_decoder.sink: active = FALSE
/pipeline/video_bin/video_decoder.src: active = FALSE
/pipeline/video_bin/video_decoder.user_data: active = FALSE
/pipeline/demux.sink: active = FALSE
/pipeline/demux.audio_00: active = FALSE
/pipeline/demux.video_00: active = FALSE

i also did "b g_log" in gdb and got a stack trace:

Breakpoint 1, 0x404fdd8b in g_log () from /usr/lib/libglib-2.0.so.0
(gdb) where
  • #0 g_log
    from /usr/lib/libglib-2.0.so.0
  • #1 gst_data_unref
    from /home/joshua/gst/gstreamer/gst/.libs/libgstreamer-0.5.so.1
  • #2 gst_mpeg2dec_chain
    at gstmpeg2dec.c line 611
  • #3 gst_basic_scheduler_chain_wrapper
    at gstbasicscheduler.c line 335
  • #4 cothread_stub
    from /home/joshua/gst/gstreamer/gst/schedulers/.libs/libgstbasicomegascheduler.so
  • #5 makecontext
    from /lib/libc.so.6
  • #6 gst_basic_scheduler_chainhandler_proxy
    at gstbasicscheduler.c line 408
  • #7 ??
  • #8 gst_mpeg_parse_loop
    at gstmpegparse.c line 444
  • #9 gst_basic_scheduler_loopfunc_wrapper
    at gstbasicscheduler.c line 277
  • #2 gst_mpeg2dec_chain
    at gstmpeg2dec.c line 611
606               else {
607                 gst_pad_push (mpeg2dec->srcpad, outbuf);
608               }
609             }
610             if (info->discard_fbuf && info->discard_fbuf->id) {
611               gst_buffer_unref ((GstBuffer *)info->discard_fbuf->id);
612             }
613             break;
614           }
615           /* need more data */
Comment 1 Thomas Vander Stichele 2003-01-20 12:19:06 UTC
just tried this myself, same options, same file, no problems.

Is this still an issue ?
Comment 2 Wim Taymans 2003-01-20 19:19:12 UTC
This is some problem in libmpeg2, it hands out the same buffer twice. 
Comment 3 Christian Fredrik Kalager Schaller 2003-01-23 13:58:52 UTC
Mailed Walken about this bug.
Comment 4 Joshua N Pritikin 2003-07-22 06:05:19 UTC
This is a known issue on the libmpeg2 mailing list.  Can everyone
interested just send email again to the list, just to remind walken
that people are interested and waiting on a fix?
Comment 5 Ronald Bultje 2003-08-13 18:41:41 UTC
Do you still have this? I.e., is libmpeg2 fixed now?

And even if you do, can I please close this? It's not a GStreamer bug. ;).
Comment 6 Ronald Bultje 2004-01-03 23:41:25 UTC
libmpeg2 just released a new version. I think that means this one can
be closed.