View Bug Details

IDProjectCategoryView StatusLast Update
0001230DCP-o-matic[All Projects] Bugspublic2018-03-05 01:34
ReportercarlAssigned Tocarl 
Status resolvedResolutionfixed 
Product Version 
Target Version2.12.0Fixed in Version 
Summary0001230: OOM when seeking near the end of a large FFmpeg file

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().

TagsNo tags attached.
Estimated work requiredUnknown



2018-03-05 01:34

administrator   ~0002265

85cd541c1ec9c9b608d7ec2e4ec3c575166bb863 is the hacky fix for v2.12.x.

Bug History

Date Modified Username Field Change
2018-03-05 01:23 carl New Bug
2018-03-05 01:34 carl Assigned To => carl
2018-03-05 01:34 carl Status new => resolved
2018-03-05 01:34 carl Resolution open => fixed
2018-03-05 01:34 carl Note Added: 0002265