summaryrefslogtreecommitdiff
path: root/src/lib/ffmpeg_file_encoder.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2020-08-17 13:16:48 +0200
committerCarl Hetherington <cth@carlh.net>2020-08-17 13:17:28 +0200
commitdfac61382f1719f0a879747de43cbc5f9115c2d7 (patch)
treee93793ac4d74f060050492905d97ea6156b5883c /src/lib/ffmpeg_file_encoder.cc
parentbd23f55d8cd73adda823d0a2fcabc129b8845a81 (diff)
Tidy up resource management of FFmpegFileEncoders so that theybetter-butler-errors
are cleaned up correctly when an error occurs.
Diffstat (limited to 'src/lib/ffmpeg_file_encoder.cc')
-rw-r--r--src/lib/ffmpeg_file_encoder.cc14
1 files changed, 9 insertions, 5 deletions
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