GNOME Bugzilla – Bug 586033
[adder] seeking on live sources is inconsistent
Last modified: 2010-04-30 07:33:32 UTC
I made a patch to add another test-case for adder in bug #585708. I tests a pipeline like: live-src ! adder name=mix ! sink src ! mix. and what hapens when seeking on it. With the recent fixes the seeking fails on the live-src (as its currently supposed to). If one uses audiotestsrc is-live=true it actually succeeds and I also like the behaviour. What if we make live src to support seeking. A seek would configure the basetime for subsequent buffers and the eventual stop-time would cause then to return a GST_FLOW_UNEXPECTED. Whats the use-case? I see two: 1) A dub-over in a video/audio editor. One plays a sequence in a lop (segmented seek from A to B) and records a new video/audio sequence for same region. Here the looping would fail right now and one would seek one the sub-bins explicitely (or is there any other way). 2) Live FX. I play a song in buzztard and have a live source there where I sing or play guitar. This right now never goes to EOS as the live-source does not send a eos. Configuring num-buffers and blocksize is not really feasible, as if that is combined e.g. with toggling loop on and off one does not know num-buffers beforehand. Right now I can only poll the playback position and stop from the application side. Does anyone see a problem of livesources supporting seeks?
An alternative would be to change the current aggregation of gst_pad_push_event() to return TRUE if atleast one event suceeded.
Created attachment 137205 [details] [review] WIP for how adder works for me The cheks around the flush_stop in forward_event_func() should be fine. I noone objects, I make that a commit of its own. Next we need to discuss the negation of the result aggregation. Finally I wonder why we only send the newsegment in case of a flushing seek. Adder has a quite unique way of timestamping outgoing buffers and without the newsegment loops are broken. They still loop, but the position does now warp back.
Created attachment 137274 [details] [review] WIP for how adder works for me The flush_stop is fixed upstream.
Making a release blocker regarding the newsegment part.
Removing blocker, as newsegment change has been reverted.
commit 3d73a7458a7030470f94aed4921d9256c0f0c250 Author: Stefan Kost <ensonic@users.sf.net> Date: Sat Oct 10 00:32:04 2009 +0300 adder: make events succeed, if they succed on atleast one pad