GstCollectPads-related freeze in pads mgmt

Andrey Utkin andrey.krieger.utkin at gmail.com
Thu Jan 2 13:44:14 PST 2014


The problem i experience can be reproduced with my GstTq sketch:
github.com/krieger-od/gst_tq , if you change line 14 to "gboolean
release_sinkpads = FALSE;".

So we have such a pipeline: http://whdd.org/bin.png
It is in playing state.
Then we want to release both tq srcpads, which are linked with
mpegtsmux element.
It works when we release also muxer sinkpads in order.
But it freezes the app if we don't release muxer sinkpads immediately.
This can happen, for example, if we want to connect them with
something else. Or, what i have in my app at the moment, the actual
muxer element and its pads are unavailable, and application level has
access to other pads that lead to muxer, and these available pads are
not of requestable type, but of "sometimes" type. I know that
technically this can be changed, but anyway, what about the first
usecase?

Actual data on the freeze:

Output:
 $ ./gst_tq_test
Unlinking tq pad ghostpad1 from to_delete pad sink_65
0:00:01.027911160  8802      0x14ed4f0 ERROR                default
main.c:25:pad_block_cb:<tq:ghostpad1> In pad probe callback
0:00:01.027978414  8802      0x14ed4f0 ERROR                default
main.c:40:pad_block_cb:<'':ghostpad1> In pad probe callback: DONE
Unlinking tq pad ghostpad2 from to_delete pad sink_66
0:00:01.029849150  8802      0x14ed8f0 ERROR                     tq
tq.c:157:pad_block_cb:<tee:src_0> In tq pad_block_cb
0:00:01.029991691  8802      0x14ed8f0 ERROR                     tq
tq.c:177:pad_block_cb:<'':src_0> In tq pad_block_cb: DONE

In application context, a probe callback on second pad doesn't get
called. But this callback is awaited by main thread, thus app
execution is hanging.
The reason why i titled the topic a "GstCollectPads-related" is that
awaited pad 0x14dc570 thread (i mean its queue pushing thread) is
stuck in gst_collect_pads_chain(), see "Thread 10" below.
The guilty GstCollectPads object is inside mpegtsmux, i think.

GDB: "info threads", "thread apply all bt", "thread apply all bt full":

(gdb) info threads
  Id   Target Id         Frame
  10   Thread 0x7fb0cad40700 (LWP 8804) "queue1:src"
0x00007fb0ce0225ec in pthread_cond_wait ()
   from /lib64/libpthread.so.0
  9    Thread 0x7fb0ca53f700 (LWP 8805) "videotestsrc0:s"
0x00007fb0ce0225ec in pthread_cond_wait ()
   from /lib64/libpthread.so.0
  8    Thread 0x7fb0c9d3e700 (LWP 8806) "videotestsrc0:s"
0x00007fb0ce0225ec in pthread_cond_wait ()
   from /lib64/libpthread.so.0
  7    Thread 0x7fb0c953d700 (LWP 8807) "videotestsrc0:s"
0x00007fb0ce0225ec in pthread_cond_wait ()
   from /lib64/libpthread.so.0
  6    Thread 0x7fb0c8d3c700 (LWP 8808) "videotestsrc0:s"
0x00007fb0ce0225ec in pthread_cond_wait ()
   from /lib64/libpthread.so.0
  5    Thread 0x7fb0bbfff700 (LWP 8809) "videotestsrc0:s"
0x00007fb0ce0225ec in pthread_cond_wait ()
   from /lib64/libpthread.so.0
  4    Thread 0x7fb0bb7fe700 (LWP 8810) "videotestsrc0:s"
0x00007fb0ce0225ec in pthread_cond_wait ()
   from /lib64/libpthread.so.0
  3    Thread 0x7fb0baffd700 (LWP 8811) "videotestsrc0:s"
0x00007fb0ce0225ec in pthread_cond_wait ()
   from /lib64/libpthread.so.0
  2    Thread 0x7fb0ba26d700 (LWP 8812) "videotestsrc0:s"
0x00007fb0ce0225ec in pthread_cond_wait ()
   from /lib64/libpthread.so.0
* 1    Thread 0x7fb0cecf7700 (LWP 8802) "gst_tq_test"
0x00007fb0cdd245ad in nanosleep ()
   from /lib64/libc.so.6
(gdb) thread
apply  find   name
(gdb) thread apply all bt

Thread 10 (Thread 0x7fb0cad40700 (LWP 8804)):
#0  0x00007fb0ce0225ec in pthread_cond_wait () from /lib64/libpthread.so.0
#1  0x00007fb0ce2daa35 in g_cond_wait (cond=0x14e2150, mutex=0x14e2148)
    at /var/tmp/portage/dev-libs/glib-2.36.4-r1/work/glib-2.36.4/glib/gthread-posix.c:750
#2  0x00007fb0ccad58a1 in gst_collect_pads_chain (pad=0x14c3890,
parent=0x14e0070,
    buffer=0x7fb0bc00da00) at gstcollectpads.c:2212
#3  0x00007fb0ce85bde8 in gst_pad_chain_data_unchecked (pad=0x14c3890,
type=4112, data=0x7fb0bc00da00)
    at gstpad.c:3772
#4  0x00007fb0ce85ca7b in gst_pad_push_data (pad=0x14dc570, type=4112,
data=0x7fb0bc00da00)
    at gstpad.c:4005
#5  0x00007fb0ce85cfcc in gst_pad_push (pad=0x14dc570,
buffer=0x7fb0bc00da00) at gstpad.c:4108
#6  0x00007fb0ce84302c in gst_proxy_pad_chain_default (pad=0x14de920,
parent=0x14dc570,
    buffer=0x7fb0bc00da00) at gstghostpad.c:128
#7  0x00007fb0ce85bde8 in gst_pad_chain_data_unchecked (pad=0x14de920,
type=4112, data=0x7fb0bc00da00)
    at gstpad.c:3772
#8  0x00007fb0ce85ca7b in gst_pad_push_data (pad=0x14c3660, type=4112,
data=0x7fb0bc00da00)
    at gstpad.c:4005
#9  0x00007fb0ce85cfcc in gst_pad_push (pad=0x14c3660,
buffer=0x7fb0bc00da00) at gstpad.c:4108
#10 0x00007fb0cb780f34 in gst_queue_push_one (queue=0x14ee2f0) at
gstqueue.c:1118
#11 0x00007fb0cb781cb3 in gst_queue_loop (pad=0x14c3660) at gstqueue.c:1247
#12 0x00007fb0ce890a40 in gst_task_func (task=0x14f1120) at gsttask.c:316
#13 0x00007fb0ce891b3b in default_func (tdata=0x14e98b0,
pool=0x1350840) at gsttaskpool.c:70
#14 0x00007fb0ce2b69be in g_thread_pool_thread_proxy (data=0x13506d0)
    at /var/tmp/portage/dev-libs/glib-2.36.4-r1/work/glib-2.36.4/glib/gthreadpool.c:309
#15 0x00007fb0ce2b63d3 in g_thread_proxy (data=0x14ed940)
    at /var/tmp/portage/dev-libs/glib-2.36.4-r1/work/glib-2.36.4/glib/gthread.c:798
#16 0x00007fb0ce01dda6 in start_thread () from /lib64/libpthread.so.0
#17 0x00007fb0cdd56abd in clone () from /lib64/libc.so.6
---Type <return> to continue, or q <return> to quit---

Thread 9 (Thread 0x7fb0ca53f700 (LWP 8805)):
#0  0x00007fb0ce0225ec in pthread_cond_wait () from /lib64/libpthread.so.0
#1  0x00007fb0ce2daa35 in g_cond_wait (cond=0x14ee598, mutex=0x14ee570)
    at /var/tmp/portage/dev-libs/glib-2.36.4-r1/work/glib-2.36.4/glib/gthread-posix.c:750
#2  0x00007fb0cb780727 in gst_queue_chain (pad=0x14c3430,
parent=0x14ee2f0, buffer=0x7fb0c0c75070)
    at gstqueue.c:1014
#3  0x00007fb0ce85bde8 in gst_pad_chain_data_unchecked (pad=0x14c3430,
type=4112, data=0x7fb0c0c75070)
    at gstpad.c:3772
#4  0x00007fb0ce85ca7b in gst_pad_push_data (pad=0x14de6e0, type=4112,
data=0x7fb0c0c75070)
    at gstpad.c:4005
#5  0x00007fb0ce85cfcc in gst_pad_push (pad=0x14de6e0,
buffer=0x7fb0c0c75070) at gstpad.c:4108
#6  0x00007fb0cb793000 in gst_tee_handle_data (tee=0x140cd30,
data=0x7fb0c0c75070, is_list=0)
    at gsttee.c:593
#7  0x00007fb0cb79349c in gst_tee_chain (pad=0x14c2710,
parent=0x140cd30, buffer=0x7fb0c0c75070)
    at gsttee.c:694
#8  0x00007fb0ce85bde8 in gst_pad_chain_data_unchecked (pad=0x14c2710,
type=4112, data=0x7fb0c0c75070)
    at gstpad.c:3772
#9  0x00007fb0ce85ca7b in gst_pad_push_data (pad=0x14de020, type=4112,
data=0x7fb0c0c75070)
    at gstpad.c:4005
#10 0x00007fb0ce85cfcc in gst_pad_push (pad=0x14de020,
buffer=0x7fb0c0c75070) at gstpad.c:4108
#11 0x00007fb0ce84302c in gst_proxy_pad_chain_default (pad=0x14dc0b0,
parent=0x13b4010,
    buffer=0x7fb0c0c75070) at gstghostpad.c:128
#12 0x00007fb0ce85bde8 in gst_pad_chain_data_unchecked (pad=0x14dc0b0,
type=4112, data=0x7fb0c0c75070)
    at gstpad.c:3772
#13 0x00007fb0ce85ca7b in gst_pad_push_data (pad=0x14c24e0, type=4112,
data=0x7fb0c0c75070)
    at gstpad.c:4005
#14 0x00007fb0ce85cfcc in gst_pad_push (pad=0x14c24e0,
buffer=0x7fb0c0c75070) at gstpad.c:4108
#15 0x00007fb0ccd2d1a3 in gst_video_encoder_finish_frame
(encoder=0x13b33c0, frame=0x0)
---Type <return> to continue, or q <return> to quit---
    at gstvideoencoder.c:2043
#16 0x00007fb0cc5f6e44 in gst_x264_enc_encode_frame
(encoder=0x13b33c0, pic_in=0x7fb0ca53e880,
    input_frame=0x7fb0c0c61e30, i_nal=0x7fb0ca53e87c, send=1) at
gstx264enc.c:2098
#17 0x00007fb0cc5f660d in gst_x264_enc_handle_frame
(video_enc=0x13b33c0, frame=0x7fb0c0c61e30)
    at gstx264enc.c:1969
#18 0x00007fb0ccd2a6db in gst_video_encoder_chain (pad=0x14c22b0,
parent=0x13b33c0, buf=0x7fb0c07cd690)
    at gstvideoencoder.c:1408
#19 0x00007fb0ce85bde8 in gst_pad_chain_data_unchecked (pad=0x14c22b0,
type=4112, data=0x7fb0c07cd690)
    at gstpad.c:3772
#20 0x00007fb0ce85ca7b in gst_pad_push_data (pad=0x14c2080, type=4112,
data=0x7fb0c07cd690)
    at gstpad.c:4005
#21 0x00007fb0ce85cfcc in gst_pad_push (pad=0x14c2080,
buffer=0x7fb0c07cd690) at gstpad.c:4108
#22 0x00007fb0ccabf004 in gst_base_src_loop (pad=0x14c2080) at gstbasesrc.c:2785
#23 0x00007fb0ce890a40 in gst_task_func (task=0x14f1240) at gsttask.c:316
#24 0x00007fb0ce891b3b in default_func (tdata=0x14c5c70,
pool=0x1350840) at gsttaskpool.c:70
#25 0x00007fb0ce2b69be in g_thread_pool_thread_proxy (data=0x13506d0)
    at /var/tmp/portage/dev-libs/glib-2.36.4-r1/work/glib-2.36.4/glib/gthreadpool.c:309
#26 0x00007fb0ce2b63d3 in g_thread_proxy (data=0x14ed8f0)
    at /var/tmp/portage/dev-libs/glib-2.36.4-r1/work/glib-2.36.4/glib/gthread.c:798
#27 0x00007fb0ce01dda6 in start_thread () from /lib64/libpthread.so.0
#28 0x00007fb0cdd56abd in clone () from /lib64/libc.so.6

Thread 8 (Thread 0x7fb0c9d3e700 (LWP 8806)):
#0  0x00007fb0ce0225ec in pthread_cond_wait () from /lib64/libpthread.so.0
#1  0x00007fb0cba3f7db in x264_threadpool_thread () from
/usr/lib64/libx264.so.138
#2  0x00007fb0ce01dda6 in start_thread () from /lib64/libpthread.so.0
#3  0x00007fb0cdd56abd in clone () from /lib64/libc.so.6

Thread 7 (Thread 0x7fb0c953d700 (LWP 8807)):
---Type <return> to continue, or q <return> to quit---
#0  0x00007fb0ce0225ec in pthread_cond_wait () from /lib64/libpthread.so.0
#1  0x00007fb0cba3f7db in x264_threadpool_thread () from
/usr/lib64/libx264.so.138
#2  0x00007fb0ce01dda6 in start_thread () from /lib64/libpthread.so.0
#3  0x00007fb0cdd56abd in clone () from /lib64/libc.so.6

Thread 6 (Thread 0x7fb0c8d3c700 (LWP 8808)):
#0  0x00007fb0ce0225ec in pthread_cond_wait () from /lib64/libpthread.so.0
#1  0x00007fb0cba3f7db in x264_threadpool_thread () from
/usr/lib64/libx264.so.138
#2  0x00007fb0ce01dda6 in start_thread () from /lib64/libpthread.so.0
#3  0x00007fb0cdd56abd in clone () from /lib64/libc.so.6

Thread 5 (Thread 0x7fb0bbfff700 (LWP 8809)):
#0  0x00007fb0ce0225ec in pthread_cond_wait () from /lib64/libpthread.so.0
#1  0x00007fb0cba3f7db in x264_threadpool_thread () from
/usr/lib64/libx264.so.138
#2  0x00007fb0ce01dda6 in start_thread () from /lib64/libpthread.so.0
#3  0x00007fb0cdd56abd in clone () from /lib64/libc.so.6

Thread 4 (Thread 0x7fb0bb7fe700 (LWP 8810)):
#0  0x00007fb0ce0225ec in pthread_cond_wait () from /lib64/libpthread.so.0
#1  0x00007fb0cba3f7db in x264_threadpool_thread () from
/usr/lib64/libx264.so.138
#2  0x00007fb0ce01dda6 in start_thread () from /lib64/libpthread.so.0
#3  0x00007fb0cdd56abd in clone () from /lib64/libc.so.6

Thread 3 (Thread 0x7fb0baffd700 (LWP 8811)):
#0  0x00007fb0ce0225ec in pthread_cond_wait () from /lib64/libpthread.so.0
#1  0x00007fb0cba3f7db in x264_threadpool_thread () from
/usr/lib64/libx264.so.138
#2  0x00007fb0ce01dda6 in start_thread () from /lib64/libpthread.so.0
#3  0x00007fb0cdd56abd in clone () from /lib64/libc.so.6

---Type <return> to continue, or q <return> to quit---
Thread 2 (Thread 0x7fb0ba26d700 (LWP 8812)):
#0  0x00007fb0ce0225ec in pthread_cond_wait () from /lib64/libpthread.so.0
#1  0x00007fb0cba3f01d in x264_lookahead_thread () from
/usr/lib64/libx264.so.138
#2  0x00007fb0ce01dda6 in start_thread () from /lib64/libpthread.so.0
#3  0x00007fb0cdd56abd in clone () from /lib64/libc.so.6

Thread 1 (Thread 0x7fb0cecf7700 (LWP 8802)):
#0  0x00007fb0cdd245ad in nanosleep () from /lib64/libc.so.6
#1  0x00007fb0cdd50aa4 in usleep () from /lib64/libc.so.6
#2  0x0000000000402d6e in main (argc=1, argv=0x7fffc3a0c3d8) at main.c:104
(gdb)
(gdb)
(gdb)
(gdb)
(gdb)
(gdb)
(gdb)
(gdb) thread apply all bt full

Thread 10 (Thread 0x7fb0cad40700 (LWP 8804)):
#0  0x00007fb0ce0225ec in pthread_cond_wait () from /lib64/libpthread.so.0
No symbol table info available.
#1  0x00007fb0ce2daa35 in g_cond_wait (cond=0x14e2150, mutex=0x14e2148)
    at /var/tmp/portage/dev-libs/glib-2.36.4-r1/work/glib-2.36.4/glib/gthread-posix.c:750
        status = 0
#2  0x00007fb0ccad58a1 in gst_collect_pads_chain (pad=0x14c3890,
parent=0x14e0070,
    buffer=0x7fb0bc00da00) at gstcollectpads.c:2212
        data = 0x14c6800
        pads = 0x14e2000
        ret = GST_FLOW_OK
        buffer_p = 0x14c6810
        cookie = 1646
        __PRETTY_FUNCTION__ = "gst_collect_pads_chain"
#3  0x00007fb0ce85bde8 in gst_pad_chain_data_unchecked (pad=0x14c3890,
type=4112, data=0x7fb0bc00da00)
    at gstpad.c:3772
        chainfunc = 0x7fb0ccad5360 <gst_collect_pads_chain>
        ret = GST_FLOW_OK
        parent = 0x14e0070
        __PRETTY_FUNCTION__ = "gst_pad_chain_data_unchecked"
#4  0x00007fb0ce85ca7b in gst_pad_push_data (pad=0x14dc570, type=4112,
data=0x7fb0bc00da00)
    at gstpad.c:4005
        peer = 0x14c3890
        ret = GST_FLOW_OK
        __PRETTY_FUNCTION__ = "gst_pad_push_data"
#5  0x00007fb0ce85cfcc in gst_pad_push (pad=0x14dc570,
buffer=0x7fb0bc00da00) at gstpad.c:4108
        __PRETTY_FUNCTION__ = "gst_pad_push"
#6  0x00007fb0ce84302c in gst_proxy_pad_chain_default (pad=0x14de920,
parent=0x14dc570,
---Type <return> to continue, or q <return> to quit---
    buffer=0x7fb0bc00da00) at gstghostpad.c:128
        res = 32688
        internal = 0x14dc570
        __PRETTY_FUNCTION__ = "gst_proxy_pad_chain_default"
#7  0x00007fb0ce85bde8 in gst_pad_chain_data_unchecked (pad=0x14de920,
type=4112, data=0x7fb0bc00da00)
    at gstpad.c:3772
        chainfunc = 0x7fb0ce842f1c <gst_proxy_pad_chain_default>
        ret = GST_FLOW_OK
        parent = 0x14dc570
        __PRETTY_FUNCTION__ = "gst_pad_chain_data_unchecked"
#8  0x00007fb0ce85ca7b in gst_pad_push_data (pad=0x14c3660, type=4112,
data=0x7fb0bc00da00)
    at gstpad.c:4005
        peer = 0x14de920
        ret = GST_FLOW_OK
        __PRETTY_FUNCTION__ = "gst_pad_push_data"
#9  0x00007fb0ce85cfcc in gst_pad_push (pad=0x14c3660,
buffer=0x7fb0bc00da00) at gstpad.c:4108
        __PRETTY_FUNCTION__ = "gst_pad_push"
#10 0x00007fb0cb780f34 in gst_queue_push_one (queue=0x14ee2f0) at
gstqueue.c:1118
        buffer = 0x7fb0bc00da00
        result = GST_FLOW_OK
        data = 0x7fb0bc00da00
        __PRETTY_FUNCTION__ = "gst_queue_push_one"
#11 0x00007fb0cb781cb3 in gst_queue_loop (pad=0x14c3660) at gstqueue.c:1247
        queue = 0x14ee2f0
        ret = GST_FLOW_OK
        __PRETTY_FUNCTION__ = "gst_queue_loop"
#12 0x00007fb0ce890a40 in gst_task_func (task=0x14f1120) at gsttask.c:316
        lock = 0x14c36d0
        tself = 0x14ed940
---Type <return> to continue, or q <return> to quit---
        priv = 0x14f11f0
        __PRETTY_FUNCTION__ = "gst_task_func"
#13 0x00007fb0ce891b3b in default_func (tdata=0x14e98b0,
pool=0x1350840) at gsttaskpool.c:70
        func = 0x7fb0ce89079e <gst_task_func>
        user_data = 0x14f1120
#14 0x00007fb0ce2b69be in g_thread_pool_thread_proxy (data=0x13506d0)
    at /var/tmp/portage/dev-libs/glib-2.36.4-r1/work/glib-2.36.4/glib/gthreadpool.c:309
        task = 0x14e98b0
        pool = 0x13506d0
#15 0x00007fb0ce2b63d3 in g_thread_proxy (data=0x14ed940)
    at /var/tmp/portage/dev-libs/glib-2.36.4-r1/work/glib-2.36.4/glib/gthread.c:798
        thread = 0x14ed940
        __PRETTY_FUNCTION__ = "g_thread_proxy"
#16 0x00007fb0ce01dda6 in start_thread () from /lib64/libpthread.so.0
No symbol table info available.
#17 0x00007fb0cdd56abd in clone () from /lib64/libc.so.6
No symbol table info available.

Thread 9 (Thread 0x7fb0ca53f700 (LWP 8805)):
#0  0x00007fb0ce0225ec in pthread_cond_wait () from /lib64/libpthread.so.0
No symbol table info available.
#1  0x00007fb0ce2daa35 in g_cond_wait (cond=0x14ee598, mutex=0x14ee570)
    at /var/tmp/portage/dev-libs/glib-2.36.4-r1/work/glib-2.36.4/glib/gthread-posix.c:750
        status = 0
#2  0x00007fb0cb780727 in gst_queue_chain (pad=0x14c3430,
parent=0x14ee2f0, buffer=0x7fb0c0c75070)
    at gstqueue.c:1014
        queue = 0x14ee2f0
        duration = 33333333
        timestamp = 32433333333
---Type <return> to continue, or q <return> to quit---
        __PRETTY_FUNCTION__ = "gst_queue_chain"
#3  0x00007fb0ce85bde8 in gst_pad_chain_data_unchecked (pad=0x14c3430,
type=4112, data=0x7fb0c0c75070)
    at gstpad.c:3772
        chainfunc = 0x7fb0cb77fff7 <gst_queue_chain>
        ret = GST_FLOW_OK
        parent = 0x14ee2f0
        __PRETTY_FUNCTION__ = "gst_pad_chain_data_unchecked"
#4  0x00007fb0ce85ca7b in gst_pad_push_data (pad=0x14de6e0, type=4112,
data=0x7fb0c0c75070)
    at gstpad.c:4005
        peer = 0x14c3430
        ret = GST_FLOW_OK
        __PRETTY_FUNCTION__ = "gst_pad_push_data"
#5  0x00007fb0ce85cfcc in gst_pad_push (pad=0x14de6e0,
buffer=0x7fb0c0c75070) at gstpad.c:4108
        __PRETTY_FUNCTION__ = "gst_pad_push"
#6  0x00007fb0cb793000 in gst_tee_handle_data (tee=0x140cd30,
data=0x7fb0c0c75070, is_list=0)
    at gsttee.c:593
        pad = 0x14de6e0
        pads = 0x14ece20
        cookie = 32688
        ret = GST_FLOW_OK
        cret = 20181912
        __PRETTY_FUNCTION__ = "gst_tee_handle_data"
#7  0x00007fb0cb79349c in gst_tee_chain (pad=0x14c2710,
parent=0x140cd30, buffer=0x7fb0c0c75070)
    at gsttee.c:694
        res = GST_FLOW_OK
        tee = 0x140cd30
        __PRETTY_FUNCTION__ = "gst_tee_chain"
#8  0x00007fb0ce85bde8 in gst_pad_chain_data_unchecked (pad=0x14c2710,
type=4112, data=0x7fb0c0c75070)
    at gstpad.c:3772
---Type <return> to continue, or q <return> to quit---
        chainfunc = 0x7fb0cb793412 <gst_tee_chain>
        ret = GST_FLOW_OK
        parent = 0x140cd30
        __PRETTY_FUNCTION__ = "gst_pad_chain_data_unchecked"
#9  0x00007fb0ce85ca7b in gst_pad_push_data (pad=0x14de020, type=4112,
data=0x7fb0c0c75070)
    at gstpad.c:4005
        peer = 0x14c2710
        ret = GST_FLOW_OK
        __PRETTY_FUNCTION__ = "gst_pad_push_data"
#10 0x00007fb0ce85cfcc in gst_pad_push (pad=0x14de020,
buffer=0x7fb0c0c75070) at gstpad.c:4108
        __PRETTY_FUNCTION__ = "gst_pad_push"
#11 0x00007fb0ce84302c in gst_proxy_pad_chain_default (pad=0x14dc0b0,
parent=0x13b4010,
    buffer=0x7fb0c0c75070) at gstghostpad.c:128
        res = 32688
        internal = 0x14de020
        __PRETTY_FUNCTION__ = "gst_proxy_pad_chain_default"
#12 0x00007fb0ce85bde8 in gst_pad_chain_data_unchecked (pad=0x14dc0b0,
type=4112, data=0x7fb0c0c75070)
    at gstpad.c:3772
        chainfunc = 0x7fb0ce842f1c <gst_proxy_pad_chain_default>
        ret = GST_FLOW_OK
        parent = 0x13b4010
        __PRETTY_FUNCTION__ = "gst_pad_chain_data_unchecked"
#13 0x00007fb0ce85ca7b in gst_pad_push_data (pad=0x14c24e0, type=4112,
data=0x7fb0c0c75070)
    at gstpad.c:4005
        peer = 0x14dc0b0
        ret = GST_FLOW_OK
        __PRETTY_FUNCTION__ = "gst_pad_push_data"
#14 0x00007fb0ce85cfcc in gst_pad_push (pad=0x14c24e0,
buffer=0x7fb0c0c75070) at gstpad.c:4108
        __PRETTY_FUNCTION__ = "gst_pad_push"
---Type <return> to continue, or q <return> to quit---
#15 0x00007fb0ccd2d1a3 in gst_video_encoder_finish_frame
(encoder=0x13b33c0, frame=0x0)
    at gstvideoencoder.c:2043
        priv = 0x13b3b30
        ret = GST_FLOW_OK
        encoder_class = 0x14c58c0
        l = 0x0
        send_headers = 0
        discont = 0
        buffer = 0x7fb0c0c75070
        needs_reconfigure = 0
        __PRETTY_FUNCTION__ = "gst_video_encoder_finish_frame"
#16 0x00007fb0cc5f6e44 in gst_x264_enc_encode_frame
(encoder=0x13b33c0, pic_in=0x7fb0ca53e880,
    input_frame=0x7fb0c0c61e30, i_nal=0x7fb0ca53e87c, send=1) at
gstx264enc.c:2098
        frame = 0x7fb0c0c1b630
        out_buf = 0x7fb0c0c75070
        pic_out = {i_type = 4, i_qpplus1 = 1, i_pic_struct = 1,
b_keyframe = 0, i_pts = 32433333333,
          i_dts = 32366666666, param = 0x3, img = {i_csp = 3, i_plane
= 2, i_stride = {384, 384,
              -1064752640, 32688}, plane = {
              0x7fb0c84c1aa0
"\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322Ҫ\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221",
'j' <repeats 18 times>...,
              0x7fb0c84b1ea0
"\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200H\211\020\222\020\222\020\222\020\222\020\222\020\222\020\222\020\222\020\222\020\222\020\222\020\222\020\222---Type
<return> to continue, or q <return> to quit---
\020\222\020\222\020\222\020\222\020\222\020\222\020\222\020\222\020\222[Q\246\020\246\020\246\020\246\020\246\020\246\020\246\020\246\020\246\020\246\020\246\020\246\020\246\020\246\020\246\020\246\020\246\020\246\020\246\020\246\020\246\020\246\020n\031\066\"6\"6\"6\"6\"6\"6\"6\"6\"6\"6\"6\"6\"6\"6\"6\"6\"6\"6\"6\"6\"6\"\312\336\312\336\312\336\312\336\312\336\312\336\312\336\312\336\312",
<incomplete sequence \336>..., 0x7fb000000001 <Address 0x7fb000000001
out of bounds>,
              0x7fb0c0813120
"\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322Ҫ\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221",
'j' <repeats 18 times>...}}, prop = {quant_offsets = 0x1c200,
            quant_offsets_free = 0x1c20f, mb_info = 0x3 <Address 0x3
out of bounds>,
            mb_info_free = 0x7fb0cdceb686 <memalign+182>, f_ssim =
6.9365475519160613e-310,
            f_psnr_avg = 6.9365475519168518e-310, f_psnr =
{1.6215672594399192e-314,
              2.1219957909652723e-314, 1.0760259653301675e-316},
f_crf_avg = 23}, hrd_timing = {
            cpb_initial_arrival_time = 0, cpb_final_arrival_time = 0,
cpb_removal_time = 0,
            dpb_output_time = 0}, extra_sei = {num_payloads = 320,
payloads = 0x100000000,
            sei_free = 0x14c5240}, opaque = 0x3cd}
        nal = 0x7fb0c0063ac0
        i_size = 6341
        encoder_return = 6341
        ret = GST_FLOW_OK
        data = 0x7fb0ceb87040 ""
        update_latency = 0
        __PRETTY_FUNCTION__ = "gst_x264_enc_encode_frame"
#17 0x00007fb0cc5f660d in gst_x264_enc_handle_frame
(video_enc=0x13b33c0, frame=0x7fb0c0c61e30)
    at gstx264enc.c:1969
---Type <return> to continue, or q <return> to quit---
        encoder = 0x13b33c0
        info = 0x7fb0c0033008
        ret = 32688
        pic_in = {i_type = 0, i_qpplus1 = 0, i_pic_struct = 0,
b_keyframe = 0, i_pts = 34066666666,
          i_dts = -1, param = 0x0, img = {i_csp = 1, i_plane = 3,
i_stride = {320, 160, 160, 0},
            plane = {
              0x7fb0c0813120
"\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\353\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322\322Ҫ\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221",
'j' <repeats 18 times>...,
              0x7fb0c0825d20
"\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200H",
'\020' <repeats 22 times>,
"[\246\246\246\246\246\246\246\246\246\246\246\246\246\246\246\246\246\246\246\246\246\246n",
'6' <repeats 22 times>"\312,
\312\312\312\312\312\312\312\312\312\312\312\312\312\312\312\312\312\312\312\312\312\312",
'Z' <repeats 23 times>"\360,
\360\360\360\360\360\360\360\360\360\360\360\360\360\360\360\360\360\360\360\360\360\360\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200H",
'\020' <repeats 17 times>...,
              0x7fb0c082a820
"\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\211\222\222\222\222\222\222\222\222\222\222\222\222\222\222\222\222\222\222\222\222\222\222Q",
'\020' <repeats 22 times>, "\031", '"' <repeats 22 times>"\336,
\336\336\336\336\336\336\336\336\336\336\336\336\336\336\336\336\336\336\336\336\336\336\360\360\360\360\360\360\360\360\360\360\360\360\360\360\360\360\360\360\360\360\360\360\360",
'n' <repeats 23 times>"\200,
\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\211\222\222\222\222\222\222\222\222\222\222\222\222\222\222\222\222\222"...,
0x0}}, prop = {quant_offsets = 0x0, quant_offsets_free = 0x0, mb_info
= 0x0,
            mb_info_free = 0x0, f_ssim = 0, f_psnr_avg = 0, f_psnr =
{0, 0, 0}, f_crf_avg = 0},
          hrd_timing = {cpb_initial_arrival_time = 0,
cpb_final_arrival_time = 0, cpb_removal_time = 0,
---Type <return> to continue, or q <return> to quit---
            dpb_output_time = 0}, extra_sei = {num_payloads = 0,
payloads = 0x0, sei_free = 0x0},
          opaque = 0x3fe}
        i_nal = 2
        i = 3
        fdata = 0x7fb0c0831260
        nplanes = 3
        __PRETTY_FUNCTION__ = "gst_x264_enc_handle_frame"
#18 0x00007fb0ccd2a6db in gst_video_encoder_chain (pad=0x14c22b0,
parent=0x13b33c0, buf=0x7fb0c07cd690)
    at gstvideoencoder.c:1408
        encoder = 0x13b33c0
        priv = 0x13b3b30
        klass = 0x14c58c0
        frame = 0x7fb0c0c61e30
        pts = 34066666666
        duration = 33333334
        ret = GST_FLOW_OK
        start = 34066666666
        stop = 34100000000
        cstart = 34066666666
        cstop = 34100000000
        __PRETTY_FUNCTION__ = "gst_video_encoder_chain"
#19 0x00007fb0ce85bde8 in gst_pad_chain_data_unchecked (pad=0x14c22b0,
type=4112, data=0x7fb0c07cd690)
    at gstpad.c:3772
        chainfunc = 0x7fb0ccd29b14 <gst_video_encoder_chain>
        ret = GST_FLOW_OK
        parent = 0x13b33c0
        __PRETTY_FUNCTION__ = "gst_pad_chain_data_unchecked"
#20 0x00007fb0ce85ca7b in gst_pad_push_data (pad=0x14c2080, type=4112,
data=0x7fb0c07cd690)
    at gstpad.c:4005
---Type <return> to continue, or q <return> to quit---
        peer = 0x14c22b0
        ret = GST_FLOW_OK
        __PRETTY_FUNCTION__ = "gst_pad_push_data"
#21 0x00007fb0ce85cfcc in gst_pad_push (pad=0x14c2080,
buffer=0x7fb0c07cd690) at gstpad.c:4108
        __PRETTY_FUNCTION__ = "gst_pad_push"
#22 0x00007fb0ccabf004 in gst_base_src_loop (pad=0x14c2080) at gstbasesrc.c:2785
        src = 0x14c0200
        buf = 0x7fb0c07cd690
        ret = GST_FLOW_OK
        position = 34100000000
        eos = 0
        blocksize = 4096
        pending_events = 0x0
        tmp = 0x14c20f0
        __PRETTY_FUNCTION__ = "gst_base_src_loop"
#23 0x00007fb0ce890a40 in gst_task_func (task=0x14f1240) at gsttask.c:316
        lock = 0x14c20f0
        tself = 0x14ed8f0
        priv = 0x14f1310
        __PRETTY_FUNCTION__ = "gst_task_func"
#24 0x00007fb0ce891b3b in default_func (tdata=0x14c5c70,
pool=0x1350840) at gsttaskpool.c:70
        func = 0x7fb0ce89079e <gst_task_func>
        user_data = 0x14f1240
#25 0x00007fb0ce2b69be in g_thread_pool_thread_proxy (data=0x13506d0)
    at /var/tmp/portage/dev-libs/glib-2.36.4-r1/work/glib-2.36.4/glib/gthreadpool.c:309
        task = 0x14c5c70
        pool = 0x13506d0
#26 0x00007fb0ce2b63d3 in g_thread_proxy (data=0x14ed8f0)
    at /var/tmp/portage/dev-libs/glib-2.36.4-r1/work/glib-2.36.4/glib/gthread.c:798
---Type <return> to continue, or q <return> to quit---
        thread = 0x14ed8f0
        __PRETTY_FUNCTION__ = "g_thread_proxy"
#27 0x00007fb0ce01dda6 in start_thread () from /lib64/libpthread.so.0
No symbol table info available.
#28 0x00007fb0cdd56abd in clone () from /lib64/libc.so.6
No symbol table info available.

Thread 8 (Thread 0x7fb0c9d3e700 (LWP 8806)):
#0  0x00007fb0ce0225ec in pthread_cond_wait () from /lib64/libpthread.so.0
No symbol table info available.
#1  0x00007fb0cba3f7db in x264_threadpool_thread () from
/usr/lib64/libx264.so.138
No symbol table info available.
#2  0x00007fb0ce01dda6 in start_thread () from /lib64/libpthread.so.0
No symbol table info available.
#3  0x00007fb0cdd56abd in clone () from /lib64/libc.so.6
No symbol table info available.

Thread 7 (Thread 0x7fb0c953d700 (LWP 8807)):
#0  0x00007fb0ce0225ec in pthread_cond_wait () from /lib64/libpthread.so.0
No symbol table info available.
#1  0x00007fb0cba3f7db in x264_threadpool_thread () from
/usr/lib64/libx264.so.138
No symbol table info available.
#2  0x00007fb0ce01dda6 in start_thread () from /lib64/libpthread.so.0
No symbol table info available.
#3  0x00007fb0cdd56abd in clone () from /lib64/libc.so.6
No symbol table info available.

Thread 6 (Thread 0x7fb0c8d3c700 (LWP 8808)):
#0  0x00007fb0ce0225ec in pthread_cond_wait () from /lib64/libpthread.so.0
---Type <return> to continue, or q <return> to quit---
No symbol table info available.
#1  0x00007fb0cba3f7db in x264_threadpool_thread () from
/usr/lib64/libx264.so.138
No symbol table info available.
#2  0x00007fb0ce01dda6 in start_thread () from /lib64/libpthread.so.0
No symbol table info available.
#3  0x00007fb0cdd56abd in clone () from /lib64/libc.so.6
No symbol table info available.

Thread 5 (Thread 0x7fb0bbfff700 (LWP 8809)):
#0  0x00007fb0ce0225ec in pthread_cond_wait () from /lib64/libpthread.so.0
No symbol table info available.
#1  0x00007fb0cba3f7db in x264_threadpool_thread () from
/usr/lib64/libx264.so.138
No symbol table info available.
#2  0x00007fb0ce01dda6 in start_thread () from /lib64/libpthread.so.0
No symbol table info available.
#3  0x00007fb0cdd56abd in clone () from /lib64/libc.so.6
No symbol table info available.

Thread 4 (Thread 0x7fb0bb7fe700 (LWP 8810)):
#0  0x00007fb0ce0225ec in pthread_cond_wait () from /lib64/libpthread.so.0
No symbol table info available.
#1  0x00007fb0cba3f7db in x264_threadpool_thread () from
/usr/lib64/libx264.so.138
No symbol table info available.
#2  0x00007fb0ce01dda6 in start_thread () from /lib64/libpthread.so.0
No symbol table info available.
#3  0x00007fb0cdd56abd in clone () from /lib64/libc.so.6
No symbol table info available.

Thread 3 (Thread 0x7fb0baffd700 (LWP 8811)):
---Type <return> to continue, or q <return> to quit---
#0  0x00007fb0ce0225ec in pthread_cond_wait () from /lib64/libpthread.so.0
No symbol table info available.
#1  0x00007fb0cba3f7db in x264_threadpool_thread () from
/usr/lib64/libx264.so.138
No symbol table info available.
#2  0x00007fb0ce01dda6 in start_thread () from /lib64/libpthread.so.0
No symbol table info available.
#3  0x00007fb0cdd56abd in clone () from /lib64/libc.so.6
No symbol table info available.

Thread 2 (Thread 0x7fb0ba26d700 (LWP 8812)):
#0  0x00007fb0ce0225ec in pthread_cond_wait () from /lib64/libpthread.so.0
No symbol table info available.
#1  0x00007fb0cba3f01d in x264_lookahead_thread () from
/usr/lib64/libx264.so.138
No symbol table info available.
#2  0x00007fb0ce01dda6 in start_thread () from /lib64/libpthread.so.0
No symbol table info available.
#3  0x00007fb0cdd56abd in clone () from /lib64/libc.so.6
No symbol table info available.

Thread 1 (Thread 0x7fb0cecf7700 (LWP 8802)):
#0  0x00007fb0cdd245ad in nanosleep () from /lib64/libc.so.6
No symbol table info available.
#1  0x00007fb0cdd50aa4 in usleep () from /lib64/libc.so.6
No symbol table info available.
#2  0x0000000000402d6e in main (argc=1, argv=0x7fffc3a0c3d8) at main.c:104
        pad = 0x14c3890
        sourceName = 0x13bb140 "`&O\001"
        padName = 0x14ed380 "0\261;\001"
        peer_srcpad = 0x14dc570
---Type <return> to continue, or q <return> to quit---
        peerPadName = 0x14f2670 "\340wL\001"
        source = 0x13b4010
        iterRes = GST_ITERATOR_OK
        gboolRet = 0
        __PRETTY_FUNCTION__ = "main"
        error = 0x0
        pipeline = 0x14ea120
        to_delete = 0x14e0070
        iter_done = 0
        data = {g_type = 20192944, data = {{v_int = 21772432, v_uint =
21772432, v_long = 21772432,
              v_ulong = 21772432, v_int64 = 21772432, v_uint64 =
21772432, v_float = 3.7509464e-38,
              v_double = 1.0757010677614623e-316, v_pointer =
0x14c3890}, {v_int = 0, v_uint = 0,
              v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0,
v_float = 0, v_double = 0,
              v_pointer = 0x0}}}
        pads = 0x13b9d00
        bus = 0x7fb0ce7de6a8 <g__g_signal_mutex_lock>
        msg = 0x1342e60
(gdb)

-- 
Andrey Utkin


More information about the gstreamer-devel mailing list