[Bug 684285] New: basetransform: allocates from an inactive pool
GStreamer (bugzilla.gnome.org)
bugzilla at gnome.org
Tue Sep 18 04:16:25 PDT 2012
https://bugzilla.gnome.org/show_bug.cgi?id=684285
GStreamer | gst-plugins-base | 0.11.x
Summary: basetransform: allocates from an inactive pool
Classification: Platform
Product: GStreamer
Version: 0.11.x
OS/Version: Linux
Status: UNCONFIRMED
Severity: normal
Priority: Normal
Component: gst-plugins-base
AssignedTo: gstreamer-bugs at lists.freedesktop.org
ReportedBy: ystreet00 at gmail.com
QAContact: gstreamer-bugs at lists.freedesktop.org
GNOME version: ---
In default_prepare_output_buffer, basetransform tries to allocate from a
bufferpool and 99.9% of the time the returned buffer is valid. On transition
from PAUSED to READY however, when a basetransform element is before a queue,
the element after the queue can deactivate the bufferpool before basetransform
has changed state from PAUSED to READY. The buffer returned by the pool will
then be invalid.
Trace/Log:
0:00:08.457698219 28301 0x617a00 LOG bufferpool
gstbufferpool.c:436:gst_buffer_pool_set_active:<xvimagebufferpool0> active 0
0:00:08.457710511 28301 0x617a00 LOG bufferpool
gstbufferpool.c:466:gst_buffer_pool_set_active:<xvimagebufferpool0> outstanding
buffers 1
0:00:08.457722594 28301 0x617a00 DEBUG GST_STATES
gstelement.c:2602:gst_element_change_state:<xvimagesink0> element changed state
SUCCESS
0:00:08.457735026 28301 0x617a00 INFO GST_STATES
gstelement.c:2295:gst_element_continue_state:<xvimagesink0> completed state
change to READY
0:00:08.457747108 28301 0x617a00 INFO GST_STATES
gstelement.c:2200:_priv_gst_element_state_changed:<xvimagesink0> notifying
about state-changed PLAYING to READY (VOID_PENDING pending)
0:00:08.457760378 28301 0x617a00 TRACE default
<snip>
0:00:08.516582455 28301 0x617a00 INFO GST_STATES
gstbin.c:2208:gst_bin_element_set_state:<queue0> current PAUSED pending
VOID_PENDING, desired next READY
0:00:08.516630716 28301 0x617a00 DEBUG GST_STATES
gstelement.c:2445:gst_element_set_state_func:<queue0> set_state to READY
0:00:08.516642798 28301 0x617a00 DEBUG GST_STATES
gstelement.c:2470:gst_element_set_state_func:<queue0> setting target state to
READY
0:00:08.516654881 28301 0x617a00 DEBUG GST_STATES
gstelement.c:2483:gst_element_set_state_func:<queue0> current PAUSED,
old_pending VOID_PENDING, next VOID_PENDING, old return SUCCESS
0:00:08.516668011 28301 0x617a00 DEBUG GST_STATES
gstelement.c:2517:gst_element_set_state_func:<queue0> final: setting state from
PAUSED to READY
0:00:08.516681211 28301 0x617a00 LOG GST_STATES
gstelement.c:2763:gst_element_change_state_func:<queue0> default handler tries
setting state from PAUSED to READY (001a)
0:00:08.516694691 28301 0x617a00 DEBUG GST_ELEMENT_PADS
gstelement.c:2706:gst_element_pads_activate:<queue0> deactivate pads
0:00:08.516737504 28301 0x617a00 DEBUG GST_PADS
gstpad.c:949:gst_pad_set_active:<queue0:src> deactivating pad from push mode
0:00:08.516764532 28301 0x617a00 DEBUG GST_PADS
gstpad.c:841:pre_activate:<queue0:src> setting PAD_MODE NONE, set flushing
0:00:08.434238533 28301 0x720190 TRACE gldisplay
gstgldisplay.c:558:gst_gl_display_thread_use_fbo: Binding v1 FBO 1
dimensions:320x240 with texture:13
0:00:08.516972589 28301 0x7201e0 LOG queue_dataflow
gstqueue.c:1149:gst_queue_loop:<queue0> (queue0:src) received ADD wakeup: 0 of
0-200 buffers, 0 of 0-10485760 bytes, 0 of 0-1000000000 ns, 0 items
0:00:08.516990957 28301 0x7201e0 DEBUG GST_PADS
gstpad.c:5200:gst_pad_pause_task:<queue0:src> pause task
0:00:08.517004367 28301 0x7201e0 DEBUG task
gsttask.c:662:gst_task_set_state:<queue0:src> Changing task 0x735000 to state 2
0:00:08.517016729 28301 0x7201e0 LOG queue_dataflow
gstqueue.c:1178:gst_queue_loop:<queue0> pause task, reason: flushing
0:00:08.546668542 28301 0x7201e0 INFO task
gsttask.c:300:gst_task_func:<queue0:src> Task going to paused
0:00:08.517045433 28301 0x617a00 DEBUG GST_PADS
gstpad.c:5248:gst_pad_stop_task:<queue0:src> stop task
0:00:08.546710097 28301 0x617a00 DEBUG task
gsttask.c:662:gst_task_set_state:<queue0:src> Changing task 0x735000 to state 1
0:00:08.546731888 28301 0x7201e0 INFO task
gsttask.c:302:gst_task_func:<queue0:src> Task resume from paused
0:00:08.546745367 28301 0x7201e0 DEBUG GST_PADS
gstpad.c:5070:do_stream_status:<queue0:src> doing stream-status 2
0:00:08.546802777 28301 0x7201e0 LOG GST_MESSAGE
gstmessage.c:281:gst_message_new_custom: source src: creating new message
0x7fffe0002980 stream-status
0:00:08.546835183 28301 0x7201e0 DEBUG GST_PADS
gstpad.c:5099:do_stream_status:<queue0:src> posting stream-status 2
0:00:08.546980103 28301 0x617a00 DEBUG task
gsttask.c:789:gst_task_join:<queue0:src> Joining task 0x735000, thread 0x617a00
0:00:08.547115246 28301 0x711e80 DEBUG basesrc
gstbasesrc.c:2197:gst_base_src_do_sync:<gltestsrc0> no sync needed
0:00:08.547137805 28301 0x711e80 DEBUG basesrc
gstbasesrc.c:2396:gst_base_src_get_range:<gltestsrc0> buffer ok
0:00:08.547163786 28301 0x711e80 LOG GST_SCHEDULING
gstpad.c:3616:gst_pad_chain_data_unchecked:<glfilterlaplacian0:sink> calling
chainfunction &gst_base_transform_chain with buffer 0x7fffe00090b0, pts
0:00:00.200000000, dts 99:99:99.999999999, dur 0:00:00.033333333, size 115200,
offset 6, offset_end 7
0:00:08.547187532 28301 0x711e80 DEBUG basetransform
gstbasetransform.c:1932:gst_base_transform_handle_buffer:<glfilterlaplacian0>
handling buffer 0x7fffe00090b0 of size 115200 and offset 6
0:00:08.547200243 28301 0x711e80 DEBUG basetransform
gstbasetransform.c:2016:gst_base_transform_handle_buffer:<glfilterlaplacian0>
calling prepare buffer
0:00:08.547215957 28301 0x711e80 DEBUG basetransform
gstbasetransform.c:1545:default_prepare_output_buffer:<glfilterlaplacian0>
using pool alloc
0:00:08.547226992 28301 0x711e80 DEBUG bufferpool
gstbufferpool.c:1021:default_acquire_buffer:<xvimagebufferpool0> we are
flushing
0:00:08.547236979 28301 0x711e80 DEBUG basetransform
gstbasetransform.c:1668:default_copy_metadata:<glfilterlaplacian0> copying
metadata
(gst-launch-1.0:28301): GStreamer-CRITICAL **: gst_mini_object_is_writable:
Program received signal SIGTRAP, Trace/breakpoint trap.
[Switching to Thread 0x7fffe9141700 (LWP 28309)]
g_logv (log_domain=0x7ffff7b93428 "GStreamer", log_level=G_LOG_LEVEL_CRITICAL,
format=<optimised out>, args=<optimised out>)
at gmessages.c:974
974 g_private_set (&g_log_depth, GUINT_TO_POINTER (depth));
(gdb) bt
#0 g_logv (log_domain=0x7ffff7b93428 "GStreamer",
log_level=G_LOG_LEVEL_CRITICAL, format=<optimised out>, args=<optimised out>)
at gmessages.c:974
#1 0x00007ffff75c25d2 in g_log (log_domain=<optimised out>,
log_level=<optimised out>, format=<optimised out>) at gmessages.c:1003
#2 0x00007ffff7b400b2 in gst_mini_object_is_writable (mini_object=<optimised
out>) at gstminiobject.c:288
#3 0x00007ffff530b538 in default_copy_metadata (trans=0x70cca0,
inbuf=0x7fffe00090b0, outbuf=0x0) at gstbasetransform.c:1672
#4 0x00007ffff530b9c4 in default_prepare_output_buffer (trans=0x70cca0,
inbuf=0x7fffe00090b0, outbuf=0x7fffe9140c18)
at gstbasetransform.c:1586
#5 0x00007ffff530e7db in gst_base_transform_handle_buffer (trans=0x70cca0,
inbuf=0x7fffe00090b0, outbuf=0x7fffe9140c18)
at gstbasetransform.c:2017
#6 0x00007ffff530f1a4 in gst_base_transform_chain (pad=<optimised out>,
parent=<optimised out>, buffer=0x7fffe00090b0)
at gstbasetransform.c:2153
#7 0x00007ffff7b448c9 in gst_pad_chain_data_unchecked (data=0x7fffe00090b0,
type=<optimised out>, pad=0x70a290) at gstpad.c:3618
#8 gst_pad_push_data (pad=0x70a060, type=<optimised out>, data=<optimised
out>) at gstpad.c:3835
#9 0x00007ffff5307070 in gst_base_src_loop (pad=0x70a060) at gstbasesrc.c:2694
#10 0x00007ffff7b7221f in gst_task_func (task=0x735120) at gsttask.c:316
#11 0x00007ffff75de738 in g_thread_pool_thread_proxy (data=<optimised out>) at
gthreadpool.c:309
#12 0x00007ffff75ddeb5 in g_thread_proxy (data=0x711e80) at gthread.c:797
#13 0x00007ffff735de9a in start_thread (arg=0x7fffe9141700) at
pthread_create.c:308
#14 0x00007ffff708b4bd in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#15 0x0000000000000000 in ?? ()
(gdb) c
Continuing.
2:02:52.298974593 28301 0x711e80 WARN basetransform
gstbasetransform.c:1694:default_copy_metadata:<glfilterlaplacian0> buffer (nil)
not writable
2:02:52.299020408 28301 0x711e80 WARN basetransform
gstbasetransform.c:1589:default_prepare_output_buffer:<glfilterlaplacian0>
warning: could not copy metadata
2:02:52.299275398 28301 0x711e80 INFO GST_ERROR_SYSTEM
gstelement.c:1802:gst_element_message_full:<glfilterlaplacian0> posting
message: could not copy metadata
2:02:52.299888185 28301 0x711e80 INFO GST_ERROR_SYSTEM
gstelement.c:1825:gst_element_message_full:<glfilterlaplacian0> posted warning
message: could not copy metadata
2:02:52.299986731 28301 0x711e80 LOG GST_BUFFER
gstbuffer.c:492:_gst_buffer_dispose: release 0x7fffe00090b0 to pool 0x70b1e0
2:02:52.300023048 28301 0x711e80 LOG bufferpool
gstbufferpool.c:1119:default_release_buffer:<glbufferpool0> released buffer
0x7fffe00090b0
2:02:52.300051892 28301 0x711e80 LOG GST_POLL
gstpoll.c:186:raise_wakeup: 0x7fffe0003050: raise
2:02:52.300126622 28301 0x711e80 WARN basetransform
gstbasetransform.c:2082:gst_base_transform_handle_buffer:<glfilterlaplacian0>
could not get buffer from pool: flushing
2:02:52.300161054 28301 0x711e80 LOG GST_SCHEDULING
gstpad.c:3622:gst_pad_chain_data_unchecked:<glfilterlaplacian0:sink> called
chainfunction &gst_base_transform_chain with buffer 0x7fffe00090b0, returned
flushing
2:02:52.300234317 28301 0x711e80 INFO basesrc
gstbasesrc.c:2700:gst_base_src_loop:<gltestsrc0> pausing after gst_pad_push() =
flushing
2:02:52.300264489 28301 0x711e80 DEBUG basesrc
gstbasesrc.c:2736:gst_base_src_loop:<gltestsrc0> pausing task, reason flushing
and the pipeline shuts down properly.
--
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