[Bug 701856] qtdemux: Does allocation queries before setting caps on all pads
GStreamer (bugzilla.gnome.org)
bugzilla at gnome.org
Sat Jun 8 09:40:25 PDT 2013
https://bugzilla.gnome.org/show_bug.cgi?id=701856
GStreamer | gst-plugins-good | git
Sebastian Dröge <slomo> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
CC| |slomo at circular-chaos.org
Component|don't know |gst-plugins-good
Target Milestone|HEAD |1.1.2
Summary|A recent change somewhere |qtdemux: Does allocation
|makes that file unplayable |queries before setting caps
|/ discoverable. |on all pads
Ever Confirmed|0 |1
Severity|normal |blocker
--- Comment #1 from Sebastian Dröge <slomo at circular-chaos.org> 2013-06-08 16:40:16 UTC ---
Yes, that's because qtdemux is broken and decodebin became a bit more picky
about that :)
Please be more descriptive in the bug reports in the future. Saying that it
never pre-rolls for example would be more descriptive, and backtraces of all
threads would help too usually for such things :)
Problem is that qtdemux does allocation queries before setting caps on all
pads. Thread 5 in the backtrace below. I think it does that in that place, and
also another one. Needs to be fixed.
Thread 7 (Thread 0x7fffecb50700 (LWP 5128)):
#0 pthread_cond_wait@@GLIBC_2.3.2 ()
at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1 0x00007ffff7714a4f in g_cond_wait (cond=cond at entry=0x7fffe4019048,
mutex=mutex at entry=0x7fffe4018fd8)
at /tmp/buildd/glib2.0-2.36.1/./glib/gthread-posix.c:756
#2 0x00007ffff7f1ad37 in do_probe_callbacks (pad=pad at entry=0x7fffe4018fc0,
info=info at entry=0x7fffecb4fc90, defaultval=defaultval at entry=GST_FLOW_OK)
at gstpad.c:3189
#3 0x00007ffff7f5a86d in gst_pad_peer_query (pad=0x7fffe4018fc0,
query=query at entry=0x7fffe401d720) at gstpad.c:3579
#4 0x00007ffff7e93ddb in gst_single_queue_push_one (object=0x7fffe401d720,
sq=0x7fffe401da30, mq=0x7fffe400f020) at gstmultiqueue.c:1089
#5 gst_multi_queue_loop (pad=<optimized out>) at gstmultiqueue.c:1307
#6 0x00007ffff7f82659 in gst_task_func (task=0x775c60) at gsttask.c:316
#7 0x00007ffff76f9772 in g_thread_pool_thread_proxy (data=<optimized out>)
at /tmp/buildd/glib2.0-2.36.1/./glib/gthreadpool.c:309
#8 0x00007ffff76f8f35 in g_thread_proxy (data=0x7fffe401d540)
at /tmp/buildd/glib2.0-2.36.1/./glib/gthread.c:798
#9 0x00007ffff7273e0e in start_thread (arg=0x7fffecb50700)
at pthread_create.c:311
#10 0x00007ffff6fa795d in clone ()
---Type <return> to continue, or q <return> to quit---
at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113
Thread 6 (Thread 0x7fffee295700 (LWP 5127)):
#0 pthread_cond_wait@@GLIBC_2.3.2 ()
at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1 0x00007ffff7714a4f in g_cond_wait (cond=cond at entry=0x419778,
mutex=mutex at entry=0x419768)
at /tmp/buildd/glib2.0-2.36.1/./glib/gthread-posix.c:756
#2 0x00007ffff7e5ae72 in _gst_data_queue_wait_non_empty (
queue=queue at entry=0x419700) at gstdataqueue.c:494
#3 0x00007ffff7e5c286 in gst_data_queue_pop (queue=0x419700,
item=item at entry=0x7fffee294dc8) at gstdataqueue.c:536
#4 0x00007ffff7e93394 in gst_multi_queue_loop (pad=<optimized out>)
at gstmultiqueue.c:1187
#5 0x00007ffff7f82659 in gst_task_func (task=0x775b40) at gsttask.c:316
#6 0x00007ffff76f9772 in g_thread_pool_thread_proxy (data=<optimized out>)
at /tmp/buildd/glib2.0-2.36.1/./glib/gthreadpool.c:309
#7 0x00007ffff76f8f35 in g_thread_proxy (data=0x7fffe4006800)
at /tmp/buildd/glib2.0-2.36.1/./glib/gthread.c:798
#8 0x00007ffff7273e0e in start_thread (arg=0x7fffee295700)
at pthread_create.c:311
#9 0x00007ffff6fa795d in clone ()
at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113
---Type <return> to continue, or q <return> to quit---
Thread 5 (Thread 0x7fffeea96700 (LWP 5126)):
#0 pthread_cond_wait@@GLIBC_2.3.2 ()
at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1 0x00007ffff7714a4f in g_cond_wait (cond=cond at entry=0x7fffe401dbc8,
mutex=mutex at entry=0x7fffe400f188)
at /tmp/buildd/glib2.0-2.36.1/./glib/gthread-posix.c:756
#2 0x00007ffff7e91a4b in gst_multi_queue_sink_query (pad=<optimized out>,
parent=0x7fffe400f020, query=0x7fffe401d720) at gstmultiqueue.c:1626
#3 0x00007ffff7f5a38c in gst_pad_query (pad=pad at entry=0x7fffe4018d90,
query=query at entry=0x7fffe401d720) at gstpad.c:3459
#4 0x00007ffff7f5a972 in gst_pad_peer_query (pad=0x7fffe40182a0,
query=query at entry=0x7fffe401d720) at gstpad.c:3590
#5 0x00007fffeeda0fd7 in qtdemux_do_allocation (qtdemux=0x7fffe804c040,
stream=0x7fffe400af00) at qtdemux.c:5458
#6 0x00007fffeeda3206 in gst_qtdemux_add_stream (list=0x7fffe4006540,
stream=0x7fffe400af00, qtdemux=0x7fffe804c040) at qtdemux.c:5692
#7 qtdemux_expose_streams (qtdemux=qtdemux at entry=0x7fffe804c040)
at qtdemux.c:8317
#8 0x00007fffeedb551f in gst_qtdemux_loop_state_header (
qtdemux=0x7fffe804c040) at qtdemux.c:3105
#9 gst_qtdemux_loop (pad=0x7529e0) at qtdemux.c:4212
#10 0x00007ffff7f82659 in gst_task_func (task=0x7755a0) at gsttask.c:316
---Type <return> to continue, or q <return> to quit---
#11 0x00007ffff76f9772 in g_thread_pool_thread_proxy (data=<optimized out>)
at /tmp/buildd/glib2.0-2.36.1/./glib/gthreadpool.c:309
#12 0x00007ffff76f8f35 in g_thread_proxy (data=0x7fffe8043f20)
at /tmp/buildd/glib2.0-2.36.1/./glib/gthread.c:798
#13 0x00007ffff7273e0e in start_thread (arg=0x7fffeea96700)
at pthread_create.c:311
#14 0x00007ffff6fa795d in clone ()
at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113
Thread 4 (Thread 0x7fffef7fe700 (LWP 5125)):
#0 0x00007ffff6f9c1bd in poll () at ../sysdeps/unix/syscall-template.S:81
#1 0x00007ffff76d51fc in g_main_context_poll (n_fds=1, fds=0x7fffe00008c0,
timeout=-1, context=0x6d9b40, priority=<optimized out>)
at /tmp/buildd/glib2.0-2.36.1/./glib/gmain.c:3995
#2 g_main_context_iterate (context=context at entry=0x6d9b40,
block=block at entry=1, dispatch=dispatch at entry=1, self=<optimized out>)
at /tmp/buildd/glib2.0-2.36.1/./glib/gmain.c:3696
#3 0x00007ffff76d5324 in g_main_context_iteration (context=0x6d9b40,
may_block=may_block at entry=1)
at /tmp/buildd/glib2.0-2.36.1/./glib/gmain.c:3762
#4 0x00007ffff76d5381 in glib_worker_main (data=<optimized out>)
at /tmp/buildd/glib2.0-2.36.1/./glib/gmain.c:5427
#5 0x00007ffff76f8f35 in g_thread_proxy (data=0x74f190)
---Type <return> to continue, or q <return> to quit---
at /tmp/buildd/glib2.0-2.36.1/./glib/gthread.c:798
#6 0x00007ffff7273e0e in start_thread (arg=0x7fffef7fe700)
at pthread_create.c:311
#7 0x00007ffff6fa795d in clone ()
at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113
Thread 3 (Thread 0x7fffeffff700 (LWP 5124)):
#0 pthread_cond_wait@@GLIBC_2.3.2 ()
at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1 0x00007ffff7714a4f in g_cond_wait (cond=cond at entry=0x775060,
mutex=mutex at entry=0x775018)
at /tmp/buildd/glib2.0-2.36.1/./glib/gthread-posix.c:756
#2 0x00007ffff7f82804 in gst_task_func (task=0x775000) at gsttask.c:301
#3 0x00007ffff76f9772 in g_thread_pool_thread_proxy (data=<optimized out>)
at /tmp/buildd/glib2.0-2.36.1/./glib/gthreadpool.c:309
#4 0x00007ffff76f8f35 in g_thread_proxy (data=0x74f230)
at /tmp/buildd/glib2.0-2.36.1/./glib/gthread.c:798
#5 0x00007ffff7273e0e in start_thread (arg=0x7fffeffff700)
at pthread_create.c:311
#6 0x00007ffff6fa795d in clone ()
at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113
Thread 2 (Thread 0x7ffff4dec700 (LWP 5123)):
---Type <return> to continue, or q <return> to quit---
#0 0x00007ffff727aacd in nanosleep () at ../sysdeps/unix/syscall-template.S:81
#1 0x00007ffff76fa572 in g_usleep (microseconds=microseconds at entry=50000)
at /tmp/buildd/glib2.0-2.36.1/./glib/gtimer.c:261
#2 0x00007ffff7e121cf in gst_xvimagesink_event_thread (xvimagesink=0x412f90)
at xvimagesink.c:582
#3 0x00007ffff76f8f35 in g_thread_proxy (data=0x74f370)
at /tmp/buildd/glib2.0-2.36.1/./glib/gthread.c:798
#4 0x00007ffff7273e0e in start_thread (arg=0x7ffff4dec700)
at pthread_create.c:311
#5 0x00007ffff6fa795d in clone ()
at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113
Thread 1 (Thread 0x7ffff7ebc700 (LWP 5103)):
#0 0x00007ffff6f9c1bd in poll () at ../sysdeps/unix/syscall-template.S:81
#1 0x00007ffff76d51fc in g_main_context_poll (n_fds=2, fds=0x6d31e0,
timeout=-1, context=0x6d3000, priority=<optimized out>)
at /tmp/buildd/glib2.0-2.36.1/./glib/gmain.c:3995
#2 g_main_context_iterate (context=0x6d3000, block=block at entry=1,
dispatch=dispatch at entry=1, self=<optimized out>)
at /tmp/buildd/glib2.0-2.36.1/./glib/gmain.c:3696
#3 0x00007ffff76d56da in g_main_loop_run (loop=0x42a2e0)
at /tmp/buildd/glib2.0-2.36.1/./glib/gmain.c:3895
#4 0x00007ffff7f2f654 in gst_bus_poll (bus=bus at entry=0x4879d0,
---Type <return> to continue, or q <return> to quit---
events=events at entry=GST_MESSAGE_ANY, timeout=<optimized out>)
at gstbus.c:1082
#5 0x0000000000404cd8 in event_loop (pipeline=0x766150,
blocking=blocking at entry=1, do_progress=do_progress at entry=1,
target_state=target_state at entry=GST_STATE_PAUSED) at gst-launch.c:519
#6 0x0000000000403d2a in main (argc=7, argv=0x7fffffffba98)
at gst-launch.c:1066
--
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