From a4978f4476c9960d498c22b783fc0bbe42a09f50 Mon Sep 17 00:00:00 2001 From: Brandon W Date: Mon, 7 Apr 2025 16:21:03 -0400 Subject: [PATCH] Convert the MovieDecoder used by the MovieTexture to a unique_ptr. --- src/arch/MovieTexture/MovieTexture_FFMpeg.cpp | 2 +- src/arch/MovieTexture/MovieTexture_Generic.cpp | 5 ++--- src/arch/MovieTexture/MovieTexture_Generic.h | 4 ++-- 3 files changed, 5 insertions(+), 6 deletions(-) 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_;