diff --git a/libavformat/dv.c b/libavformat/dv.c index 2867ec0c11..9606bae65b 100644 --- a/libavformat/dv.c +++ b/libavformat/dv.c @@ -830,8 +830,8 @@ int64_t dv_frame_offset(DVDemuxContext *c, int64_t timestamp) sys = dv_codec_profile(&c->vst->codec); // timestamp was scaled by time_base/AV_BASE_RATE by av_seek_frame() - frame_number = av_rescale(sys->frame_rate, timestamp, - (int64_t) 30000 * sys->frame_rate_base); + frame_number = (timestamp * sys->frame_rate) / + ((int64_t) 30000 * sys->frame_rate_base); // offset must be a multiple of frame_size else dv_read_packet() will fail offset = (int64_t) sys->frame_size * frame_number;