[gstreamer-bugs] [Bug 612773] New: gst-ffmpeg aborts in ff_find_unused_picture

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Fri Mar 12 21:37:45 PST 2010


https://bugzilla.gnome.org/show_bug.cgi?id=612773
  GStreamer | gst-ffmpeg | 0.10.28

           Summary: gst-ffmpeg aborts in ff_find_unused_picture
    Classification: Desktop
           Product: GStreamer
           Version: 0.10.28
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gst-ffmpeg
        AssignedTo: gstreamer-bugs at lists.sourceforge.net
        ReportedBy: gnome-bugzilla at lez.ath.cx
         QAContact: gstreamer-bugs at lists.sourceforge.net
      GNOME target: ---
     GNOME version: ---


Created an attachment (id=156046)
 --> (https://bugzilla.gnome.org/attachment.cgi?id=156046)
ffmpeg:5 messages from test run

everything built from git current as of the time of this post, and with
CFLAGS="-g" for toplevel projects, in addition to
--with-ffmpeg-extra-configure="--disable-optimizations" for gst-ffmpeg

log collected, and crash expressed by:
gst-launch --gst-debug="ffmpeg:5" --gst-debug-no-color playbin2
uri=file:`pwd`/\[gg\]_CANAAN_-_02_\[9D948DC4\].mkv video-sink="navseek
seek-offset=240 ! timeoverlay ! autovideosink" 2> 5.log && tail -n 1000 5.log >
spew.log

you seek once and wait at least 3 minutes for the abort, depending on the frame
you seek from it can take a decent amount of time. you can also just let it
play from the beginning for at least 6 minutes (it _will_ abort, it just has to
run through a bunch of frames, you cant seek right to the abort)

(file is easily located by name, and other videos in the series (aside from 01)
exhibit the same problems in different places, ask if you need pointers, __tim
on irc has it already)

tried with and without this patch from upstream
http://trac.perian.org/browser/trunk/Patches/ffmpeg-larger-internal-buffer.diff

it makes aborts happen after a longer time, but they still occur

backtrace for aborted thread:
Thread 3 (Thread 0x7ffff02bb910 (LWP 5611)):
#0  0x00007ffff685d4b5 in *__GI_raise (sig=<value optimized out>) at
../nptl/sysdeps/unix/sysv/linux/raise.c:64
#1  0x00007ffff6860f50 in *__GI_abort () at abort.c:92
#2  0x00007fffef0097c9 in ff_find_unused_picture (s=0xa9e490, shared=0) at
libavcodec/mpegvideo.c:849
#3  0x00007fffef009bbc in MPV_frame_start (s=0xa9e490, avctx=0x75c280) at
libavcodec/mpegvideo.c:910
#4  0x00007fffef07d932 in ff_h264_frame_start (h=0xa9e490) at
libavcodec/h264.c:891
#5  0x00007fffef081cf0 in decode_slice_header (h=0xa9e490, h0=0xa9e490) at
libavcodec/h264.c:1868
#6  0x00007fffef0845cd in decode_nal_units (h=0xa9e490, buf=0xdb5200 "",
buf_size=730) at libavcodec/h264.c:2537
#7  0x00007fffef085044 in decode_frame (avctx=0x75c280, data=0x75be70,
data_size=0x7ffff02baa98, avpkt=0x7ffff02ba970) at libavcodec/h264.c:2749
#8  0x00007fffeef7454b in avcodec_decode_video2 (avctx=0x75c280,
picture=0x75be70, got_picture_ptr=0x7ffff02baa98, avpkt=0x7ffff02ba970) at
libavcodec/utils.c:586
#9  0x00007fffeef74486 in avcodec_decode_video (avctx=0x75c280,
picture=0x75be70, got_picture_ptr=0x7ffff02baa98, buf=0xdb5200 "",
buf_size=730) at libavcodec/utils.c:572
#10 0x00007fffeeebe8ba in gst_ffmpegdec_video_frame (ffmpegdec=0x759c00,
data=0xdb5200 "", size=730, in_timestamp=296338000000, in_duration=41708332,
in_offset=-1, outbuf=0x7ffff02bab68, ret=0x7ffff02bac8c)
    at gstffmpegdec.c:1728
#11 0x00007fffeeec194f in gst_ffmpegdec_frame (ffmpegdec=0x759c00,
data=0xdb5200 "", size=730, got_data=0x7ffff02bac90, in_timestamp=296338000000,
in_duration=41708332, in_offset=-1, ret=0x7ffff02bac8c)
    at gstffmpegdec.c:2205
#12 0x00007fffeeec3892 in gst_ffmpegdec_chain (pad=0x8b0800, inbuf=0xdd7120) at
gstffmpegdec.c:2620
#13 0x00007ffff7b4b7bc in gst_pad_chain_data_unchecked (pad=0x8b0800,
is_buffer=1, data=0xdd7120) at gstpad.c:4130
#14 0x00007ffff7b4c475 in gst_pad_push_data (pad=0x8b0680, is_buffer=1,
data=0xdd7120) at gstpad.c:4359
#15 0x00007ffff7b4c9e2 in gst_pad_push (pad=0x8b0680, buffer=0xdd7120) at
gstpad.c:4463
#16 0x00007ffff2099350 in gst_single_queue_push_one (mq=0x8c8000, sq=0x8c4e30,
object=0xdd7120) at gstmultiqueue.c:919
#17 0x00007ffff2099a9a in gst_multi_queue_loop (pad=0x8b0680) at
gstmultiqueue.c:1101
#18 0x00007ffff7b7b164 in gst_task_func (task=0x8b3690) at gsttask.c:236
#19 0x00007ffff7b7c4a1 in default_func (tdata=0x8b2c00, pool=0x61e800) at
gsttaskpool.c:68
#20 0x00007ffff7227142 in g_thread_pool_thread_proxy (data=<value optimized
out>) at /build/buildd/glib2.0-2.22.3/glib/gthreadpool.c:265
#21 0x00007ffff7225b44 in g_thread_create_proxy (data=0x8c7420) at
/build/buildd/glib2.0-2.22.3/glib/gthread.c:635
#22 0x00007ffff6b9fa04 in start_thread (arg=<value optimized out>) at
pthread_create.c:300
#23 0x00007ffff690980d in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#24 0x0000000000000000 in ?? ()

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.




More information about the Gstreamer-bugs mailing list