3#include "IVideoEncoder.h"
5#include "Foundation/ComponentModel/Component.h"
9 enum struct H264Profile :
unsigned
16 enum struct H264Preset :
unsigned
21 LowLatencyHighDefault,
22 LowLatencyHighQuality,
23 LowLatencyHighPerformance,
25 LosslessHighPerformance
28 enum struct BFrameReference :
unsigned
37 Codec codec = Codec::H264;
38 H264Profile profile = H264Profile::High;
39 H264Preset preset = H264Preset::HighQuality;
40 BFrameReference bFrameReference = BFrameReference::Middle;
42 uint32_t width = 1920;
43 uint32_t height = 1080;
44 uint32_t maxWidth = 3840;
45 uint32_t maxHeight = 2160;
47 uint32_t bitrate = 6000000;
48 uint32_t maxBitrate = 10000000;
49 uint32_t frameInterval = 15;
51 uint32_t bFrameCount = 2;
53 bool lookahead =
true;
55 bool updateTimestamp =
true;
56 bool reconfig =
false;
64 uint64_t duration = 0;
65 bool forceIntra =
false;
66 bool forceIDR =
false;
67 bool outputSPSPPS =
false;
68 bool endOfStream =
false;
83 VideoEncoderCallback callback;
85 static void registerType();
89template<>
inline Cogs::StringView getName<Cogs::Core::H264Profile>() {
return "H264Profile"; }
91template<>
inline Cogs::StringView getName<Cogs::Core::H264Preset>() {
return "H264Preset"; }
93template<>
inline Cogs::StringView getName<Cogs::Core::BFrameReference>() {
return "BFrameReference"; }
95template<>
inline Cogs::StringView getName<Cogs::Core::VideoCaptureComponent>() {
return "VideoCaptureComponent"; }
Base class for Component instances.
Provides a weakly referenced view over the contents of a string.
Contains the Engine, Renderer, resource managers and other systems needed to run Cogs....
@ Disabled
Depth test/write disabled.
std::string recordPath
Path to directory where captured video is stored.
uint64_t timestamp
Capture state.
bool recordToDisk
Write video frames to disk.