Fixed FFMPEG seeking
parent
f56edd882e
commit
092fdda05a
|
@ -290,12 +290,13 @@ int lockmgr_callback(void ** mutex, enum AVLockOp op)
|
||||||
|
|
||||||
- (long)seek:(long)frame
|
- (long)seek:(long)frame
|
||||||
{
|
{
|
||||||
if (frame > totalFrames) { return -1; }
|
if (frame >= totalFrames) { return -1; }
|
||||||
int64_t ts = frame * (formatCtx->duration) / totalFrames;
|
int64_t ts = frame * (formatCtx->duration) / totalFrames;
|
||||||
avformat_seek_file(formatCtx, -1, ts - 1000, ts, ts, AVSEEK_FLAG_ANY);
|
avformat_seek_file(formatCtx, -1, ts - 1000, ts, ts, AVSEEK_FLAG_ANY);
|
||||||
avcodec_flush_buffers(codecCtx);
|
avcodec_flush_buffers(codecCtx);
|
||||||
readNextPacket = YES; // so we immediately read next packet
|
readNextPacket = YES; // so we immediately read next packet
|
||||||
bytesConsumedFromDecodedFrame = INT_MAX; // so we immediately begin decoding next frame
|
bytesConsumedFromDecodedFrame = INT_MAX; // so we immediately begin decoding next frame
|
||||||
|
framesRead = frame;
|
||||||
|
|
||||||
return frame;
|
return frame;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue