Support for keyframe-only trickmode
Wim Taymans
wim.taymans at gmail.com
Thu Nov 22 02:33:08 PST 2012
On 11/22/2012 10:03 AM, Rob wrote:
> On Wednesday, November 21, 2012, Tim-Philipp Müller wrote:
>
> On Wed, 2012-11-21 at 13:56 -0800, gimmeamilk wrote:
>
> > My application needs to support keyframe-only high-speed
> trickmode, both
> > forward and reverse. So to get reasonable performance I need to
> ensure only
> > keyframes are pushed from as far upstream as possible.
> >
> > I was thinking of making a "KeyframeFilter" plugin that sits
> just downstream
> > from the demuxer and, when enabled, only passes down the
> keyframes. (it
> > would check the GST_BUFFER_FLAG_DELTA_UNIT on the incoming
> buffers to decide
> > which were keyframes).
> >
> > Is this a reasonable solution? I couldn't find any support for
> this within
> > the demuxers themselves (specifically qtdemux), so I suppose
> this is the
> > next best thing in terms of efficiency. Or has a better way
> already been
> > implemented?
>
> There's a SKIP seek flag that's supposed to be for this. You could
> just
> implement that in the demuxer(s) in question, shouldn't be too hard,
> hopefully. (1.0 please).
>
>
> Is the SKIP seek just a tweak for the demuxer if you know better than
> to just let QoS do the adaptation in decodes...?
From the part-trickmodes.txt desgin doc:
When the SKIP flag is set, frames can be dropped in the elements. If S
is the
speedup factor, a good algorithm for implementing frame skipping is to
send audio in
chunks of Nms (usualy 300ms is good) and then skip ((S-1) * Nns) of
audio data.
For the video we send only the keyframes in the (S * Nns) interval. In
this
case, the demuxer would scale the timestamps and would set an applied
rate of S.
I would like to see this implemented at some point.
Wim
>
> Best regards,
> Rob
>
>
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
More information about the gstreamer-devel
mailing list