diff options
| author | Carl Hetherington <cth@carlh.net> | 2020-08-17 16:42:46 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2020-08-17 16:42:46 +0200 |
| commit | 5d3c9573914a61db10b24ce7e0cef00902c2912c (patch) | |
| tree | 64dc134767f94d4180f798c640f8c63b878f4931 /src/lib/ffmpeg_file_encoder.cc | |
| parent | 6abf2fdd53b14608561fcc1900507daea5b79fb7 (diff) | |
Tidy up resource management of FFmpegFileEncoders so that they
are cleaned up correctly when an error occurs.
Adapted from dfac61382f1719f0a879747de43cbc5f9115c2d7 in master.
Diffstat (limited to 'src/lib/ffmpeg_file_encoder.cc')
| -rw-r--r-- | src/lib/ffmpeg_file_encoder.cc | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/lib/ffmpeg_file_encoder.cc b/src/lib/ffmpeg_file_encoder.cc index c11d12a82..d15bdabde 100644 --- a/src/lib/ffmpeg_file_encoder.cc +++ b/src/lib/ffmpeg_file_encoder.cc @@ -295,6 +295,15 @@ FFmpegFileEncoder::FFmpegFileEncoder ( _pending_audio.reset (new AudioBuffers(channels, 0)); } + +FFmpegFileEncoder::~FFmpegFileEncoder () +{ + _audio_streams.clear (); + avcodec_close (_video_codec_context); + avformat_free_context (_format_context); +} + + AVPixelFormat FFmpegFileEncoder::pixel_format (ExportFormat format) { @@ -403,11 +412,6 @@ DCPOMATIC_ENABLE_WARNINGS } av_write_trailer (_format_context); - - _audio_streams.clear (); - avcodec_close (_video_codec_context); - avio_close (_format_context->pb); - avformat_free_context (_format_context); } void |
