2014-06-09 Carl Hetherington <cth@carlh.net>
+ * Work-around out-of-memory crashes with large start trims (#252).
+
* Version 1.69.24 released.
2014-06-06 Carl Hetherington <cth@carlh.net>
if (pts > 0) {
/* Emit some silence */
- shared_ptr<AudioBuffers> silence (
- new AudioBuffers (
- _ffmpeg_content->audio_channels(),
- pts * _ffmpeg_content->content_audio_frame_rate()
- )
- );
+ int64_t frames = pts * _ffmpeg_content->content_audio_frame_rate ();
+ while (frames > 0) {
+ int64_t const this_time = min (frames, (int64_t) _ffmpeg_content->content_audio_frame_rate() / 2);
+
+ shared_ptr<AudioBuffers> silence (
+ new AudioBuffers (_ffmpeg_content->audio_channels(), this_time)
+ );
- silence->make_silent ();
- audio (silence, _audio_position);
+ silence->make_silent ();
+ audio (silence, _audio_position);
+ frames -= this_time;
+ }
}
}