[Libav-user] Semantics of AVIndexEntry fields

Robert Krüger krueger at signal7.de
Tue Aug 9 11:54:59 CEST 2011


since it is not documented I thought I'd ask what the semantics of AVIndexEntry.timestamp are? I assumed/guessed that it is the PTS (in Stream timebase units) of the frame starting at file byte offset AVIndexEntry.pos. However, the values I have for a concrete file (MPEG-2 in an MP4 container) from a camera do not agree with that assumption as the keyframe positions in the index do not match the ones I obtain when I simply decode the frames and before I file a bug report, I would like to know what the correct behaviour should be. In addition to that, looking at the code that builds the index in the mov demuxer, timestamps seem to be only set to dts values (which in my use case should not make a difference as I am currently only looking at keyframe index entries) but that of course does contradict my assumption.

Also, is the stored timestamp the PTS - AVStream.start_time or simply the PTS as read from the respective frame/packet?

Any insights would be greatly appreciated. If the outcome is that the correct semantics do not correspond to what happens with the mentioned file, I will file a bug report.

Thanks in advance,


More information about the Libav-user mailing list