gstreamer/plugins/elements
Vincent Penquerc'h f3dd7937a2 queue2: fix event/preroll deadlock differently
The qlock is released between popping a buffer from the queue
and pushing it. When this buffer causes the sink to wait in
preroll, this lets a query see that the queue is empty, and
push the query then wait for it to be serviced. However, this
will not be done till after peroll, and this will thus block.
If upstream was waiting on buffering to reach 100% before
switching to PLAYING, a deadlock would ensue.

This had been fixed recently by failing queries when the
queue2 was buffering, but this happens to break some other
case (playbin on a local http server and matroska), while
this patch works for both.

See https://bugzilla.gnome.org/show_bug.cgi?id=728345
2014-04-16 15:17:04 +01:00
..
.gitignore ignore more 2005-06-17 09:12:33 +00:00
gstcapsfilter.c capsfilter: do not forget to push pending events 2014-01-29 14:59:43 -03:00
gstcapsfilter.h capsfilter: Send all events that should happen after CAPS after the CAPS event 2013-05-09 09:32:49 +02:00
gstelements.c elements: fix leading space in plugin description string 2012-11-06 16:58:04 +00:00
gstfakesink.c fakesink, identity, fakesrc: fix debug printing if TAG_MEMORY buffer flag 2014-03-06 20:40:46 +00:00
gstfakesink.h Revert "Potential GstContext regression" 2013-09-24 12:47:52 +02:00
gstfakesrc.c fakesink, identity, fakesrc: fix debug printing if TAG_MEMORY buffer flag 2014-03-06 20:40:46 +00:00
gstfakesrc.h Fix FSF address 2012-11-03 20:44:48 +00:00
gstfdsink.c Fix FSF address 2012-11-03 20:44:48 +00:00
gstfdsink.h Fix FSF address 2012-11-03 20:44:48 +00:00
gstfdsrc.c docs: Fix typos in function/object descriptions 2013-12-07 17:11:12 +00:00
gstfdsrc.h Fix FSF address 2012-11-03 20:44:48 +00:00
gstfilesink.c filesink: please gcc (avoid a warn_unused_result warning) 2013-08-27 09:31:22 +02:00
gstfilesink.h Fix FSF address 2012-11-03 20:44:48 +00:00
gstfilesrc.c filesrc: no need for a translated message for impossible error cases 2014-04-07 15:38:17 +01:00
gstfilesrc.h Fix FSF address 2012-11-03 20:44:48 +00:00
gstfunnel.c funnel: Setting the PROXY_CAPS flag on the srcpad does not make much sense 2013-12-20 14:30:22 +01:00
gstfunnel.h funnel: Re-push all sticky events when buffers come from a different pad 2013-07-01 20:45:42 -04:00
gstidentity.c fakesink, identity, fakesrc: fix debug printing if TAG_MEMORY buffer flag 2014-03-06 20:40:46 +00:00
gstidentity.h Fix FSF address 2012-11-03 20:44:48 +00:00
gstinputselector.c input-selector: Hold pad object lock when changing tags 2014-04-11 22:39:36 +10:00
gstinputselector.h inputselector: Don't push new stream-start events on stream change unless they all have group ids 2013-07-22 15:30:10 +02:00
gstmultiqueue.c multiqueue: Wake up the queues if limits are changing in a way that would unblock the queue 2014-04-09 15:57:35 +02:00
gstmultiqueue.h Fix FSF address 2012-11-03 20:44:48 +00:00
gstoutputselector.c outputselector: respect the 'negotiation-mode' property 2014-01-30 17:06:00 -03:00
gstoutputselector.h docs: add missing docs, fixing doc errors 2013-12-03 00:11:59 +00:00
gstqueue.c queue: queue2: preserve last flow result when pushing events 2014-03-10 10:10:20 -03:00
gstqueue.h queue: Fix handling of serialized queries 2013-05-27 15:59:07 +02:00
gstqueue2.c queue2: fix event/preroll deadlock differently 2014-04-16 15:17:04 +01:00
gstqueue2.h queue2: fix event/preroll deadlock differently 2014-04-16 15:17:04 +01:00
gsttee.c tee: use store_sticky events add add more logging 2014-03-11 21:50:35 +01:00
gsttee.h tee: Make sure to give pads the name that was requested 2014-01-14 16:45:53 +01:00
gsttypefindelement.c docs: Fix typos in function/object descriptions 2013-12-07 17:11:12 +00:00
gsttypefindelement.h Fix FSF address 2012-11-03 20:44:48 +00:00
gstvalve.c valve: proxy caps and allocation 2013-11-06 10:15:59 +01:00
gstvalve.h Fix FSF address 2012-11-03 20:44:48 +00:00
Makefile.am gst: Add better support for static plugins 2013-04-15 15:52:18 +02:00