From dfac61382f1719f0a879747de43cbc5f9115c2d7 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Mon, 17 Aug 2020 13:16:48 +0200 Subject: Tidy up resource management of FFmpegFileEncoders so that they are cleaned up correctly when an error occurs. --- src/lib/ffmpeg_file_encoder.cc | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'src/lib/ffmpeg_file_encoder.cc') diff --git a/src/lib/ffmpeg_file_encoder.cc b/src/lib/ffmpeg_file_encoder.cc index 294b03162..663f791e5 100644 --- a/src/lib/ffmpeg_file_encoder.cc +++ b/src/lib/ffmpeg_file_encoder.cc @@ -122,6 +122,15 @@ FFmpegFileEncoder::FFmpegFileEncoder ( _pending_audio.reset (new AudioBuffers(channels, 0)); } + +FFmpegFileEncoder::~FFmpegFileEncoder () +{ + avcodec_close (_video_codec_context); + avcodec_close (_audio_codec_context); + avformat_close_input (&_format_context); +} + + AVPixelFormat FFmpegFileEncoder::pixel_format (ExportFormat format) { @@ -225,11 +234,6 @@ FFmpegFileEncoder::flush () } av_write_trailer (_format_context); - - avcodec_close (_video_codec_context); - avcodec_close (_audio_codec_context); - avio_close (_format_context->pb); - avformat_free_context (_format_context); } void -- cgit v1.2.3