Browse Source

add avformat_seek_file()

Originally committed as revision 17956 to svn://svn.ffmpeg.org/ffmpeg/trunk
tags/v0.6
Michael Niedermayer 17 years ago
parent
commit
32d885926d
1 changed files with 22 additions and 0 deletions
  1. +22
    -0
      libavformat/utils.c

+ 22
- 0
libavformat/utils.c View File

@@ -1584,6 +1584,28 @@ int av_seek_frame(AVFormatContext *s, int stream_index, int64_t timestamp, int f
return av_seek_frame_generic(s, stream_index, timestamp, flags);
}

int avformat_seek_file(AVFormatContext *s, int stream_index, int64_t min_ts, int64_t ts, int64_t max_ts, int flags)
{
if(min_ts > ts || max_ts < ts)
return -1;

av_read_frame_flush(s);

if (s->iformat->read_seek2)
return s->iformat->read_seek2(s, stream_index, min_ts, ts, max_ts, flags);

if(s->iformat->read_timestamp){
//try to seek via read_timestamp()
}

//Fallback to old API if new is not implemented but old is
//Note the old has somewat different sematics
if(s->iformat->read_seek || 1)
return av_seek_frame(s, stream_index, ts, ts - min_ts > (uint64_t)(max_ts - ts) ? AVSEEK_FLAG_BACKWARD : 0);

// try some generic seek like av_seek_frame_generic() but with new ts semantics
}

/*******************************************************/

/**


Loading…
Cancel
Save