[Bug 747633] New: Segfault in decklinkvideosrc when video_frame=NULL

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Fri Apr 10 08:15:24 PDT 2015


https://bugzilla.gnome.org/show_bug.cgi?id=747633

            Bug ID: 747633
           Summary: Segfault in decklinkvideosrc when video_frame=NULL
    Classification: Platform
           Product: GStreamer
           Version: git master
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: Normal
         Component: gst-plugins-bad
          Assignee: gstreamer-bugs at lists.freedesktop.org
          Reporter: jaredsmith at jaredsmith.net
        QA Contact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---

Using the following pipleline gives me a segmentation fault when I attempt to
capture audio and video from a Blackmagic Intensity Pro card, using the latest
git master:

gst-launch-1.0 decklinkvideosrc mode=18 connection=2 buffer-size=60 !
videoconvert ! theoraenc ! queue ! m. decklinkaudiosrc connection=1 !
audioconvert ! vorbisenc ! queue ! m. oggmux name=m ! filesink
location='blah.ogg'

The segfault looks like:

Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstDecklinkInputClock
Redistribute latency...
Caught SIGSEGV
#0  0x00007f0cabe4cc8d in poll () at /lib64/libc.so.6
#1  0x00007f0cac791b34 in g_main_context_iterate.isra ()
#2  0x00007f0cac791ec2 in g_main_loop_run () at /lib64/libglib-2.0.so.0
#3  0x00007f0cad22eb79 in gst_bus_poll (bus=bus at entry=0x2488b00,
events=events at entry=GST_MESSAGE_ANY, timeout=18446744073709551615) at
gstbus.c:1149
#4  0x00000000004047c8 in event_loop (pipeline=0x2532080,
blocking=blocking at entry=1, do_progress=do_progress at entry=0,
target_state=target_state at entry=GST_STATE_PLAYING) at gst-launch.c:531
#5  0x0000000000403888 in main (argc=28, argv=0x7ffdb438a6a8)
Spinning.  Please run 'gdb gst-launch-1.0 13568' to continue debugging, Ctrl-C
to quit, or Ctrl-\ to dump core.

The full traceback looks like:

Thread 7 (Thread 0x7f0ca0755700 (LWP 13571)):
#0  0x00007f0cabe52939 in syscall () at /lib64/libc.so.6
#1  0x00007f0cac7d62fc in g_cond_wait () at /lib64/libglib-2.0.so.0
#2  0x00007f0ca48781d3 in gst_collect_pads_chain (pad=0x252a550,
parent=<optimized out>, buffer=0x7f0c880762e0) at gstcollectpads.c:2228
#3  0x00007f0cad258bb4 in gst_pad_push_data (data=0x7f0c880762e0, type=4112,
pad=0x252a550) at gstpad.c:3989
#4  0x00007f0cad258bb4 in gst_pad_push_data (pad=0x2508da0,
type=type at entry=4112, data=data at entry=0x7f0c880762e0) at gstpad.c:4222
#5  0x00007f0cad260376 in gst_pad_push (pad=<optimized out>,
buffer=buffer at entry=0x7f0c880762e0) at gstpad.c:4334
#6  0x00007f0ca366181f in gst_queue_loop (queue=0x251a140) at gstqueue.c:1337
#7  0x00007f0ca366181f in gst_queue_loop (pad=<optimized out>) at
gstqueue.c:1484
#8  0x00007f0cad287151 in gst_task_func (task=0x2551050) at gsttask.c:331
#9  0x00007f0cac7b8d68 in g_thread_pool_thread_proxy () at
/lib64/libglib-2.0.so.0
#10 0x00007f0cac7b83d5 in g_thread_proxy () at /lib64/libglib-2.0.so.0
#11 0x00007f0cac11f52a in start_thread () at /lib64/libpthread.so.0
#12 0x00007f0cabe5822d in clone () at /lib64/libc.so.6

Thread 6 (Thread 0x7f0c97f54700 (LWP 13572)):
#0  0x00007f0cabe52939 in syscall () at /lib64/libc.so.6
#1  0x00007f0cac7d62fc in g_cond_wait () at /lib64/libglib-2.0.so.0
#2  0x00007f0ca3660ee7 in gst_queue_loop (pad=<optimized out>) at
gstqueue.c:1472
#3  0x00007f0cad287151 in gst_task_func (task=0x2551170) at gsttask.c:331
#4  0x00007f0cac7b8d68 in g_thread_pool_thread_proxy () at
/lib64/libglib-2.0.so.0
#5  0x00007f0cac7b83d5 in g_thread_proxy () at /lib64/libglib-2.0.so.0
#6  0x00007f0cac11f52a in start_thread () at /lib64/libpthread.so.0
#7  0x00007f0cabe5822d in clone () at /lib64/libc.so.6

Thread 5 (Thread 0x7f0c9ff54700 (LWP 13573)):
#0  0x00007f0cabe52939 in syscall () at /lib64/libc.so.6
#1  0x00007f0cac7d62fc in g_cond_wait () at /lib64/libglib-2.0.so.0
#2  0x00007f0ca53c857c in gst_decklink_audio_src_create(GstPushSrc*,
GstBuffer**) (bsrc=0x251cef0, buffer=0x7f0c9ff53d20) at
gstdecklinkaudiosrc.cpp:472
#3  0x00007f0ca48652ba in gst_base_src_get_range (src=src at entry=0x251cef0,
offset=offset at entry=18446744073709551615, length=4096,
buf=buf at entry=0x7f0c9ff53df8)
    at gstbasesrc.c:2461
#4  0x00007f0ca48671a3 in gst_base_src_loop (pad=0x2508fd0) at
gstbasesrc.c:2737
#5  0x00007f0cad287151 in gst_task_func (task=0x25513b0) at gsttask.c:331
#6  0x00007f0cac7b8d68 in g_thread_pool_thread_proxy () at
/lib64/libglib-2.0.so.0
#7  0x00007f0cac7b83d5 in g_thread_proxy () at /lib64/libglib-2.0.so.0
#8  0x00007f0cac11f52a in start_thread () at /lib64/libpthread.so.0
#9  0x00007f0cabe5822d in clone () at /lib64/libc.so.6

Thread 4 (Thread 0x7f0c9f753700 (LWP 13574)):
#0  0x00007f0cabe52939 in syscall () at /lib64/libc.so.6
#1  0x00007f0cac7d62fc in g_cond_wait () at /lib64/libglib-2.0.so.0
#2  0x00007f0ca3661e65 in gst_queue_chain_buffer_or_list (parent=0x251a140,
obj=0x7f0c88108940, is_list=0, pad=<optimized out>) at gstqueue.c:1200
#3  0x00007f0cad258bb4 in gst_pad_push_data (data=0x7f0c88108940, type=4112,
pad=0x2508b70) at gstpad.c:3989
#4  0x00007f0cad258bb4 in gst_pad_push_data (pad=0x2508940,
type=type at entry=4112, data=data at entry=0x7f0c88108940) at gstpad.c:4222
#5  0x00007f0cad260376 in gst_pad_push (pad=<optimized out>,
buffer=buffer at entry=0x7f0c88108940) at gstpad.c:4334
#6  0x00007f0ca4add79f in gst_video_encoder_finish_frame (encoder=0x2513cd0,
frame=0x0) at gstvideoencoder.c:2017
#7  0x00007f0ca3efdaa8 in theora_push_packet (enc=enc at entry=0x2513cd0,
packet=0x7f0c9f7527a0, packet=0x7f0c9f7527a0) at gsttheoraenc.c:662
#8  0x00007f0ca3efe244 in theora_enc_handle_frame (benc=0x2513cd0,
frame=0x7f0c88108830) at gsttheoraenc.c:1015
#9  0x00007f0ca4adc3c7 in gst_video_encoder_chain (pad=<optimized out>,
parent=<optimized out>, buf=<optimized out>) at gstvideoencoder.c:1380
#10 0x00007f0cad258bb4 in gst_pad_push_data (data=0x7f0c880761d0, type=4112,
pad=0x2508710) at gstpad.c:3989
#11 0x00007f0cad258bb4 in gst_pad_push_data (pad=0x25084e0,
type=type at entry=4112, data=0x7f0c880761d0) at gstpad.c:4222
#12 0x00007f0cad260376 in gst_pad_push (pad=<optimized out>, buffer=<optimized
out>) at gstpad.c:4334
#13 0x00007f0ca486fca5 in gst_base_transform_chain (pad=<optimized out>,
parent=<optimized out>, buffer=<optimized out>) at gstbasetransform.c:2281
#14 0x00007f0cad258bb4 in gst_pad_push_data (data=0x7f0c88108940, type=4112,
pad=0x25082b0) at gstpad.c:3989
#15 0x00007f0cad258bb4 in gst_pad_push_data (pad=pad at entry=0x2508080,
type=type at entry=4112, data=0x7f0c88108940) at gstpad.c:4222
#16 0x00007f0cad260376 in gst_pad_push (pad=pad at entry=0x2508080,
buffer=<optimized out>) at gstpad.c:4334
#17 0x00007f0ca48673e5 in gst_base_src_loop (pad=0x2508080) at
gstbasesrc.c:2851
#18 0x00007f0cad287151 in gst_task_func (task=0x2551290) at gsttask.c:331
#19 0x00007f0cac7b8d68 in g_thread_pool_thread_proxy () at
/lib64/libglib-2.0.so.0
#20 0x00007f0cac7b83d5 in g_thread_proxy () at /lib64/libglib-2.0.so.0
#21 0x00007f0cac11f52a in start_thread () at /lib64/libpthread.so.0
#22 0x00007f0cabe5822d in clone () at /lib64/libc.so.6

Thread 3 (Thread 0x7f0c9ef52700 (LWP 13575)):
#0  0x00007f0cabe4cc8d in poll () at /lib64/libc.so.6
#1  0x00007f0cac791b34 in g_main_context_iterate.isra () at
/lib64/libglib-2.0.so.0
#2  0x00007f0cac791c4c in g_main_context_iteration () at
/lib64/libglib-2.0.so.0
#3  0x00007f0cac791c89 in glib_worker_main () at /lib64/libglib-2.0.so.0
#4  0x00007f0cac7b83d5 in g_thread_proxy () at /lib64/libglib-2.0.so.0
#5  0x00007f0cac11f52a in start_thread () at /lib64/libpthread.so.0
#6  0x00007f0cabe5822d in clone () at /lib64/libc.so.6

Thread 2 (Thread 0x7f0c7f4fb700 (LWP 13576)):
#0  0x00007f0cac1278fd in nanosleep () at /lib64/libpthread.so.0
#1  0x00007f0cac7b9a08 in g_usleep () at /lib64/libglib-2.0.so.0
#2  0x0000000000403efa in fault_handler_sighandler () at gst-launch.c:112
#3  0x0000000000403efa in fault_handler_sighandler (signum=11) at
gst-launch.c:93
#4  0x00007f0cac1280d0 in <signal handler called> () at /lib64/libpthread.so.0
#5  0x00007f0ca53c1092 in
GStreamerDecklinkInputCallback::VideoInputFrameArrived(IDeckLinkVideoInputFrame*,
IDeckLinkAudioInputPacket*) (this=0x23d97e0, video_frame=0x0,
audio_packet=0x7f0c7800a140) at gstdecklink.cpp:489
#6  0x00007f0ca1de116f in CDeckLinkInput::inputFrameArrivalCallack() () at
/lib64/libDeckLinkAPI.so
#7  0x00007f0ca1dc137d in CDeckLink::DriverNotificationThreadFunction(void*) ()
at /lib64/libDeckLinkAPI.so
#8  0x00007f0cac11f52a in start_thread () at /lib64/libpthread.so.0
#9  0x00007f0cabe5822d in clone () at /lib64/libc.so.6

Thread 1 (Thread 0x7f0cad72b700 (LWP 13568)):
#0  0x00007f0cabe4cc8d in poll () at /lib64/libc.so.6
#1  0x00007f0cac791b34 in g_main_context_iterate.isra () at
/lib64/libglib-2.0.so.0
#2  0x00007f0cac791ec2 in g_main_loop_run () at /lib64/libglib-2.0.so.0
#3  0x00007f0cad22eb79 in gst_bus_poll (bus=bus at entry=0x2488b00,
events=events at entry=GST_MESSAGE_ANY, timeout=18446744073709551615) at
gstbus.c:1149
#4  0x00000000004047c8 in event_loop (pipeline=0x2532080,
blocking=blocking at entry=1, do_progress=do_progress at entry=0,
target_state=target_state at entry=GST_STATE_PLAYING)
    at gst-launch.c:531
#5  0x0000000000403888 in main (argc=28, argv=0x7ffdb438a6a8) at
gst-launch.c:1112

I'm happy to help debug, try patches, etc.

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