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