[Bug 693581] New: 0.10 and 1.0 h264parse/rtph264depay segfault

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Mon Feb 11 03:52:36 PST 2013


https://bugzilla.gnome.org/show_bug.cgi?id=693581
  GStreamer | gst-plugins-good | unspecified

           Summary: 0.10 and 1.0 h264parse/rtph264depay segfault
    Classification: Platform
           Product: GStreamer
           Version: unspecified
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gst-plugins-good
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: lists at svrinformatica.it
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


this pipeline segfault:

gst-launch -e -v -m -t rtspsrc location=rtsp://... ! rtph264depay !
video/x-h264,stream-format=avc,alignment=au ! h264parse ! ffdec_h264 !
xvimagesink sync=false

here is the trace for 0.10

[Switching to Thread 0x7fffe99b1700 (LWP 8186)]
0x00007ffff75c7fbb in g_static_rec_mutex_get_rec_mutex_impl (
    mutex=<optimized out>)
    at /build/buildd/glib2.0-2.32.3/./glib/deprecated/gthread-deprecated.c:676
676    /build/buildd/glib2.0-2.32.3/./glib/deprecated/gthread-deprecated.c:
File o directory non esistente.
(gdb) bt
#0  0x00007ffff75c7fbb in g_static_rec_mutex_get_rec_mutex_impl (
    mutex=<optimized out>)
    at /build/buildd/glib2.0-2.32.3/./glib/deprecated/gthread-deprecated.c:676
#1  0x00007ffff75c82d9 in g_static_rec_mutex_lock (mutex=0xf8)
    at /build/buildd/glib2.0-2.32.3/./glib/deprecated/gthread-deprecated.c:711
#2  0x00007ffff37e78e4 in gst_video_decoder_get_frame (decoder=0x0, 
    frame_number=0) at gstvideodecoder.c:2675
#3  0x00007ffff26e6349 in gst_ffmpegviddec_get_buffer (context=0x81c400, 
    picture=0x7fffc800b2c0) at gstffmpegviddec.c:630
#4  0x00007ffff2a0c5f4 in alloc_frame_buffer (pic=0x7fffc800b2c0, 
    s=0x7ffff7f01040) at libavcodec/mpegvideo.c:262
#5  ff_alloc_picture (s=0x7ffff7f01040, pic=0x7fffc800b2c0, 
    shared=<optimized out>) at libavcodec/mpegvideo.c:314
#6  0x00007ffff2a0e35e in MPV_frame_start (s=0x7ffff7f01040, avctx=0x81c400)
    at libavcodec/mpegvideo.c:1221
#7  0x00007ffff28daa8c in ff_h264_frame_start (h=<optimized out>)
    at libavcodec/h264.c:1284
#8  0x00007ffff291e6d2 in decode_slice_header (h=0x7ffff7f01040, 
    h0=<optimized out>) at libavcodec/h264.c:2960
#9  0x00007ffff291f506 in decode_nal_units (h=0x7ffff7f01040, 
    buf=0x7fffc80084a6 "\b\277gd", buf_size=2241) at libavcodec/h264.c:3862
#10 0x00007ffff2920153 in ff_h264_decode_extradata (h=0x7ffff7f01040)
    at libavcodec/h264.c:1070
---Type <return> to continue, or q <return> to quit---
#11 0x00007ffff26b16cd in ff_h264_decode_init (avctx=0x81c400)
    at libavcodec/h264.c:1139
#12 0x00007ffff2ac5ebe in avcodec_open2 (avctx=0x81c400, 
    codec=<optimized out>, options=0x0) at libavcodec/utils.c:816
#13 0x00007ffff26d4753 in gst_ffmpeg_avcodec_open (avctx=0x81c400, 
    codec=0x7ffff2fca000) at gstffmpeg.c:52
#14 0x00007ffff26e82c0 in gst_ffmpegviddec_open (ffmpegdec=0x819a10)
    at gstffmpegviddec.c:375
#15 gst_ffmpegviddec_set_format (decoder=0x819a10, state=0x7fffc8009090)
    at gstffmpegviddec.c:524
#16 0x00007ffff37e4755 in gst_video_decoder_sink_setcaps (pad=<optimized out>, 
    caps=<optimized out>) at gstvideodecoder.c:723
#17 0x00007ffff7b499cf in gst_pad_set_caps (pad=0x7d26c0, caps=0x7fffc8003c00)
    at gstpad.c:2730
#18 0x00007ffff7b4b3a0 in gst_pad_chain_data_unchecked (cache=0x7fffe99b05f0, 
    data=0x7fffc80058b0, is_buffer=1, pad=0x7d26c0) at gstpad.c:4252
#19 gst_pad_push_data (pad=<optimized out>, is_buffer=1, data=0x7fffc80058b0, 
    cache=<optimized out>) at gstpad.c:4511
#20 0x00007ffff7b4ee86 in gst_pad_push (pad=0x7d2540, buffer=0x7fffc80058b0)
    at gstpad.c:4735
#21 0x00007ffff4f9f88d in gst_base_parse_push_frame (parse=0x7d6cc0, 
    frame=0x7d7a68) at gstbaseparse.c:1967
#22 0x00007ffff4fa0e02 in gst_base_parse_chain (pad=<optimized out>, 
---Type <return> to continue, or q <return> to quit---
    buffer=0x7fffc80058b0) at gstbaseparse.c:2303
#23 0x00007ffff3c3069e in gst_h264_parse_chain (pad=0x7d23c0, 
    buffer=0x7fffc80058b0) at gsth264parse.c:1948
#24 0x00007ffff7b4b475 in gst_pad_chain_data_unchecked (cache=0x7fffe99b08d0, 
    data=0x7fffc80058b0, is_buffer=<optimized out>, pad=0x7d23c0)
    at gstpad.c:4276
#25 gst_pad_push_data (pad=<optimized out>, is_buffer=<optimized out>, 
    data=0x7fffc80058b0, cache=<optimized out>) at gstpad.c:4511
#26 0x00007ffff7b4ee86 in gst_pad_push (pad=0x7d2cc0, buffer=0x7fffc80058b0)
    at gstpad.c:4735
#27 0x00007ffff4fbd42d in gst_base_transform_chain (pad=<optimized out>, 
    buffer=<optimized out>) at gstbasetransform.c:2687
#28 0x00007ffff7b4b475 in gst_pad_chain_data_unchecked (cache=0x7fffe99b09f0, 
    data=0x7fffc80058b0, is_buffer=<optimized out>, pad=0x7d2b40)
    at gstpad.c:4276
#29 gst_pad_push_data (pad=<optimized out>, is_buffer=<optimized out>, 
    data=0x7fffc80058b0, cache=<optimized out>) at gstpad.c:4511
#30 0x00007ffff7b4ee86 in gst_pad_push (pad=0x7d2240, buffer=0x7fffc80058b0)
    at gstpad.c:4735
#31 0x00007ffff56129c5 in gst_base_rtp_depayload_push_ts (filter=0x7d00f0, 
    timestamp=<optimized out>, out_buf=0x7fffc80058b0)
    at gstbasertpdepayload.c:610
#32 0x00007ffff5612e2b in gst_base_rtp_depayload_chain (pad=<optimized out>, 
---Type <return> to continue, or q <return> to quit---
    in=0x7fffdc003260) at gstbasertpdepayload.c:354
#33 0x00007ffff7b4ef9a in gst_pad_push (pad=0x7fffe40218c0, 
    buffer=0x7fffdc003260) at gstpad.c:4715
#34 0x00007ffff7b4ef9a in gst_pad_push (pad=0x7fffe4021710, 
    buffer=0x7fffdc003260) at gstpad.c:4715
#35 0x00007ffff7b4ef9a in gst_pad_push (pad=0x7fffdc00d330, 
    buffer=0x7fffdc003260) at gstpad.c:4715
#36 0x00007ffff7b4ef9a in gst_pad_push (pad=0x7fffe4029900, 
    buffer=0x7fffdc003260) at gstpad.c:4715
#37 0x00007fffea9c3dbd in gst_rtp_jitter_buffer_loop (
    jitterbuffer=0x7fffdc008080) at gstrtpjitterbuffer.c:1916
#38 0x00007ffff7b75adc in gst_task_func (task=0x83bd20) at gsttask.c:328
#39 0x00007ffff7616248 in g_thread_pool_thread_proxy (data=<optimized out>)
    at /build/buildd/glib2.0-2.32.3/./glib/gthreadpool.c:309
#40 0x00007ffff76159e5 in g_thread_proxy (data=0x7fffdc006c50)
    at /build/buildd/glib2.0-2.32.3/./glib/gthread.c:801
#41 0x00007ffff7396e9a in start_thread (arg=0x7fffe99b1700)
    at pthread_create.c:308
#42 0x00007ffff70c3cbd in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#43 0x0000000000000000 in ?? ()

while this one works fine:

gst-launch -e -v -m -t rtspsrc location=rtsp://... ! rtph264depay !
video/x-h264,stream-format=byte-stream,alignment=nal ! h264parse ! ffdec_h264 !
xvimagesink sync=false

the attached file is captured using this pipeline:

gst-launch -e -v -m -t rtspsrc location=rtsp://admin:4321@192.168.2.149:4524/5/
! gdppay  ! filesink location=/tmp/capture.gdp

you can reproduce the segfault with

gst-launch filesrc location=/tmp/capture.gdp ! gdpdepay ! rtph264depay !
video/x-h264,stream-format=avc,alignment=au ! h264parse ! ffdec_h264 !
xvimagesink

the segfault is reproducible in both 0.10 and 1.0 (changing ffdec_h264 with
avdec_h264)

-- 
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