Mercurial > libavformat.hg
changeset 5151:0e13b1b352ff libavformat
Cosmetic changes in read_seek* routines.
author | schreter |
---|---|
date | Wed, 26 Aug 2009 22:33:48 +0000 |
parents | fdfcd039e25d |
children | ab5ed34ed707 |
files | mpegts.c |
diffstat | 1 files changed, 26 insertions(+), 19 deletions(-) [+] |
line wrap: on
line diff
--- a/mpegts.c Wed Aug 26 22:10:35 2009 +0000 +++ b/mpegts.c Wed Aug 26 22:33:48 2009 +0000 @@ -1524,9 +1524,12 @@ return timestamp; } -static int read_seek(AVFormatContext *s, int stream_index, int64_t target_ts, int flags); - -static int read_seek2(AVFormatContext *s, int stream_index, int64_t min_ts, int64_t target_ts, int64_t max_ts, int flags) +static int read_seek2(AVFormatContext *s, + int stream_index, + int64_t min_ts, + int64_t target_ts, + int64_t max_ts, + int flags) { int64_t pos; @@ -1538,14 +1541,15 @@ backup = ff_store_parser_state(s); // detect direction of seeking for search purposes - flags |= (target_ts - min_ts > (uint64_t)(max_ts - target_ts)) ? AVSEEK_FLAG_BACKWARD : 0; + flags |= (target_ts - min_ts > (uint64_t)(max_ts - target_ts)) ? + AVSEEK_FLAG_BACKWARD : 0; if (flags & AVSEEK_FLAG_BYTE) { - /* use position directly, we will search starting from it */ + // use position directly, we will search starting from it pos = target_ts; } else { - /* search for some position with good timestamp match */ - if(stream_index < 0){ + // search for some position with good timestamp match + if (stream_index < 0) { stream_index_gen_search = av_find_default_stream_index(s); if (stream_index_gen_search < 0) { ff_restore_parser_state(s, backup); @@ -1553,8 +1557,10 @@ } st = s->streams[stream_index_gen_search]; - /* timestamp for default must be expressed in AV_TIME_BASE units */ - ts_adj = av_rescale(target_ts, st->time_base.den, AV_TIME_BASE * (int64_t)st->time_base.num); + // timestamp for default must be expressed in AV_TIME_BASE units + ts_adj = av_rescale(target_ts, + st->time_base.den, + AV_TIME_BASE * (int64_t)st->time_base.num); } else { ts_adj = target_ts; stream_index_gen_search = stream_index; @@ -1570,8 +1576,10 @@ } } - /* search for actual matching keyframe/starting position for all streams */ - if (ff_gen_syncpoint_search(s, stream_index, pos, min_ts, target_ts, max_ts, flags) < 0) { + // search for actual matching keyframe/starting position for all streams + if (ff_gen_syncpoint_search(s, stream_index, pos, + min_ts, target_ts, max_ts, + flags) < 0) { ff_restore_parser_state(s, backup); return -1; } @@ -1584,17 +1592,16 @@ { int ret; if (flags & AVSEEK_FLAG_BACKWARD) { - ret = read_seek2(s, stream_index, INT64_MIN, target_ts, target_ts, flags & ~AVSEEK_FLAG_BACKWARD); - if (ret < 0) { - // for compatibility reasons, seek to best-fitting timestamp - ret = read_seek2(s, stream_index, INT64_MIN, target_ts, INT64_MAX, flags & ~AVSEEK_FLAG_BACKWARD); - } + flags &= ~AVSEEK_FLAG_BACKWARD; + ret = read_seek2(s, stream_index, INT64_MIN, target_ts, target_ts, flags); + if (ret < 0) + // for compatibility reasons, seek to the best-fitting timestamp + ret = read_seek2(s, stream_index, INT64_MIN, target_ts, INT64_MAX, flags); } else { ret = read_seek2(s, stream_index, target_ts, target_ts, INT64_MAX, flags); - if (ret < 0) { - // for compatibility reasons, seek to best-fitting timestamp + if (ret < 0) + // for compatibility reasons, seek to the best-fitting timestamp ret = read_seek2(s, stream_index, INT64_MIN, target_ts, INT64_MAX, flags); - } } return ret; }