player, decoder, output: wrap MusicPipe in std::shared_ptr/std::unique_ptr

This commit is contained in:
Max Kellermann
2018-06-23 18:45:57 +02:00
parent 82954d1d6f
commit efb8a9bd2c
5 changed files with 26 additions and 29 deletions

View File

@@ -230,7 +230,7 @@ MultipleOutputs::Open(const AudioFormat audio_format)
assert(pipe == nullptr || pipe->CheckFormat(audio_format));
if (pipe == nullptr)
pipe = new MusicPipe();
pipe = std::make_unique<MusicPipe>();
else
/* if the pipe hasn't been cleared, the the audio
format must not have changed */
@@ -402,8 +402,7 @@ MultipleOutputs::Close() noexcept
for (auto *ao : outputs)
ao->LockCloseWait();
delete pipe;
pipe = nullptr;
pipe.reset();
input_audio_format.Clear();
@@ -416,8 +415,7 @@ MultipleOutputs::Release() noexcept
for (auto *ao : outputs)
ao->LockRelease();
delete pipe;
pipe = nullptr;
pipe.reset();
input_audio_format.Clear();

View File

@@ -55,7 +55,7 @@ class MultipleOutputs final : public PlayerOutputs {
* The #MusicPipe object which feeds all audio outputs. It is
* filled by Play().
*/
MusicPipe *pipe = nullptr;
std::unique_ptr<MusicPipe> pipe;
/**
* The "elapsed_time" stamp of the most recently finished