Videodecoder PTS&DTS question

Carlos Rafael Giani dv at pseudoterminal.org
Thu Mar 20 05:07:03 PDT 2014


Nevermind, I found out that I was associating the wrong frames. Input 
frame #1 was getting associated with output frame #0 etc. so input frame 
#1 was never finished. This explains the timestamp problems.

> Hello,
>
> I have noticed that when a frame with valid dts but no valid pts is 
> pushed downstream with the video decoder finish_frame() call, the 
> videodecoder class will internally reuse the DTS of the *last* frame 
> for the PTS. As seen here: 
> http://cgit.freedesktop.org/gstreamer/gst-plugins-base/tree/gst-libs/gst/video/gstvideodecoder.c#n2406
>
> I wonder why it is not using the DTS of the current frame. I have a 
> test video here, with MPEG-4 part 2 encoded data, in an AVI container. 
> Keyframes have valid PTS, the rest doesn't. The video shows a circle 
> moving steadily and slowly over the screen. Result: at the keyframes, 
> the circle "jumps" - playback is not smooth. By checking the PTS prior 
> to finishing, and using PTS = DTS , the jumps go away.
>
> However, I am not sure doing this check is a good idea in general. 
> Maybe this is actually covering a bug in the AVI demuxer for example? 
> Opinions?
> _______________________________________________
> 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