Files
UnrealEngine/Engine/Source/Runtime/AVIWriter/Private/CaptureSource.cpp
2025-05-18 13:04:45 +08:00

41 lines
1011 B
C++

// Copyright Epic Games, Inc. All Rights Reserved.
/*=============================================================================
CaptureSource.h: CaptureSource implementation
=============================================================================*/
#include "CaptureSource.h"
#include "CapturePin.h"
#include "HAL/PlatformProcess.h"
#include "HAL/Event.h"
#if PLATFORM_WINDOWS && WITH_UNREAL_DEVELOPER_TOOLS
FCaptureSource::FCaptureSource(const FAVIWriter& Writer)
: CSource(NAME("ViewportCaptureFilter"), nullptr, CLSID_ViewportCaptureSource)
{
HRESULT hr;
new FCapturePin(&hr, this, Writer);
ShutdownEvent = FPlatformProcess::GetSynchEventFromPool();
bShutdownRequested = false;
}
FCaptureSource::~FCaptureSource()
{
FPlatformProcess::ReturnSynchEventToPool(ShutdownEvent);
}
void FCaptureSource::StopCapturing()
{
bShutdownRequested = true;
ShutdownEvent->Wait(~0);
}
void FCaptureSource::OnFinishedCapturing()
{
ShutdownEvent->Trigger();
}
#endif //#if PLATFORM_WINDOWS