Convert the MovieDecoder used by the MovieTexture to a unique_ptr.

This commit is contained in:
Brandon W
2025-04-29 21:42:13 -07:00
committed by teejusb
parent ab6d2ff3d0
commit a4978f4476
3 changed files with 5 additions and 6 deletions
@@ -653,7 +653,7 @@ RageSurface* MovieDecoder_FFMpeg::CreateCompatibleSurface(int iTextureWidth, int
} }
MovieTexture_FFMpeg::MovieTexture_FFMpeg(RageTextureID ID) : MovieTexture_FFMpeg::MovieTexture_FFMpeg(RageTextureID ID) :
MovieTexture_Generic(ID, new MovieDecoder_FFMpeg) MovieTexture_Generic(ID, std::make_unique<MovieDecoder_FFMpeg>())
{ {
} }
@@ -21,12 +21,12 @@
static Preference<bool> g_bMovieTextureDirectUpdates("MovieTextureDirectUpdates", true); static Preference<bool> g_bMovieTextureDirectUpdates("MovieTextureDirectUpdates", true);
MovieTexture_Generic::MovieTexture_Generic(RageTextureID ID, MovieDecoder* pDecoder) : MovieTexture_Generic::MovieTexture_Generic(RageTextureID ID, std::unique_ptr<MovieDecoder> pDecoder) :
RageMovieTexture(ID) RageMovieTexture(ID)
{ {
LOG->Trace("MovieTexture_Generic::MovieTexture_Generic(%s)", ID.filename.c_str()); LOG->Trace("MovieTexture_Generic::MovieTexture_Generic(%s)", ID.filename.c_str());
decoder_ = pDecoder; decoder_ = std::move(pDecoder);
texture_handle_ = 0; texture_handle_ = 0;
render_target_ = nullptr; render_target_ = nullptr;
@@ -82,7 +82,6 @@ MovieTexture_Generic::~MovieTexture_Generic()
/* sprite_ may reference the texture; delete it before DestroyTexture. */ /* sprite_ may reference the texture; delete it before DestroyTexture. */
delete sprite_; delete sprite_;
delete decoder_;
DestroyTexture(); DestroyTexture();
+2 -2
View File
@@ -86,7 +86,7 @@ public:
class MovieTexture_Generic: public RageMovieTexture class MovieTexture_Generic: public RageMovieTexture
{ {
public: public:
MovieTexture_Generic( RageTextureID ID, MovieDecoder *pDecoder ); MovieTexture_Generic( RageTextureID ID, std::unique_ptr<MovieDecoder> pDecoder );
virtual ~MovieTexture_Generic(); virtual ~MovieTexture_Generic();
RString Init(); RString Init();
@@ -108,7 +108,7 @@ public:
static EffectMode GetEffectMode( MovieDecoderPixelFormatYCbCr fmt ); static EffectMode GetEffectMode( MovieDecoderPixelFormatYCbCr fmt );
private: private:
MovieDecoder* decoder_; std::unique_ptr<MovieDecoder> decoder_;
std::unique_ptr<std::thread> decoding_thread_; std::unique_ptr<std::thread> decoding_thread_;