diff --git a/src/arch/MovieTexture/MovieTexture_FFMpeg.cpp b/src/arch/MovieTexture/MovieTexture_FFMpeg.cpp index 8e0e25d7be..48b4b4eecb 100644 --- a/src/arch/MovieTexture/MovieTexture_FFMpeg.cpp +++ b/src/arch/MovieTexture/MovieTexture_FFMpeg.cpp @@ -653,7 +653,7 @@ RageSurface* MovieDecoder_FFMpeg::CreateCompatibleSurface(int iTextureWidth, int } MovieTexture_FFMpeg::MovieTexture_FFMpeg(RageTextureID ID) : - MovieTexture_Generic(ID, new MovieDecoder_FFMpeg) + MovieTexture_Generic(ID, std::make_unique()) { } diff --git a/src/arch/MovieTexture/MovieTexture_Generic.cpp b/src/arch/MovieTexture/MovieTexture_Generic.cpp index e086a8021d..8bae897cb6 100644 --- a/src/arch/MovieTexture/MovieTexture_Generic.cpp +++ b/src/arch/MovieTexture/MovieTexture_Generic.cpp @@ -21,12 +21,12 @@ static Preference g_bMovieTextureDirectUpdates("MovieTextureDirectUpdates", true); -MovieTexture_Generic::MovieTexture_Generic(RageTextureID ID, MovieDecoder* pDecoder) : +MovieTexture_Generic::MovieTexture_Generic(RageTextureID ID, std::unique_ptr pDecoder) : RageMovieTexture(ID) { LOG->Trace("MovieTexture_Generic::MovieTexture_Generic(%s)", ID.filename.c_str()); - decoder_ = pDecoder; + decoder_ = std::move(pDecoder); texture_handle_ = 0; render_target_ = nullptr; @@ -82,7 +82,6 @@ MovieTexture_Generic::~MovieTexture_Generic() /* sprite_ may reference the texture; delete it before DestroyTexture. */ delete sprite_; - delete decoder_; DestroyTexture(); diff --git a/src/arch/MovieTexture/MovieTexture_Generic.h b/src/arch/MovieTexture/MovieTexture_Generic.h index aebaaca795..14343d5156 100644 --- a/src/arch/MovieTexture/MovieTexture_Generic.h +++ b/src/arch/MovieTexture/MovieTexture_Generic.h @@ -86,7 +86,7 @@ public: class MovieTexture_Generic: public RageMovieTexture { public: - MovieTexture_Generic( RageTextureID ID, MovieDecoder *pDecoder ); + MovieTexture_Generic( RageTextureID ID, std::unique_ptr pDecoder ); virtual ~MovieTexture_Generic(); RString Init(); @@ -108,7 +108,7 @@ public: static EffectMode GetEffectMode( MovieDecoderPixelFormatYCbCr fmt ); private: - MovieDecoder* decoder_; + std::unique_ptr decoder_; std::unique_ptr decoding_thread_;