View Bug Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0001230||DCP-o-matic||[All Projects] Bugs||public||2018-03-05 01:23||2018-03-05 01:34|
|Target Version||2.12.0||Fixed in Version|
|Summary||0001230: OOM when seeking near the end of a large FFmpeg file|
|Description||Seek to near the end of a file.|
FFmpegDecoder::pass() gets AVERROR_EOF and calls flush().
This fills in audio from audio->stream_position() to the end of the file. But audio->stream_position() is 0 immediately after a seek.
This is done because we reset audio stream position from the first emit after a seek.
So what should flush() do if it's called after a seek but before any data has come? Probably nothing; in practice it will only happen with inaccurate seeks (no pre-roll). So the bare minimum is to not flush when stream_position() returns 0. Nicer would be to stop 0 being a magic value when returning from stream_position().
|Tags||No tags attached.|
|Estimated work required||Unknown|