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