[FFmpeg-devel] About guess_correct_pts / AVFrame.best_effort_timestamp
Wed Feb 16 19:31:25 CET 2011
On Wed, Feb 16, 2011 at 05:47:15PM +0000, M?ns Rullg?rd wrote:
> Martin Storsj? <martin at martin.st> writes:
> > On Wed, 16 Feb 2011, M?ns Rullg?rd wrote:
> >> Nicolas George <nicolas.george at normalesup.org> writes:
> >> > L'octidi 28 pluvi?se, an CCXIX, M?ns Rullg?rd a ?crit?:
> >> >> AVI doesn't have timestamps, so the first decoded frame has PTS 0, and
> >> >> the following ones increment it by 1/framerate. Simple.
> >> >
> >> > Are you saying that Mr X should put a special case in his code for AVI?
> >> No, he should put a special case for no PTS on an input frame:
> >> pts = frame.pkt_pts != AV_NOPTS_VALUE? frame.pkt_pts : prev_pts + 1/framerate;
> >> prev_pts = pts;
> >> This code will always work.
> > Wouldn't this break for VFR-streams? That is, shouldn't it prefer
> > frame.pkt_dts over the calculated pts, if pkt_dts is present (and
> > reliable, assuming that all guessing code is disabled).
> A VFR stream obviously needs timestamps.
tell that to the ISO-MPEG committee, mpeg-ps does not require timestamps on
each frame yet allows frames to be displayed for 2,3 and 4 field periods
effectively creating variable fps.
> I'm not aware of any
> VFR-capable container providing only DTS. In fact, I'm not aware of
> _any_ container providing only DTS. Even if such a container did exist,
> DTS is not PTS. PTS can, of course be derived from DTS, decoder delay,
> and frame reordering, but that is not what any code in ffmpeg does, at
> least not correctly.
wrong. libavformat can calculate pts from dts correctly for mpeg1-mpeg4 asp
the code is disabled by default though
and ffmpeg/ffplay use dts by default if there are no pts
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
I have never wished to cater to the crowd; for what I know they do not
approve, and what they approve I do not know. -- Epicurus
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 198 bytes
Desc: Digital signature
More information about the ffmpeg-devel