From 59ac9d39d5950bb8bb041c5d49dc818ee0384d8c Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Thu, 8 Jan 2015 16:56:13 +0100 Subject: [PATCH] output/recorder: move encoder_finish() call to destructor --- src/output/plugins/RecorderOutputPlugin.cxx | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/src/output/plugins/RecorderOutputPlugin.cxx b/src/output/plugins/RecorderOutputPlugin.cxx index 8f5379d74..5f6a55418 100644 --- a/src/output/plugins/RecorderOutputPlugin.cxx +++ b/src/output/plugins/RecorderOutputPlugin.cxx @@ -56,8 +56,14 @@ struct RecorderOutput { RecorderOutput() :base(recorder_output_plugin), + encoder(nullptr), path(AllocatedPath::Null()) {} + ~RecorderOutput() { + if (encoder != nullptr) + encoder_finish(encoder); + } + bool Initialize(const config_param ¶m, Error &error_r) { return base.Configure(param, error_r); } @@ -133,15 +139,6 @@ RecorderOutput::Create(const config_param ¶m, Error &error) return recorder; } -static void -recorder_output_finish(AudioOutput *ao) -{ - RecorderOutput *recorder = (RecorderOutput *)ao; - - encoder_finish(recorder->encoder); - delete recorder; -} - inline bool RecorderOutput::EncoderToFile(Error &error) { @@ -241,7 +238,7 @@ const struct AudioOutputPlugin recorder_output_plugin = { "recorder", nullptr, &Wrapper::Init, - recorder_output_finish, + &Wrapper::Finish, nullptr, nullptr, &Wrapper::Open,