Hello.

I'm having some trouble understanding some of the different values
that AVFrame.repeat_pict can have and how to handle them.

First, I see in the documentation that the you use repeat_pict to
calculate the "extra delay" for that particular frame, i.e., display
this frame for its normal frame duration plus N more seconds.  N would
be the number calculated as the extra_delay as mentioned in the
documentation:

extra_delay = repeat_pict / (2 * fps)

I've seen this work out well for a number of clips that had some
pulldown associated with them, like HDV 720p60. These types of clips
usually say repeat the frame 1 or 2 more times, like a 2:3 pulldown.
With the clips that works well, repeat_pict usually takes on values of
0, 2, or 4.

The value of repeat_pict that I don't understand is when it's 1.  I
have an MPEG-2 encoded clip that ffmpeg reports as 59.94 fps that
actually appears to have been encoded as if it's 23.97 fps content.
Other applications actually report that the frame rate should be 29.97
fps.  Anyway, the value of repeat_pict comes back alternating between
0 and 1 along with top_field_first alternating between 0 and 1.
According to the above formula, the extra_delay would be about half a
frame's worth, essentially repeating the first field.  In terms of how
ffmpeg's decoders returns full frames worth at a time, how the should
these kinds of scenarios be handled in general?

Any advice would be greatly appreciated.  Thank you!

-- 
Brian Brice
http://heapify.org/
_______________________________________________
libav-user mailing list
[email protected]
https://lists.mplayerhq.hu/mailman/listinfo/libav-user

Reply via email to