# HG changeset patch # User michael # Date 1097576907 0 # Node ID 63226381e03cc4289ea1bc47206bda2d251d7ea4 # Parent f5f85a07fafe5a6e6a5e736b940aa67ca4167b8d generic cur_dts update removing cur_dts update code from dv again, i think its not needed diff -r f5f85a07fafe -r 63226381e03c dv.c --- a/dv.c Tue Oct 12 01:51:04 2004 +0000 +++ b/dv.c Tue Oct 12 10:28:27 2004 +0000 @@ -913,15 +913,6 @@ } } - for(i = 0; i < s->nb_streams; i++) { - AVStream *st = s->streams[stream_index]; - AVStream *st2 = s->streams[i]; - - st->cur_dts = av_rescale(timestamp, - st2->time_base.den * (int64_t)st ->time_base.num, - st ->time_base.den * (int64_t)st2->time_base.num); - } - return url_fseek(&s->pb, offset, SEEK_SET); } diff -r f5f85a07fafe -r 63226381e03c utils.c --- a/utils.c Tue Oct 12 01:51:04 2004 +0000 +++ b/utils.c Tue Oct 12 10:28:27 2004 +0000 @@ -892,6 +892,22 @@ } /** + * updates the cur_dts field based on the given timestamp and AVStream. + * only needed if (dts are not set and pts!=dts) or for timestamp wrapping + */ +static void av_update_cur_dts(AVFormatContext *s, AVStream *st, int64_t timestamp){ + int i; + + for(i = 0; i < s->nb_streams; i++) { + AVStream *st2 = s->streams[i]; + + st->cur_dts = av_rescale(timestamp, + st2->time_base.den * (int64_t)st ->time_base.num, + st ->time_base.den * (int64_t)st2->time_base.num); + } +} + +/** * add a index entry into a sorted list updateing if it is already there. * @param timestamp timestamp in the timebase of the given stream */ @@ -1015,7 +1031,7 @@ int64_t pos_min, pos_max, pos, pos_limit; int64_t ts_min, ts_max, ts; int64_t start_pos; - int index, no_change, i; + int index, no_change; AVStream *st; if (stream_index < 0) @@ -1150,13 +1166,7 @@ /* do the seek */ url_fseek(&s->pb, pos, SEEK_SET); - for(i = 0; i < s->nb_streams; i++) { - AVStream *st2 = s->streams[i]; - - st->cur_dts = av_rescale(ts, - st2->time_base.den * (int64_t)st ->time_base.num, - st ->time_base.den * (int64_t)st2->time_base.num); - } + av_update_cur_dts(s, st, ts); return 0; } @@ -1182,13 +1192,7 @@ url_fseek(&s->pb, pos, SEEK_SET); #if 0 - for(i = 0; i < s->nb_streams; i++) { - st2 = s->streams[i]; - - st->cur_dts = av_rescale(ie->timestamp, - st2->time_base.den * (int64_t)st ->time_base.num, - st ->time_base.den * (int64_t)st2->time_base.num); - } + av_update_cur_dts(s, st, ts); #endif return 0; } @@ -1196,7 +1200,7 @@ static int av_seek_frame_generic(AVFormatContext *s, int stream_index, int64_t timestamp, int flags) { - int index, i; + int index; AVStream *st; AVIndexEntry *ie; @@ -1219,13 +1223,7 @@ av_read_frame_flush(s); url_fseek(&s->pb, ie->pos, SEEK_SET); - for(i = 0; i < s->nb_streams; i++) { - AVStream *st2 = s->streams[i]; - - st->cur_dts = av_rescale(ie->timestamp, - st2->time_base.den * (int64_t)st ->time_base.num, - st ->time_base.den * (int64_t)st2->time_base.num); - } + av_update_cur_dts(s, st, ie->timestamp); return 0; }