[gstreamer-bugs] [Bug 562950] New: ffdec_mpeg4 segfaults with direct rendering enabled

GStreamer (bugzilla.gnome.org) bugzilla-daemon at bugzilla.gnome.org
Tue Dec 2 01:50:40 PST 2008


If you have any questions why you received this email, please see the text at
the end of this email. Replies to this email are NOT read, please see the text
at the end of this email. You can add comments to this bug at:
  http://bugzilla.gnome.org/show_bug.cgi?id=562950

  GStreamer | gst-ffmpeg | Ver: HEAD CVS
           Summary: ffdec_mpeg4 segfaults with direct rendering enabled
           Product: GStreamer
           Version: HEAD CVS
          Platform: Other
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gst-ffmpeg
        AssignedTo: gstreamer-bugs at lists.sourceforge.net
        ReportedBy: alessandro.d at gmail.com
         QAContact: gstreamer-bugs at lists.sourceforge.net
     GNOME version: Unspecified
   GNOME milestone: Unspecified


gdb --args gst-launch-0.10 filesrc location=file.avi ! avidemux ! identity
error-after=3 ! ffdec_mpeg4 ! fakesink
GNU gdb 6.8-debian
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "powerpc-linux-gnu"...
(gdb) r
Starting program:
/home/alessandro/src/gstreamer/head/install/bin/gst-launch-0.10 filesrc
location=file.avi \! avidemux \! identity error-after=3 \! ffdec_mpeg4 \!
fakesink
[Thread debugging using libthread_db enabled]
[New Thread 0x48023310 (LWP 6456)]
Setting pipeline to PAUSED ...
[New Thread 0x489564d0 (LWP 6460)]
Pipeline is PREROLLING ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
ERROR: from element /GstPipeline:pipeline0/GstIdentity:identity0: Failed after
iterations as requested.
Additional debug info:
gstidentity.c(549): gst_identity_transform_ip ():
/GstPipeline:pipeline0/GstIdentity:identity0
Execution ended after 1169000 ns.
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
*** glibc detected ***
/home/alessandro/src/gstreamer/head/install/bin/gst-launch-0.10: double free or
corruption (out): 0x489d3008 ***
======= Backtrace: =========
/lib/libc.so.6[0xfa2fba8]
/lib/libc.so.6(cfree+0xcc)[0xfa31b5c]
/usr/lib/libglib-2.0.so.0(g_free+0x58)[0xfc00448]
/home/alessandro/src/gstreamer/head/install/lib/libgstreamer-0.10.so.0[0xff2132c]
/home/alessandro/src/gstreamer/head/install/lib/libgstreamer-0.10.so.0[0xff53a70]
/home/alessandro/src/gstreamer/head/install/lib/libgstreamer-0.10.so.0(gst_mini_object_unref+0x19c)[0xff53cc4]
/home/alessandro/src/gstreamer/head/install/lib/gstreamer-0.10/libgstffmpeg.so[0xeea8f80]
/home/alessandro/src/gstreamer/head/install/lib/gstreamer-0.10/libgstffmpeg.so[0xeffd564]
/home/alessandro/src/gstreamer/head/install/lib/gstreamer-0.10/libgstffmpeg.so[0xf031740]
/home/alessandro/src/gstreamer/head/install/lib/gstreamer-0.10/libgstffmpeg.so[0xef45de0]
/home/alessandro/src/gstreamer/head/install/lib/gstreamer-0.10/libgstffmpeg.so[0xee99490]
/home/alessandro/src/gstreamer/head/install/lib/gstreamer-0.10/libgstffmpeg.so[0xeea77d8]
/home/alessandro/src/gstreamer/head/install/lib/gstreamer-0.10/libgstffmpeg.so[0xeeb1630]
/home/alessandro/src/gstreamer/head/install/lib/libgstreamer-0.10.so.0(gst_element_change_state+0x90)[0xff3a594]
/home/alessandro/src/gstreamer/head/install/lib/libgstreamer-0.10.so.0[0xff3a3c8]
/home/alessandro/src/gstreamer/head/install/lib/libgstreamer-0.10.so.0(gst_element_set_state+0xfc)[0xff39f34]
/home/alessandro/src/gstreamer/head/install/lib/libgstreamer-0.10.so.0[0xff1adac]
/home/alessandro/src/gstreamer/head/install/lib/libgstreamer-0.10.so.0[0xff1cab4]
/home/alessandro/src/gstreamer/head/install/lib/libgstreamer-0.10.so.0[0xff67960]
/home/alessandro/src/gstreamer/head/install/lib/libgstreamer-0.10.so.0(gst_element_change_state+0x90)[0xff3a594]
/home/alessandro/src/gstreamer/head/install/lib/libgstreamer-0.10.so.0[0xff3a3c8]
/home/alessandro/src/gstreamer/head/install/lib/libgstreamer-0.10.so.0(gst_element_set_state+0xfc)[0xff39f34]
/home/alessandro/src/gstreamer/head/install/bin/gst-launch-0.10[0x1000540c]
/lib/libc.so.6[0xf9cdb24]
/lib/libc.so.6[0xf9cdce0]
======= Memory map: ========
00100000-00103000 r-xp 00100000 00:00 0          [vdso]
0ee3f000-0ee51000 r-xp 00000000 03:04 3014833    /lib/libbz2.so.1.0.4
0ee51000-0ee60000 ---p 00012000 03:04 3014833    /lib/libbz2.so.1.0.4
0ee60000-0ee61000 r--p 00011000 03:04 3014833    /lib/libbz2.so.1.0.4
0ee61000-0ee62000 rw-p 00012000 03:04 3014833    /lib/libbz2.so.1.0.4
0ee72000-0f2f8000 r-xp 00000000 03:04 5017572   
/home/alessandro/src/gstreamer/head/install/lib/gstreamer-0.10/libgstffmpeg.so
0f2f8000-0f307000 ---p 00486000 03:04 5017572   
/home/alessandro/src/gstreamer/head/install/lib/gstreamer-0.10/libgstffmpeg.so
0f307000-0f316000 r--p 00485000 03:04 5017572   
/home/alessandro/src/gstreamer/head/install/lib/gstreamer-0.10/libgstffmpeg.so
0f316000-0f320000 rw-p 00494000 03:04 5017572   
/home/alessandro/src/gstreamer/head/install/lib/gstreamer-0.10/libgstffmpeg.so
0f320000-0f5c4000 rw-p 0f320000 00:00 0 
0f5d4000-0f5e4000 r-xp 00000000 03:04 5017544   
/home/alessandro/src/gstreamer/head/install/lib/libgsttag-0.10.so.0.15.0
0f5e4000-0f5f3000 ---p 00010000 03:04 5017544   
/home/alessandro/src/gstreamer/head/install/lib/libgsttag-0.10.so.0.15.0
0f5f3000-0f5f4000 r--p 0000f000 03:04 5017544   
/home/alessandro/src/gstreamer/head/install/lib/libgsttag-0.10.so.0.15.0
0f5f4000-0f5f5000 rw-p 00010000 03:04 5017544   
/home/alessandro/src/gstreamer/head/install/lib/libgsttag-0.10.so.0.15.0
0f605000-0f612000 r-xp 00000000 03:04 5016945   
/home/alessandro/src/gstreamer/head/install/lib/libgstinterfaces-0.10.so.0.15.0
0f612000-0f622000 ---p 000
Program received signal SIGABRT, Aborted.
[Switching to Thread 0x48023310 (LWP 6456)]
0x0f9e636c in raise () from /lib/libc.so.6
(gdb) bt
#0  0x0f9e636c in raise () from /lib/libc.so.6
#1  0x0f9e8004 in abort () from /lib/libc.so.6
#2  0x0fa28034 in __libc_message () from /lib/libc.so.6
#3  0x0fa2fba8 in malloc_printerr () from /lib/libc.so.6
#4  0x0fa31b5c in free () from /lib/libc.so.6
#5  0x0fc00448 in g_free () from /usr/lib/libglib-2.0.so.0
#6  0x0ff2132c in gst_buffer_finalize (buffer=0x101ee4b8) at gstbuffer.c:190
#7  0x0ff53a70 in gst_mini_object_free (mini_object=0x101ee4b8)
    at gstminiobject.c:320
#8  0x0ff53cc4 in gst_mini_object_unref (mini_object=0x101ee4b8)
    at gstminiobject.c:355
#9  0x0eea8f80 in gst_ffmpegdec_release_buffer (context=0x101e7870, 
    picture=0x1036c070) at gstffmpegdec.c:958
#10 0x0effd564 in MPV_common_end (s=0x10368120) at libavcodec/mpegvideo.c:257
#11 0x0f031740 in ff_h263_decode_end (avctx=<value optimized out>)
    at libavcodec/h263dec.c:126
#12 0x0ef45de0 in avcodec_close (avctx=<value optimized out>)
    at libavcodec/utils.c:989
#13 0x0ee99490 in gst_ffmpeg_avcodec_close (avctx=0x101e7870) at gstffmpeg.c:64
#14 0x0eea77d8 in gst_ffmpegdec_close (ffmpegdec=0x101e8158)
    at gstffmpegdec.c:498
#15 0x0eeb1630 in gst_ffmpegdec_change_state (element=0x101e8158, 
    transition=GST_STATE_CHANGE_PAUSED_TO_READY) at gstffmpegdec.c:2410
---Type <return> to continue, or q <return> to quit---
#16 0x0ff3a594 in gst_element_change_state (element=0x101e8158, 
    transition=GST_STATE_CHANGE_PAUSED_TO_READY) at gstelement.c:2427
#17 0x0ff3a3c8 in gst_element_set_state_func (element=0x101e8158, 
    state=GST_STATE_READY) at gstelement.c:2377
#18 0x0ff39f34 in gst_element_set_state (element=0x101e8158, 
    state=GST_STATE_READY) at gstelement.c:2280
#19 0x0ff1adac in gst_bin_element_set_state (bin=0x101ec068, 
    element=0x101e8158, base_time=1228210682172118000, 
    current=GST_STATE_PAUSED, next=GST_STATE_READY) at gstbin.c:2018
#20 0x0ff1cab4 in gst_bin_change_state_func (element=0x101ec068, 
    transition=GST_STATE_CHANGE_PAUSED_TO_READY) at gstbin.c:2304
#21 0x0ff67960 in gst_pipeline_change_state (element=0x101ec068, 
    transition=GST_STATE_CHANGE_PAUSED_TO_READY) at gstpipeline.c:465
#22 0x0ff3a594 in gst_element_change_state (element=0x101ec068, 
    transition=GST_STATE_CHANGE_PAUSED_TO_READY) at gstelement.c:2427
#23 0x0ff3a3c8 in gst_element_set_state_func (element=0x101ec068, 
    state=GST_STATE_READY) at gstelement.c:2377
#24 0x0ff39f34 in gst_element_set_state (element=0x101ec068, 
    state=GST_STATE_READY) at gstelement.c:2280
#25 0x1000540c in main (argc=12, argv=0xbfe50f24) at gst-launch.c:799
(gdb) 

I tried to track down the problem a bit. With identity error-after=2 it
doesn't segfault. Overriding g_try_malloc and g_free with LD_PRELOAD
and breaking at gst_mini_object_unref and gst_buffer_finalize I can see
that the sequence of calls in gstreamer is correct.


-- 
See http://bugzilla.gnome.org/page.cgi?id=email.html for more info about why you received
this email, why you can't respond via email, how to stop receiving
emails (or reduce the number you receive), and how to contact someone
if you are having problems with the system.

You can add comments to this bug at http://bugzilla.gnome.org/show_bug.cgi?id=562950.




More information about the gstreamer-bugs mailing list