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

Rob robert.swain at
Fri Oct 26 13:34:18 PDT 2012


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

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.

I need to think some more but perhaps I'll find more time to respond
at greater length on Monday. I'm certainly interested in what you're
doing though.

Best regards,

Sorry for replying above your mail. Writing on my phone...

On 26/10/2012, Krzysztof Konopko <krzysztof.konopko at> wrote:
> On 26 October 2012, Rob <robert.swain at
> <>> wrote:
>> Hello,
>> On 26 October 2012 15:19, Krzysztof Konopko
>> <krzysztof.konopko at
> <>> wrote:
>>> / I'm also considering to write my own timeshifter plugin which would
> take
>> />/ advantage of mpegtsparser and queue2. In this situation I would
> have to
>> />/ implement an "indexer" and a "seeker". In this case the pugin would
>> be
>> />/ MPEG-TS agnostic. Is there anything you would suggest to look at
> in this
>> />/ case?
>> /
>> A media-agnostic time-shift element would be very welcome by the
>> community but it's not an easy task. Do you intend to conduct your
>> development efforts openly such that you might be open to community
>> input on the design of the solution?
> Yes, I guess it's not trivial although the work would be driven by a
> commercial product needs (YouView set top box). I'd definitely like to
> do the work openly.
> The draft concept is as follows:
>                                 +-------+
>               +---------------->| queue |-------------------+
>              /                  +-------+                    \
> +--------+
>   +---------+                                                 +-->|
> |
> ->| indexer |                                                     | seeker
> |
>   +---------+                                                 +-->|
> |
>              \   +----------+                   +---------+  /
> +--------+
>               +->| filesink |                +->| filesrc |-+
>                  +----------+        ___    /   +---------+
>                              \     _|_  |  /
>                               +-->|   | |-+
>                                   |DB |_|
>                                   |___|
> Originally storing indexes was intended to be handled by queue2 but the
> draft above decouples things even further as the index DB source could
> be anything (e. g. a pre-built DB on a server with some VOD assets).
> P. S.
> Apologise for any "confidentiality" footers (I'm working on getting rid
> of them).
> 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
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at

More information about the gstreamer-devel mailing list