summaryrefslogtreecommitdiff
path: root/plugins/elements
AgeCommit message (Collapse)AuthorFilesLines
2014-01-08multiqueue: Allow growing a queue if all other queues are not linkedSebastian Dröge1-6/+14
See https://bugzilla.gnome.org/show_bug.cgi?id=719893
2014-01-07filesrc: don't try to seek to -1 offsetWim Taymans1-1/+1
The offset can be -1 when we are configured in TIME format. Instead of failing the seek and erroring, do what and offset of -1 is supposed to do and simply read from the current offset.
2014-01-03multiqueue: Fix hanging if shut down while handling a serialized queryYanpingZhang1-0/+3
https://bugzilla.gnome.org/show_bug.cgi?id=721253
2014-01-02tee: Remove dyn lockSebastian Dröge2-14/+0
It was used for pad-alloc in 0.10 but currently is completely unused and not necessary. All pad access is protected by the tee object lock and keeping another reference to the current pad.
2014-01-02tee: Keep another ref to our one and only srcpad around while pushingSebastian Dröge1-0/+6
A pad probe on that pad might otherwise just release the pad, drop the last reference and cause great misery. https://bugzilla.gnome.org/show_bug.cgi?id=721300
2013-12-30queue: Remove unneeded checksEdward Hervey1-13/+11
item is guaranteed to be non-null. COVERITY CID 1037152 COVERITY CID 1037153
2013-12-20funnel: Setting the PROXY_CAPS flag on the srcpad does not make much senseSebastian Dröge1-2/+0
funnel outputs whatever one of the upstreams currently outputs, a caps query to a random upstream does not give the right answer here.
2013-12-20funnel: Proxy CAPS and ALLOCATION queriesSebastian Dröge1-0/+6
2013-12-20multiqueue: post 100% buffering if single queue is not linkedThiago Santos1-1/+7
This makes buffering stop in case a stream switch happens. This is important for adaptive streams that can disable not-linked streams to avoid consuming the network bandwidth. https://bugzilla.gnome.org/show_bug.cgi?id=719575
2013-12-11queue: don't ignore event return valueWim Taymans2-18/+14
Pass the event return value upstream. Remove strange goto construct.
2013-12-07docs: Fix typos in function/object descriptionsSebastian Rasmussen5-11/+11
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=720029
2013-12-03multiqueue: Wake up on reconfigure eventOlivier Crête1-1/+3
After patch bda406c4, the state of the singlequeue was set to OK, but nothing would then wake up the thread, as the other wakeup functions only look at singlequeues that are marked as having received as not-linked. https://bugzilla.gnome.org/show_bug.cgi?id=708200
2013-12-03docs: add missing docs, fixing doc errorsSebastian Rasmussen2-6/+19
* add many missing declarations to sections * GstController has been removed, update docs * skip GstIndex when generating documentation * rephrase so gtkdoc doesn't imagine return value * add missing argument description for gst_context_new() * document GstOutputSelectorPadNegotiationMode and move to header-file https://bugzilla.gnome.org/show_bug.cgi?id=719614
2013-11-29inputselector: handle gap eventsThiago Santos1-0/+21
Use gap events to advance the selector's pad position. This is relevant to keep sync_streams mode working when one of the streams doesn't have data all the time.
2013-11-11queue: Don't use gst_buffer_get_size() when possibleEdward Hervey1-2/+7
Makes qst_queue_locked_dequeue 20% faster
2013-11-06valve: proxy caps and allocationWim Taymans1-0/+2
Proxy the caps queries on the srcpad as well. Proxy the allocation query on the sinkpad.
2013-10-13tests/filesrc: Set location in wrong stateSebastian Rasmussen1-1/+1
Also remove incorrect comment about code possibly not being reachable that is now exercised by the filesrc unit test. https://bugzilla.gnome.org/show_bug.cgi?id=709831
2013-09-24Revert "Potential GstContext regression"Sebastian Dröge2-264/+16
This reverts commit e658379534eb4a90b654d90f1d0bdf86f37c6e31. This test commit should've never been pushed. Oops.
2013-09-24Potential GstContext regressionAlex Ashley2-16/+264
Since the refactoring of GstContext (commits qc9fa2771b508e9aaeecc700e66e958190476f, a7f5dc8b8af837f01782d1572379948ff62daab7, 690326f906dc82e41ea58b81cdb2e3e88b754, d367dc1b0d4ecb37f4d27267e03d7bf0c6c06a6, and 82d158aed3f2e8545e1e7d35085085ff58f18) I am no longer able to get a shared context for an element that is used twice in a pipeline. I used the documentation and eglglessink as my reference for implementing the GstContext logic. As the code was tied to a hardware decoder, I have ported the GstContext code to fakesink to show the problem. Using the old API a single ExampleMgr instance is created, but using the new API each element is creating its own instance.
2013-09-10queue2: Only update current level if we already downloaded a rangeSebastian Dröge1-1/+2
Otherwise queue->level is NULL and dereferencing that is not a good idea in general. https://bugzilla.gnome.org/show_bug.cgi?id=707648
2013-09-09Update the buffering state before stalling for more dataGustavo Noronha Silva1-0/+9
In some cases the wait for more data was happening without updating the buffering state, meaning the API user would not be able to notice it should pause the pipeline and update UI to indicate that is the case, the video would likely stutter instead. https://bugzilla.gnome.org/show_bug.cgi?id=707648
2013-09-04typefind: Add missing break after handling the GAP eventSebastian Dröge1-0/+1
Thanks to Edward Hervey for noticing.
2013-09-04multiqueue: Don't reduce single queue visible size below its current levelMatej Knopp1-2/+26
If the multiqueue has automatically grown chances are good that we will cause the pipeline to starve if the maximum level is reduced below that automatically grown size. https://bugzilla.gnome.org/show_bug.cgi?id=707156
2013-09-02outputselector: Don't adjust segment->start to the current time when ↵Sebastian Dröge1-6/+1
switching pads This does not make any sense at all and breaks timestamp->running_time calculations in unpredictable ways. https://bugzilla.gnome.org/show_bug.cgi?id=707130
2013-08-30capsfilter: Delete link directly in pending_events.Mathieu Duponchelle1-5/+5
When removing a segment event. https://bugzilla.gnome.org/show_bug.cgi?id=707088
2013-08-27filesink: please gcc (avoid a warn_unused_result warning)Alessandro Decina1-1/+2
2013-08-27filesink: flush (discard data) on FLUSH_STOPAlessandro Decina1-0/+9
Reset the write position to 0 and truncate the file on FLUSH_STOP.
2013-08-20queue: Properly unlock the sinkpad streaming thread when deactivating the padSebastian Dröge1-0/+5
https://bugzilla.gnome.org/show_bug.cgi?id=705835
2013-08-20queue2: Properly unlock the sinkpad streaming thread when deactivating the padSebastian Dröge1-0/+4
https://bugzilla.gnome.org/show_bug.cgi?id=706360
2013-08-19multiqueue: Clean up after the streaming thread has stoppedSebastian Dröge1-0/+12
https://bugzilla.gnome.org/show_bug.cgi?id=705835
2013-08-19queue2: Clean up after the streaming thread has stoppedSebastian Dröge1-0/+6
https://bugzilla.gnome.org/show_bug.cgi?id=705835
2013-08-19queue: Clean up after the streaming thread has stoppedSebastian Dröge1-1/+6
https://bugzilla.gnome.org/show_bug.cgi?id=705835
2013-08-16queue2: don't crash on EOS if queue is emptyTim-Philipp Müller1-0/+4
Fixes spurious crash in test_simple_shutdown_while_running unit test.
2013-08-16queue2: don't change global buffering state from within query handlerTim-Philipp Müller1-24/+25
When a buffering query is handled it uses the get_buffering_percent() function to get some statitics. Unfortunately this function also calculates whether the queue should be buffering and adapts the global queue2 state in case of state transitions from/to buffering (including whether a buffering message was posted on the bus!). This means that there is a race which can cause buffering messages to never posted if the global state changes happen as a result of aa query instead of resulting from bytes flowing in/out. Spotted by Sjoerd Simons. Change to only query state in get_buffering_percent() and update state only in update_buffering(). https://bugzilla.gnome.org/show_bug.cgi?id=705332
2013-08-16queue2: update buffering when changing capacityWim Taymans1-2/+4
When the capacity of the queue changes, make sure we post an updated buffering message because we might suddenly have completed the buffering stage.
2013-07-31queue2: Fix backwards seeks into undowloaded rangesSjoerd Simons1-15/+7
When in download buffering mode queue2 didn't check if a range offset is in a undownloaded range before the currently in-progress range. Causing seeks to an earlier offset to, well, take a while.
2013-07-29queue2: Forward the schedule query upstreamSjoerd Simons1-0/+5
When asked about the scheduling flags first check with upstream and simply add the _SEEKABLE flag when using a temporary file as storage. This enables the forwarding of _SEQUENTIAL and _BANDWIDTH_LIMITED from sources if needed. https://bugzilla.gnome.org/show_bug.cgi?id=704927
2013-07-29typefind: Only advance offset by the number of bytes we actually readSebastian Dröge1-1/+1
There might be a short read at EOS.
2013-07-23input-selector: Fix missing pad activation notificationArnaud Vrac1-2/+2
A new active pad might not be notified in some cases, which results in the current track number not being set in playbin. The active-pad notification is only sent in the chain and sink_event functions, and only when the buffer or event that triggered the active pad selection is from the newly activated pad. So in the other case the notification will never be sent. https://bugzilla.gnome.org/show_bug.cgi?id=704691
2013-07-22inputselector: Don't push new stream-start events on stream change unless ↵Sebastian Dröge2-0/+22
they all have group ids https://bugzilla.gnome.org/show_bug.cgi?id=704408
2013-07-22typefind: Use new group-id in stream-start eventSebastian Dröge1-1/+4
2013-07-16multiqueue: only block serialized query when it's safeSebastian Dröge1-11/+24
We must be certain that we don't cause a deadlock when blocking the serialized queries. One such deadlock can happen when we are buffering and downstream is blocked in preroll and a serialized query arrives. Downstream will not unblock (and allow our query to execute) until we complete buffering and buffering will not complete until we can answer the query.. https://bugzilla.gnome.org/show_bug.cgi?id=702840
2013-07-12inputselector: Deactivate and remove pad without the inputselector lockSebastian Dröge1-1/+1
Otherwise we might get deadlocks caused by lock order inversion: During the chain function the stream lock is first locked and then the inputselector lock. During pad release we first locked the inputselector lock and then deactivating the pad would lock the stream lock. There's no reason why the inputselector lock should be required while deactivating and removing the pad, it's only needed before. https://bugzilla.gnome.org/show_bug.cgi?id=704002
2013-07-10inputselector: Keep previous active sinkpad around until we're done with itSebastian Dröge1-3/+5
Otherwise we'll send a new segment event downstream for each buffer.
2013-07-01funnel: Re-push all sticky events when buffers come from a different padOlivier Crête2-209/+40
Don't special case segment/caps, just push all sticky events when they are received on the currently active pad or when the active pad changes.
2013-07-01funnel: Use default pad function for upstream event/queriesOlivier Crête1-52/+2
The default functions in 1.x already do the right thing
2013-06-24queue2: only block serialized query when it's safeWim Taymans1-2/+9
We must be certain that we don't cause a deadlock when blocking the serialized queries. One such deadlock can happen when we are buffering and downstream is blocked in preroll and a serialized query arrives. Downstream will not unblock (and allow our query to execute) until we complete buffering and buffering will not complete until we can answer the query.. Fixes https://bugzilla.gnome.org/show_bug.cgi?id=702840
2013-06-19queue: Don't hold the queue mutex while doing serialized queries downstreamSebastian Dröge1-1/+12
https://bugzilla.gnome.org/show_bug.cgi?id=702520
2013-06-06input-selector: send notify::active signal for input-selector pads.Brendan Long1-3/+21
https://bugzilla.gnome.org/show_bug.cgi?id=701319
2013-06-04input-selector: return FALSE for "active" property if selector is NULLBrendan Long1-3/+7
https://bugzilla.gnome.org/show_bug.cgi?id=701323