>----- Original Message ----- 
>From: YIRAN LI 
>To: This list is about using libavcodec, libavformat, libavutil,libavdevice 
>and libavfilter. 
>Sent: Sunday, December 08, 2013 9:44 PM
>Subject: [Libav-user] a question for av_seek_frame

>Hi friends

>Here I have a question about av_seek_frame.

>For example if I have a video stream of time stamps 0, 1, 2, 3, 4, 5, 6, 7, 8, 
>9, 10. and only frame at 0 is a key frame.

>if I call av_seek_frame(x,x,5, AVSEEK_FLAG_BACKWARD | AVSEEK_FLAG_ANY) and 
>then av_read_frame, the first frame I get will be frame 6, is this correct?

>then if I call av_seek_frame(x, x, 5, AVSEEK_FLAG_BACKWARD) and then 
>av_read_frame, then the first frame I get will be frame 1, is this correct?

>and if both can seek to a frame and first one can get a frame quicker, in what 
>circumstance should I use the second one?

>Thanks

Non key frames require the previous key frame in order to be decoded correctly. 
So if you skip past the key frame to frame 6, then the decoded image will most 
likely be incorrect.

While your first example may be quicker, it will not be correct. Best to stay 
away from AVSEEK_FLAG_ANY for normal display purposes. Proper seeking to frame 
6 would require a seek to frame 1 and then read and decode to frame 6.  
AVSEEK_FLAG_ANY can be useful in some cases but generally not for normal 
display.
_______________________________________________
Libav-user mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/libav-user

Reply via email to