diff --git a/Source/Core/VideoCommon/FrameDumpFFMpeg.h b/Source/Core/VideoCommon/FrameDumpFFMpeg.h index 18c98c7720..8431e24274 100644 --- a/Source/Core/VideoCommon/FrameDumpFFMpeg.h +++ b/Source/Core/VideoCommon/FrameDumpFFMpeg.h @@ -10,8 +10,26 @@ struct FrameDumpContext; class PointerWrap; -struct FrameData; -struct FrameState; + +// Holds relevant emulation state during a rendered frame for +// when it is later asynchronously written. +struct FrameState +{ + u64 ticks = 0; + int frame_number = 0; + u32 savestate_index = 0; + int refresh_rate_num = 0; + int refresh_rate_den = 0; +}; + +struct FrameData +{ + const u8* data = nullptr; + int width = 0; + int height = 0; + int stride = 0; + FrameState state; +}; class FFMpegFrameDump { @@ -47,10 +65,10 @@ private: }; #if !defined(HAVE_FFMPEG) -inline FrameDump::FrameDump() = default; -inline FrameDump::~FrameDump() = default; +inline FFMpegFrameDump::FFMpegFrameDump() = default; +inline FFMpegFrameDump::~FFMpegFrameDump() = default; -inline FrameState FrameDump::FetchState(u64 ticks, int frame_number) const +inline FrameState FFMpegFrameDump::FetchState(u64 ticks, int frame_number) const { return {}; } diff --git a/Source/Core/VideoCommon/FrameDumper.cpp b/Source/Core/VideoCommon/FrameDumper.cpp index f0c62c4c17..06bbe1b1c9 100644 --- a/Source/Core/VideoCommon/FrameDumper.cpp +++ b/Source/Core/VideoCommon/FrameDumper.cpp @@ -288,16 +288,16 @@ void FrameDumper::StopFrameDumpToFFMPEG() #else -bool FrameDump::StartFrameDumpToFFMPEG(const FrameData&) +bool FrameDumper::StartFrameDumpToFFMPEG(const FrameData&) { return false; } -void FrameDump::DumpFrameToFFMPEG(const FrameData&) +void FrameDumper::DumpFrameToFFMPEG(const FrameData&) { } -void FrameDump::StopFrameDumpToFFMPEG() +void FrameDumper::StopFrameDumpToFFMPEG() { } @@ -352,4 +352,10 @@ bool FrameDumper::IsFrameDumping() const return false; } +void FrameDumper::DoState(PointerWrap& p) +{ +#ifdef HAVE_FFMPEG + m_ffmpeg_dump.DoState(p); +#endif +} std::unique_ptr g_frame_dumper; diff --git a/Source/Core/VideoCommon/FrameDumper.h b/Source/Core/VideoCommon/FrameDumper.h index 8006739671..cdf6d9359d 100644 --- a/Source/Core/VideoCommon/FrameDumper.h +++ b/Source/Core/VideoCommon/FrameDumper.h @@ -16,26 +16,6 @@ class AbstractStagingTexture; class AbstractTexture; class AbstractFramebuffer; -// Holds relevant emulation state during a rendered frame for -// when it is later asynchronously written. -struct FrameState -{ - u64 ticks = 0; - int frame_number = 0; - u32 savestate_index = 0; - int refresh_rate_num = 0; - int refresh_rate_den = 0; -}; - -struct FrameData -{ - const u8* data = nullptr; - int width = 0; - int height = 0; - int stride = 0; - FrameState state; -}; - class FrameDumper { public: @@ -54,7 +34,7 @@ public: bool IsFrameDumping() const; - void DoState(PointerWrap& p) { m_ffmpeg_dump.DoState(p); } + void DoState(PointerWrap& p); private: // NOTE: The methods below are called on the framedumping thread.