<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.6000.17063" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>>----- Original Message ----- <BR>>From:
YIRAN LI <BR>>To: This list is about using libavcodec, libavformat,
libavutil,libavdevice and libavfilter. <BR>>Sent: Sunday, December 08, 2013
9:44 PM<BR>>Subject: [Libav-user] a question for av_seek_frame</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>>Hi friends</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>>Here I have a question about
av_seek_frame.</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>>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.</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>>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?</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>>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?</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>>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?</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>>Thanks</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>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.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>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. </FONT> <FONT
face=Arial size=2>AVSEEK_FLAG_ANY can be useful in some cases but generally not
for normal display.</FONT></DIV></BODY></HTML>