Le 25 sept. 2009 à 03:18, avcoder a écrit :

On Fri, Sep 25, 2009 at 4:03 AM, Jean-Daniel Dupas
<[email protected]>wrote:

Hello,

When I perform a seek, I have to decode all frames from the previous key frame to avoid artifacts. Is there a way in avformat to detect that a packet is discardable and may be ignored (mkv and mpeg4/mov formats provide this
flag).
It may significantly reduce seek time for some file with large time
interval between key frames.

Please call void avcodec_flush_buffers(AVCodecContext *avctx) after you
successfully perform seeking


Thank you but there is something I don't understand.
For example, I want to jump at frame at 10 second in the movie.
The key frames are at 8, 12, 16, etc.

Correct me if I'm wrong but to properly decode the frame at 10s, I have to decode all frames between the previous key frame (8 seconds) and the target one (10 s). Some container mark packet as droppable, which allow skipping some packet while decoding frames between 8 and 10 s, so I can decode only required frames to display the frame at 10s.
I didn't find any way to determine if a packet is droppable or not.

Or did I miss a better way to do this ?

Regards

-- Jean-Daniel




_______________________________________________
libav-user mailing list
[email protected]
https://lists.mplayerhq.hu/mailman/listinfo/libav-user

Reply via email to