implementing timeshifter - is GstIndex going to be ever public again?

William Manley william.manley at
Mon Oct 29 04:19:41 PDT 2012

On 26/10/12 21:34, Rob wrote:
> I've been pondering timeshift myself recently and I think the Fluendo
> element approach did a good job though much of the functionality now
> lies in queue2 and it may need some adjustment for optimisation for
> some other use cases. I was thinking that some things from queue2 and
> elsewhere need refactoring and something building on top of that.
> I checked out YouView earlier. It looks like it mostly deals with on
> demand services, right? If so, what protocols do those services offer
> that your platform uses? Maybe some of queue2's existing modes will
> suffice.

It's not just on-demand services.  There are also live sources for which
we must time shift and PVR functionality, again where indexing is important.

> As for your design, I was thinking of something similar once queue2
> and some ringbuffer and linear file buffer code had been refactored it
> of queue2. You need something to provide the index, it's good for it
> to be possible to write the index to disk for more seekable
> recordings, due to the use case of transitioning from time shift to
> recording it's useful to support both. And more.  :-) One difference I
> was thinking of was like the Fluendo element to have some data in RAM
> as well as writing to a disk cache and have the in memory data be
> centred at the play position so that you have data from the proximity
> in memory when looking at past data. Then trying to maintain it as is
> sensible and in a fashion similar to the Fluendo element.

Something I quite like about Krysz's approach is that:
  * The configuration is specified at run time rather than having to
    bake in any of the details in a compile-time.  e.g. you could
    replace queue2 with some other means of buffering the data.
  * It doesn't require refactoring existing elements, re-use is provided
    by re-using existing gstreamer elements as is.
  * Attaching timing information is the responsibility of the parsers
    rather than needing a different timeshifting element for each type
    of stream.
  * If it would be more convenient or more sophisticated interactions
    between the elements were required a timeshiftbin could be created.


This transmission contains information that may be confidential and contain personal views which are not necessarily those of YouView TV Ltd. YouView TV Ltd (Co No:7308805) is a limited liability company registered in England and Wales with its registered address at YouView TV Ltd, 3rd Floor, 10 Lower Thames Street, London, EC3R 6YT. For details see our web site at

More information about the gstreamer-devel mailing list