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_Generic(ID, new MovieDecoder_FFMpeg)
MovieTexture_Generic(ID, std::make_unique<MovieDecoder_FFMpeg>())
{
}
@@ -21,12 +21,12 @@
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)
{
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();
+2 -2
View File
@@ -86,7 +86,7 @@ public:
class MovieTexture_Generic: public RageMovieTexture
{
public:
MovieTexture_Generic( RageTextureID ID, MovieDecoder *pDecoder );
MovieTexture_Generic( RageTextureID ID, std::unique_ptr<MovieDecoder> pDecoder );
virtual ~MovieTexture_Generic();
RString Init();
@@ -108,7 +108,7 @@ public:
static EffectMode GetEffectMode( MovieDecoderPixelFormatYCbCr fmt );
private:
MovieDecoder* decoder_;
std::unique_ptr<MovieDecoder> decoder_;
std::unique_ptr<std::thread> decoding_thread_;