re-ordering timestamps GstVideoDecoder
Nicolas Dufresne
nicolas.dufresne at collabora.com
Fri Jan 23 16:19:45 PST 2015
Le 2015-01-23 09:50, Thornton, Keith a écrit :
>
> I have a decoder plugin which makes use of the Intel QuickSync decoder
> under Windows 7 /64 bit. The Frames arrive from the GstVideoDecoder
> base class in DTS frame order.
>
> The QuickSync decoder re-orders the output frames and returns them in
> PTS order. When these frames are returned to the base class via
> gst_decoder_finish_frame, some frames are discarded with a warning
> “decreasing timestamp” This appears to be because the PTS timestamp in
> the frame is older than the most current PTS timestamp passed from the
> base class to my decoder.
>
> In the source code there is a comment that re-ordering is a TODO. It
> is also written that the derived class is responsible for setting the
> PTS correctly before calling gst_decoder_finish_frame.
>
If your decoder is giving reordered output, this TODO is not for you.
This is about reordering when the decoder does not do it.
>
> Has anyone else encountered this problem and has found a solution.?
>
Normally when you pass output buffer, you try and pass the frame ID. In
a way that the returned output has this frame ID attached. Then you get
the associate frame to finally finish the frame. If the PTS are not in
the right order, it might be that your decoder mixes frame ID or
something. Or that you are mixing frame IDs. Unless the input is wrong,
but for that you would have to share more information.
Nicolas
More information about the gstreamer-devel
mailing list