diff --git a/tools/replay/framereader.cc b/tools/replay/framereader.cc index 26ef4684a4..690645aca9 100644 --- a/tools/replay/framereader.cc +++ b/tools/replay/framereader.cc @@ -177,7 +177,14 @@ bool VideoDecoder::decode(FrameReader *reader, int idx, VisionBuf *buf) { break; } } - avio_seek(reader->input_ctx->pb, reader->packets_info[from_idx].pos, SEEK_SET); + + auto pos = reader->packets_info[from_idx].pos; + int ret = avformat_seek_file(reader->input_ctx, 0, pos, pos, pos, AVSEEK_FLAG_BYTE); + if (ret < 0) { + rError("Failed to seek to byte position %lld: %d", pos, AVERROR(ret)); + return false; + } + avcodec_flush_buffers(decoder_ctx); } reader->prev_idx = idx;