UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
VideoRecordingSystem.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "Stats/Stats.h"
7
8DECLARE_MULTICAST_DELEGATE_TwoParams(FVideoRecordingFinalized, bool /* bSucceeded */, const FString& /* FilePath */);
9
11
17
18#define DEFINE_VIDEOSYSTEMRECORDING_STATS \
19 DEFINE_STAT(STAT_VideoRecordingSystem_EnableRecording); \
20 DEFINE_STAT(STAT_VideoRecordingSystem_NewRecording); \
21 DEFINE_STAT(STAT_VideoRecordingSystem_StartRecording); \
22 DEFINE_STAT(STAT_VideoRecordingSystem_PauseRecording); \
23 DEFINE_STAT(STAT_VideoRecordingSystem_FinalizeRecording);
24
25class Error;
26
29{
30 None,
33 Pausing,
34 Paused,
36 Error
37};
38
40{
41 // If greater than 0 sets the length of the ring buffer (maximum limited by platform).
42 // NewRecording will return false if the number here is unsupported.
43 // Use GetMinimumRecordingSeconds/GetMaximumRecordingSeconds to find the range for the current platform.
45 // If true, video recording will automatically start.
47 // If true, a new video will be created based on the original file name and automatically start.
49 // If true, the saved video will be exported to the platform's video library. If false it will remain as a temporary file only.
51 // Set the user current recording belongs to.
53
61
69};
70
75{
76public:
78
84 virtual void EnableRecording(const bool bEnableRecording) = 0;
85
87 virtual bool IsEnabled() const = 0;
88
100
102 virtual void StartRecording() = 0;
103
105 virtual void PauseRecording() = 0;
106
110
112 virtual float GetCurrentRecordingSeconds() const = 0;
113
122 virtual void FinalizeRecording(const bool bSaveRecording, const FText& Title, const FText& Comment, const bool bStopAutoContinue = true) = 0;
123
126
131
132protected:
134};
135
138{
139public:
140 virtual void EnableRecording(const bool bEnableRecording) override {}
141 virtual bool IsEnabled() const override { return false; }
142 virtual bool NewRecording(const TCHAR* DestinationFileName, FVideoRecordingParameters Parameters = FVideoRecordingParameters()) override { return false; }
143 virtual void StartRecording() override {}
144 virtual void PauseRecording() override {}
145 virtual uint64 GetMinimumRecordingSeconds() const override { return 0; }
146 virtual uint64 GetMaximumRecordingSeconds() const override { return 0; }
147 virtual float GetCurrentRecordingSeconds() const override { return 0.0f; }
148 virtual void FinalizeRecording(const bool bSaveRecording, const FText& Title, const FText& Comment, const bool bStopAutoContinue) override {}
149
151};
constexpr FPlatformUserId PLATFORMUSERID_NONE
Definition CoreMiscDefines.h:516
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
#define DECLARE_CYCLE_STAT_EXTERN(CounterName, StatId, GroupId, API)
Definition Stats.h:679
#define DECLARE_STATS_GROUP(GroupDesc, GroupId, GroupCat)
Definition Stats.h:689
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_MULTICAST_DELEGATE_TwoParams(DelegateName, Param1Type, Param2Type)
Definition DelegateCombinations.h:58
return true
Definition ExternalRpcRegistry.cpp:601
EVideoRecordingState
Definition VideoRecordingSystem.h:29
Definition VideoRecordingSystem.h:138
virtual void PauseRecording() override
Definition VideoRecordingSystem.h:144
virtual uint64 GetMaximumRecordingSeconds() const override
Definition VideoRecordingSystem.h:146
virtual void EnableRecording(const bool bEnableRecording) override
Definition VideoRecordingSystem.h:140
virtual void StartRecording() override
Definition VideoRecordingSystem.h:143
virtual void FinalizeRecording(const bool bSaveRecording, const FText &Title, const FText &Comment, const bool bStopAutoContinue) override
Definition VideoRecordingSystem.h:148
virtual bool IsEnabled() const override
Definition VideoRecordingSystem.h:141
virtual bool NewRecording(const TCHAR *DestinationFileName, FVideoRecordingParameters Parameters=FVideoRecordingParameters()) override
Definition VideoRecordingSystem.h:142
virtual float GetCurrentRecordingSeconds() const override
Definition VideoRecordingSystem.h:147
virtual EVideoRecordingState GetRecordingState() const override
Definition VideoRecordingSystem.h:150
virtual uint64 GetMinimumRecordingSeconds() const override
Definition VideoRecordingSystem.h:145
Definition Text.h:385
Definition VideoRecordingSystem.h:75
virtual EVideoRecordingState GetRecordingState() const =0
virtual bool IsEnabled() const =0
virtual ~IVideoRecordingSystem()
Definition VideoRecordingSystem.h:77
FVideoRecordingFinalized & GetOnVideoRecordingFinalizedDelegate()
Definition VideoRecordingSystem.h:127
virtual void PauseRecording()=0
virtual void EnableRecording(const bool bEnableRecording)=0
virtual uint64 GetMaximumRecordingSeconds() const =0
virtual uint64 GetMinimumRecordingSeconds() const =0
virtual float GetCurrentRecordingSeconds() const =0
virtual void FinalizeRecording(const bool bSaveRecording, const FText &Title, const FText &Comment, const bool bStopAutoContinue=true)=0
FVideoRecordingFinalized OnVideoRecordingFinalized
Definition VideoRecordingSystem.h:133
virtual void StartRecording()=0
virtual bool NewRecording(const TCHAR *DestinationFileName, FVideoRecordingParameters Parameters=FVideoRecordingParameters())=0
@ false
Definition radaudio_common.h:23
Definition CoreMiscDefines.h:470
Definition VideoRecordingSystem.h:40
bool bAutoStart
Definition VideoRecordingSystem.h:46
FVideoRecordingParameters(uint64 InRecordingLengthSeconds, bool bInAutoStart, bool bInAutoContinue, bool bInExportToLibrary, FPlatformUserId InUserId)
Definition VideoRecordingSystem.h:62
uint64 RecordingLengthSeconds
Definition VideoRecordingSystem.h:44
bool bAutoContinue
Definition VideoRecordingSystem.h:48
FPlatformUserId UserId
Definition VideoRecordingSystem.h:52
FVideoRecordingParameters()
Definition VideoRecordingSystem.h:54
bool bExportToLibrary
Definition VideoRecordingSystem.h:50