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