FAudioEncoderConfigAAC ( [EAVPreset](API\Plugins\AVCodecsCore\EAVPreset) Preset )


Configuration settings for AAC encoders.

struct FAudioEncoderConfigAAC : public [FAudioEncoderConfig](API\Plugins\AVCodecsCore\Audio\FAudioEncoderConfig)


Implementation of Audio Decoding domain, seeTAVCoderfor inheritance model

struct FAudioDecoderConfig : public [FAVConfig](API\Plugins\AVCodecsCore\FAVConfig)


FAudioDecoderConfig ( [EAVPreset](API\Plugins\AVCodecsCore\EAVPreset) Preset )


bool operator== ( [FAudioDescriptor](API\Plugins\AVCodecsCore\Audio\FAudioDescriptor) const & RHS ) const


bool operator!= ( [FAudioDescriptor](API\Plugins\AVCodecsCore\Audio\FAudioDescriptor) const & RHS ) const


FAudioDescriptor ( uint32 NumSamples, float SampleDuration )


Enum class EAudioFormat : uint8 { // TODO (Andrew) }; ????? inline bool operator==(EPixelFormat LHS, EAudioFormat RHS) { return static_cast(LHS) == static_cast(RHS); } inline bool operator!=(EPixelFormat LHS, EAudioFormat RHS) { return !(LHS == RHS); } inline bool operator==(EAudioFormat LHS, EPixelFormat RHS) { return static_cast(LHS) == static_cast(RHS); } inline bool operator!=(EAudioFormat LHS, EPixelFormat RHS) { return !(LHS == RHS); } This struct defines how the allocated resource memory is used in the context of audio.

NumSamples

Number of samples in this resource.

SampleDuration

Duration of samples in this resource.


FAudioEncoderConfig ( [EAVPreset](API\Plugins\AVCodecsCore\EAVPreset) Preset )


Implementation of Audio Encoding domain, seeTAVCoderfor inheritance model

struct FAudioEncoderConfig : public [FAVConfig](API\Plugins\AVCodecsCore\FAVConfig)


FAudioPacket ( [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< uint8 > const & DataPtr, uint64 DataSize, uint64 Timestamp, uint64 Index )


Audio-specific packet container.

struct FAudioPacket : public [FAVPacket](API\Plugins\AVCodecsCore\FAVPacket)


Get the descriptor of our audio data in device memory.

[FAudioDescriptor](API\Plugins\AVCodecsCore\Audio\FAudioDescriptor) const & GetDescriptor() const


Get the number of samples in our data in device memory.


Get the duration of our data in device memory.


FAudioResource ( [TSharedRef](API\Runtime\Core\Templates\TSharedRef)< [FAVDevice](API\Plugins\AVCodecsCore\FAVDevice) > const & Device, [FAVLayout](API\Plugins\AVCodecsCore\FAVLayout) const & Layout, [FAudioDescriptor](API\Plugins\AVCodecsCore\Audio\FAudioDescriptor) const & Descriptor )


Base wrapper for a audio device resource.

class FAudioResource : public [FAVResource](API\Plugins\AVCodecsCore\FAVResource)


CPU audio context and resource.

class FAudioContextCPU : public [FAVContext](API\Plugins\AVCodecsCore\FAVContext)


[TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< float > const & GetRaw() const


FAVResult.

virtual [FAVResult](API\Plugins\AVCodecsCore\FAVResult) Validate() const


FAudioResourceCPU ( [TSharedRef](API\Runtime\Core\Templates\TSharedRef)< [FAVDevice](API\Plugins\AVCodecsCore\FAVDevice) > const & Device, [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< float > const & Raw, [FAVLayout](API\Plugins\AVCodecsCore\FAVLayout) const & Layout, [FAudioDescriptor](API\Plugins\AVCodecsCore\Audio\FAudioDescriptor) const & Descriptor )


class FAudioResourceCPU : public [TAudioResource< FAudioContextCPU >](API\Plugins\AVCodecsCore\Audio\TAudioResource)


Get generic configuration values.
The current minimal configuration.


Set generic configuration values.

virtual void SetMinimalConfig ( [FAudioDecoderConfig](API\Plugins\AVCodecsCore\Audio\FAudioDecoderConfig) const & MinimalConfig )


virtual FAVResult ReceiveFrame &40; TResolvableAudioResource< TResource > & InOutResource &41;


virtual FAVResult SendPacket &40; FAudioPacket const & Packet &41;


TWrapper &40; TSharedRef< TAudioDecoder< TChildResource, TChildConfig >> const & Child &41;


Wrapper decoder that transforms resource/config types for use with a differently typed child decoder.

template<typename TChildResource, typename TChildConfig> class TWrapper : public TAVCoder::template TWrapper< TChildResource, TChildConfig >


TAVCodec

template<typename TResource, typename TConfig> class TAudioDecoder : public [TAVCoder< TAudioDecoder, TResource, TConfig >](API\Plugins\AVCodecsCore\TAVCoder)


FAVResult.


FAVResult.

FAVResult SendPacket &40; FAudioPacket const & Packet &41;


Set generic configuration values.

void SetMinimalConfig &40; FAudioDecoderConfig const & MinimalConfig &41;


TAVCodec

template<> class TAudioDecoder<> : public [TAVCoder< TAudioDecoder >](API\Plugins\AVCodecsCore\TAVCoder)


FAVResult.

FAVResult ReceiveFrame &40; TResolvableAudioResource< TResource > & InOutResource &41;


Set generic configuration values.

virtual void SetMinimalConfig ( [FAudioEncoderConfig](API\Plugins\AVCodecsCore\Audio\FAudioEncoderConfig) const & MinimalConfig )


virtual FAVResult SendFrame &40; TSharedPtr< TResource > const & Resource, uint32 Timestamp &41;


virtual FAVResult ReceivePacket &40; FAudioPacket & OutPacket &41;


TWrapper &40; TSharedRef< TAudioEncoder< TChildResource, TChildConfig >> const & Child &41;


Wrapper encoder that transforms resource/config types for use with a differently typed child encoder.


TAVCodec

template<typename TResource> class TAudioDecoder< TResource >


TAVCodec

template<typename TResource, typename TConfig> class TAudioEncoder : public [TAVCoder< TAudioEncoder, TResource, TConfig >](API\Plugins\AVCodecsCore\TAVCoder)


FAVResult.

FAVResult ReceivePacket &40; FAudioPacket & OutPacket &41;


FAVResult.

virtual FAVResult ReceivePackets &40; TArray< FAudioPacket > & OutPackets &41;


Set generic configuration values.

void SetMinimalConfig &40; FAudioEncoderConfig const & MinimalConfig &41;


TAVCodec

template<> class TAudioEncoder<> : public [TAVCoder< TAudioEncoder >](API\Plugins\AVCodecsCore\TAVCoder)


FAVResult.

FAVResult FlushAndReceivePackets &40; TArray< FAudioPacket > & OutPackets &41;


FAVResult.


FAVResult.

FAVResult SendFrame &40; TSharedPtr< TResource > const & Resource, uint32 Timestamp &41;


TAVCodec

template<typename TResource> class TAudioEncoder< TResource >


[TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< TContext > GetContext() const


TAudioResource ( [TSharedRef](API\Runtime\Core\Templates\TSharedRef)< [FAVDevice](API\Plugins\AVCodecsCore\FAVDevice) > const & Device, [FAVLayout](API\Plugins\AVCodecsCore\FAVLayout) const & Layout, [FAudioDescriptor](API\Plugins\AVCodecsCore\Audio\FAudioDescriptor) const & Descriptor )


Wrapper for delegated resolvable audio resources.

typedef [TDelegated](API\Plugins\AVCodecsCore\TDelegated)< TResource, [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [FAVDevice](API\Plugins\AVCodecsCore\FAVDevice) >, [FAudioDescriptor](API\Plugins\AVCodecsCore\Audio\FAudioDescriptor) > TDelegatedAudioResource


Convenience wrapper for a audio device resource that requires a specific device context to function.

template<typename TContext> class TAudioResource : public [FAudioResource](API\Plugins\AVCodecsCore\Audio\FAudioResource)


virtual bool IsResolved ( [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [FAVDevice](API\Plugins\AVCodecsCore\FAVDevice) > const & Device, [FAudioDescriptor](API\Plugins\AVCodecsCore\Audio\FAudioDescriptor) const & Descriptor ) const


A simple pool-based resolvable audio resource. The contents of the pool must be manually managed by the application.

template<typename TResource> class TPooledAudioResource : public [TResolvable< TResource >](API\Plugins\AVCodecsCore\TResolvable)


virtual [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< TResource > TryResolve ( [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [FAVDevice](API\Plugins\AVCodecsCore\FAVDevice) > const & Device, [FAudioDescriptor](API\Plugins\AVCodecsCore\Audio\FAudioDescriptor) const & Descriptor )


Wrapper for resolvable audio resources.

typedef [TResolvable](API\Plugins\AVCodecsCore\TResolvable)< TResource, [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [FAVDevice](API\Plugins\AVCodecsCore\FAVDevice) >, [FAudioDescriptor](API\Plugins\AVCodecsCore\Audio\FAudioDescriptor) > TResolvableAudioResource


Latency mode for the AV pipeline.

enum EAVLatencyMode { UltraLowLatency, LowLatency, Default, }


Simple presets for whole AV pipeline.

enum EAVPreset { UltraLowQuality, LowQuality, Default, HighQuality, Lossless, }


MAINTAINER NOTE: When adding a new result value, add a matching case statement toToString(EAVResult).

enum EAVResult { Unknown = 0, Fatal = 1000, FatalUnsupported, Error = 2000, ErrorUnsupported, ErrorInvalidState, ErrorCreating, ErrorDestroying, ErrorResolving, ErrorMapping, ErrorUnmapping, ErrorLocking, ErrorUnlocking, Warning = 3000, WarningInvalidState, Pending = 4000, PendingInput, PendingOutput, Success = 5000, }


Gets or creates an API of a specific type.
Direct reference to the typed API.

template<typename TAPI, typename [TEnableIf](API\Runtime\Core\Templates\TEnableIf)< [TIsDerivedFrom](API\Runtime\Core\Templates\TIsDerivedFrom)< TAPI, [FAPI](API\Plugins\AVCodecsCore\FAPI) >::Value, int >::type> static TAPI const & Get()


Test if the API loaded correctly, or has since been cleaned up.
True if the API is valid.


Clean up an API of a specific type.

template<typename TAPI, typename [TEnableIf](API\Runtime\Core\Templates\TEnableIf)< [TIsDerivedFrom](API\Runtime\Core\Templates\TIsDerivedFrom)< TAPI, [FAPI](API\Plugins\AVCodecsCore\FAPI) >::Value, int >::type> static void Shutdown()


Type-erased map of API singletons.

static [TTypeMap](API\Plugins\AVCodecsCore\TTypeMap)< [FAPI](API\Plugins\AVCodecsCore\FAPI) > Singletons;


API abstraction with static singletons.


FAVConfig ( [EAVPreset](API\Plugins\AVCodecsCore\EAVPreset) Preset )


Base struct for codec configuration.


Base class for device contexts, for use by resources and platform vendor architecture


Get a typed context from this device, if it exists.
The context if it exists, an invalid pointer if it does not.

template<typename TContext> [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< TContext > const & GetContext() const


Get the global hardware device.
The global hardware device atIndex.

static [TSharedRef](API\Runtime\Core\Templates\TSharedRef)< [FAVDevice](API\Plugins\AVCodecsCore\FAVDevice) > & GetHardwareDevice ( int32 Index )


Get the global software device.
The global software device.

static [TSharedRef](API\Runtime\Core\Templates\TSharedRef)< [FAVDevice](API\Plugins\AVCodecsCore\FAVDevice) > & GetSoftwareDevice()


Check if this device has a specific context.
Whether this device has a context of that type.

template<typename TContext> bool HasContext() const


Set a context by type on this device.

template<typename TContext> void SetContext ( [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< TContext > const & NewContext )


A representation of a physical computer device, be it a GPU or a CPU or an external device, that can hold device resource contexts (Vulkan, D3D, CUDA, etc).


Usage:TAVCoderfactory for AVResource usage, ie. FAVExtension::IsCompatible(Device);
True if the type is compatible in this context.

template<typename TContext, typename TOption> static bool IsCompatible ( [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< class [FAVDevice](API\Plugins\AVCodecsCore\FAVDevice) > const & Device )


Usage:TAVCoderfactory for AVConfig usage, ie. FAVExtension::IsCompatible(Instance);
True if the type is compatible in this context.

template<typename TContext, typename TOption> static bool IsCompatible ( [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< class [FAVInstance](API\Plugins\AVCodecsCore\FAVInstance) > const & Instance )


Versions ofTAndandTOrthat work with std::is_same return values, this is incompatible with TEMPLATE_REQUIRES so we need to still use this construct for now until std::is_same_v is better supported

template<typename A, typename B> struct TIsSameHack


FAVResult.

template<typename TOutput, typename TInput, typename [TEnableIf](API\Runtime\Core\Templates\TEnableIf)< [TOr](API\Runtime\Core\Templates\TOr)< [TIsSameHack](API\Plugins\AVCodecsCore\FAVExtension\TIsSameHack)< TInput, TOutput >, [TNot](API\Runtime\Core\Templates\TNot)< [TIsDerivedFrom](API\Runtime\Core\Templates\TIsDerivedFrom)< TOutput, TInput >>>::Value, int >::type> static [FAVResult](API\Plugins\AVCodecsCore\FAVResult) TransformConfig ( TOutput & OutConfig, TInput const & InConfig )


enum &123; Value = std::is_same_v<A, B> &125;


template<> [FAVResult](API\Plugins\AVCodecsCore\FAVResult) TransformConfig ( [FVideoEncoderConfigAMF](API\Plugins\AMFCodecs\Video\Encoders\Configs\FVideoEncoderConfigAMF) & OutConfig, [FVideoEncoderConfigH265](API\Plugins\AVCodecsCore\Video\Encoders\Configs\FVideoEncoderConfigH265) const & InConfig )


template<> [FAVResult](API\Plugins\AVCodecsCore\FAVResult) TransformConfig ( [FVideoDecoderConfigAMF](API\Plugins\AMFCodecs\Video\Decoders\Configs\FVideoDecoderConfigAMF) & OutConfig, struct [FVideoDecoderConfig](API\Plugins\AVCodecsCore\Video\FVideoDecoderConfig) const & InConfig )


template<> [FAVResult](API\Plugins\AVCodecsCore\FAVResult) TransformConfig ( [FVideoDecoderConfigAMF](API\Plugins\AMFCodecs\Video\Decoders\Configs\FVideoDecoderConfigAMF) & OutConfig, struct [FVideoDecoderConfigH264](API\Plugins\AVCodecsCore\Video\Decoders\Configs\FVideoDecoderConfigH264) const & InConfig )


template<> [FAVResult](API\Plugins\AVCodecsCore\FAVResult) TransformConfig ( [FVideoDecoderConfigAMF](API\Plugins\AMFCodecs\Video\Decoders\Configs\FVideoDecoderConfigAMF) & OutConfig, struct [FVideoDecoderConfigH265](API\Plugins\AVCodecsCore\Video\Decoders\Configs\FVideoDecoderConfigH265) const & InConfig )


template<> [FAVResult](API\Plugins\AVCodecsCore\FAVResult) TransformConfig ( [FVideoEncoderConfigAMF](API\Plugins\AMFCodecs\Video\Encoders\Configs\FVideoEncoderConfigAMF) & OutConfig, struct [FVideoEncoderConfig](API\Plugins\AVCodecsCore\Video\FVideoEncoderConfig) const & InConfig )


template<> [FAVResult](API\Plugins\AVCodecsCore\FAVResult) TransformConfig ( [FVideoEncoderConfigAMF](API\Plugins\AMFCodecs\Video\Encoders\Configs\FVideoEncoderConfigAMF) & OutConfig, struct [FVideoEncoderConfigH264](API\Plugins\AVCodecsCore\Video\Encoders\Configs\FVideoEncoderConfigH264) const & InConfig )


template<> [FAVResult](API\Plugins\AVCodecsCore\FAVResult) TransformConfig ( [FVideoEncoderConfigAMF](API\Plugins\AMFCodecs\Video\Encoders\Configs\FVideoEncoderConfigAMF) & OutConfig, struct [FVideoEncoderConfigH265](API\Plugins\AVCodecsCore\Video\Encoders\Configs\FVideoEncoderConfigH265) const & InConfig )


template<> [FAVResult](API\Plugins\AVCodecsCore\FAVResult) TransformConfig ( [FVideoDecoderConfigNVDEC](API\Plugins\NVDEC\Video\Decoders\Configs\FVideoDecoderConfigNVDEC) & OutConfig, [FVideoDecoderConfig](API\Plugins\AVCodecsCore\Video\FVideoDecoderConfig) const & InConfig )


template<> [FAVResult](API\Plugins\AVCodecsCore\FAVResult) TransformConfig ( [FVideoDecoderConfig](API\Plugins\AVCodecsCore\Video\FVideoDecoderConfig) & OutConfig, [FVideoDecoderConfigNVDEC](API\Plugins\NVDEC\Video\Decoders\Configs\FVideoDecoderConfigNVDEC) const & InConfig )


template<> [FAVResult](API\Plugins\AVCodecsCore\FAVResult) TransformConfig ( [FVideoDecoderConfigNVDEC](API\Plugins\NVDEC\Video\Decoders\Configs\FVideoDecoderConfigNVDEC) & OutConfig, [FVideoDecoderConfigH264](API\Plugins\AVCodecsCore\Video\Decoders\Configs\FVideoDecoderConfigH264) const & InConfig )


Alternate path for upcasting.

template<typename TOutput, typename TInput, typename [TEnableIf](API\Runtime\Core\Templates\TEnableIf)< [TAnd](API\Runtime\Core\Templates\TAnd)< [TNot](API\Runtime\Core\Templates\TNot)< [TIsSameHack](API\Plugins\AVCodecsCore\FAVExtension\TIsSameHack)< TInput, TOutput >>, [TIsDerivedFrom](API\Runtime\Core\Templates\TIsDerivedFrom)< TOutput, TInput >>::Value, int >::type> static [FAVResult](API\Plugins\AVCodecsCore\FAVResult) TransformConfig ( TOutput & OutConfig, TInput const & InConfig )


template<> [FAVResult](API\Plugins\AVCodecsCore\FAVResult) TransformConfig ( [FVideoDecoderConfigNVDEC](API\Plugins\NVDEC\Video\Decoders\Configs\FVideoDecoderConfigNVDEC) & OutConfig, [FVideoDecoderConfigH265](API\Plugins\AVCodecsCore\Video\Decoders\Configs\FVideoDecoderConfigH265) const & InConfig )


template<> [FAVResult](API\Plugins\AVCodecsCore\FAVResult) TransformConfig ( [FVideoDecoderConfigNVDEC](API\Plugins\NVDEC\Video\Decoders\Configs\FVideoDecoderConfigNVDEC) & OutConfig, struct [FVideoDecoderConfig](API\Plugins\AVCodecsCore\Video\FVideoDecoderConfig) const & InConfig )


template<> [FAVResult](API\Plugins\AVCodecsCore\FAVResult) TransformConfig ( [FVideoDecoderConfigNVDEC](API\Plugins\NVDEC\Video\Decoders\Configs\FVideoDecoderConfigNVDEC) & OutConfig, struct [FVideoDecoderConfigH264](API\Plugins\AVCodecsCore\Video\Decoders\Configs\FVideoDecoderConfigH264) const & InConfig )


template<> [FAVResult](API\Plugins\AVCodecsCore\FAVResult) TransformConfig ( [FVideoDecoderConfigNVDEC](API\Plugins\NVDEC\Video\Decoders\Configs\FVideoDecoderConfigNVDEC) & OutConfig, struct [FVideoDecoderConfigH265](API\Plugins\AVCodecsCore\Video\Decoders\Configs\FVideoDecoderConfigH265) const & InConfig )


template<> [FAVResult](API\Plugins\AVCodecsCore\FAVResult) TransformConfig ( [FVideoEncoderConfigNVENC](API\Plugins\NVENC\Video\Encoders\Configs\FVideoEncoderConfigNVENC) & OutConfig, [FVideoEncoderConfig](API\Plugins\AVCodecsCore\Video\FVideoEncoderConfig) const & InConfig )


template<> [FAVResult](API\Plugins\AVCodecsCore\FAVResult) TransformConfig ( [FVideoEncoderConfig](API\Plugins\AVCodecsCore\Video\FVideoEncoderConfig) & OutConfig, [FVideoEncoderConfigNVENC](API\Plugins\NVENC\Video\Encoders\Configs\FVideoEncoderConfigNVENC) const & InConfig )


template<> [FAVResult](API\Plugins\AVCodecsCore\FAVResult) TransformConfig ( [FVideoEncoderConfigNVENC](API\Plugins\NVENC\Video\Encoders\Configs\FVideoEncoderConfigNVENC) & OutConfig, [FVideoEncoderConfigH264](API\Plugins\AVCodecsCore\Video\Encoders\Configs\FVideoEncoderConfigH264) const & InConfig )


template<> [FAVResult](API\Plugins\AVCodecsCore\FAVResult) TransformConfig ( [FVideoEncoderConfigNVENC](API\Plugins\NVENC\Video\Encoders\Configs\FVideoEncoderConfigNVENC) & OutConfig, [FVideoEncoderConfigH265](API\Plugins\AVCodecsCore\Video\Encoders\Configs\FVideoEncoderConfigH265) const & InConfig )


template<> [FAVResult](API\Plugins\AVCodecsCore\FAVResult) TransformConfig ( [FVideoEncoderConfigNVENC](API\Plugins\NVENC\Video\Encoders\Configs\FVideoEncoderConfigNVENC) & OutConfig, struct [FVideoEncoderConfig](API\Plugins\AVCodecsCore\Video\FVideoEncoderConfig) const & InConfig )


template<> [FAVResult](API\Plugins\AVCodecsCore\FAVResult) TransformConfig ( [FVideoEncoderConfigNVENC](API\Plugins\NVENC\Video\Encoders\Configs\FVideoEncoderConfigNVENC) & OutConfig, struct [FVideoEncoderConfigH264](API\Plugins\AVCodecsCore\Video\Encoders\Configs\FVideoEncoderConfigH264) const & InConfig )


template<> [FAVResult](API\Plugins\AVCodecsCore\FAVResult) TransformConfig ( [FVideoDecoderConfigAMF](API\Plugins\AMFCodecs\Video\Decoders\Configs\FVideoDecoderConfigAMF) & OutConfig, [FVideoDecoderConfig](API\Plugins\AVCodecsCore\Video\FVideoDecoderConfig) const & InConfig )


template<> [FAVResult](API\Plugins\AVCodecsCore\FAVResult) TransformConfig ( [FVideoEncoderConfigNVENC](API\Plugins\NVENC\Video\Encoders\Configs\FVideoEncoderConfigNVENC) & OutConfig, struct [FVideoEncoderConfigH265](API\Plugins\AVCodecsCore\Video\Encoders\Configs\FVideoEncoderConfigH265) const & InConfig )


template<> [FAVResult](API\Plugins\AVCodecsCore\FAVResult) TransformConfig ( [FAudioEncoderConfigWMF](API\Plugins\WMFCodecs\Audio\Encoders\Configs\FAudioEncoderConfigWMF) & OutConfig, [FAudioEncoderConfigAAC](API\Plugins\AVCodecsCore\Audio\Encoders\Configs\FAudioEncoderConfigAAC) const & InConfig )


template<> [FAVResult](API\Plugins\AVCodecsCore\FAVResult) TransformConfig ( [FAudioEncoderConfigWMF](API\Plugins\WMFCodecs\Audio\Encoders\Configs\FAudioEncoderConfigWMF) & OutConfig, struct [FAudioEncoderConfigAAC](API\Plugins\AVCodecsCore\Audio\Encoders\Configs\FAudioEncoderConfigAAC) const & InConfig )


template<> [FAVResult](API\Plugins\AVCodecsCore\FAVResult) TransformConfig ( [FVideoDecoderConfig](API\Plugins\AVCodecsCore\Video\FVideoDecoderConfig) & OutConfig, [FVideoDecoderConfigAMF](API\Plugins\AMFCodecs\Video\Decoders\Configs\FVideoDecoderConfigAMF) const & InConfig )


template<> [FAVResult](API\Plugins\AVCodecsCore\FAVResult) TransformConfig ( [FVideoDecoderConfigAMF](API\Plugins\AMFCodecs\Video\Decoders\Configs\FVideoDecoderConfigAMF) & OutConfig, [FVideoDecoderConfigH264](API\Plugins\AVCodecsCore\Video\Decoders\Configs\FVideoDecoderConfigH264) const & InConfig )


template<> [FAVResult](API\Plugins\AVCodecsCore\FAVResult) TransformConfig ( [FVideoDecoderConfigAMF](API\Plugins\AMFCodecs\Video\Decoders\Configs\FVideoDecoderConfigAMF) & OutConfig, [FVideoDecoderConfigH265](API\Plugins\AVCodecsCore\Video\Decoders\Configs\FVideoDecoderConfigH265) const & InConfig )


template<> [FAVResult](API\Plugins\AVCodecsCore\FAVResult) TransformConfig ( [FVideoEncoderConfigAMF](API\Plugins\AMFCodecs\Video\Encoders\Configs\FVideoEncoderConfigAMF) & OutConfig, [FVideoEncoderConfig](API\Plugins\AVCodecsCore\Video\FVideoEncoderConfig) const & InConfig )


template<> [FAVResult](API\Plugins\AVCodecsCore\FAVResult) TransformConfig ( [FVideoEncoderConfigAMF](API\Plugins\AMFCodecs\Video\Encoders\Configs\FVideoEncoderConfigAMF) & OutConfig, [FVideoEncoderConfigH264](API\Plugins\AVCodecsCore\Video\Encoders\Configs\FVideoEncoderConfigH264) const & InConfig )


FAVResult.

template<typename TOutput, typename TInput, typename [TEnableIf](API\Runtime\Core\Templates\TEnableIf)< ![TIsDerivedFrom](API\Runtime\Core\Templates\TIsDerivedFrom)< TInput, TOutput >::Value, int >::type> static [FAVResult](API\Plugins\AVCodecsCore\FAVResult) TransformResource ( [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< TOutput > & OutResource, [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< TInput > const & InResource )


template<> [FAVResult](API\Plugins\AVCodecsCore\FAVResult) TransformResource ( [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [FVideoResourceRHI](API\Plugins\AVCodecsCoreRHI\Video\Resources\FVideoResourceRHI) > & OutResource, [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [FVideoResourceCPU](API\Plugins\AVCodecsCore\Video\Resources\FVideoResourceCPU) > const & InResource )


Shortcut case for above for when the input and output types match. This does NOT duplicate the resource.

template<typename TOutput, typename TInput, typename [TEnableIf](API\Runtime\Core\Templates\TEnableIf)< [TIsDerivedFrom](API\Runtime\Core\Templates\TIsDerivedFrom)< TInput, TOutput >::Value, int >::type> static [FAVResult](API\Plugins\AVCodecsCore\FAVResult) TransformResource ( [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< TOutput > & OutResource, [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< TInput > const & InResource )


template<> [FAVResult](API\Plugins\AVCodecsCore\FAVResult) TransformResource ( [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [FVideoResourceVulkan](API\Plugins\AVCodecsCore\Video\Resources\FVideoResourceVulkan) > & OutResource, [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [FVideoResourceRHI](API\Plugins\AVCodecsCoreRHI\Video\Resources\FVideoResourceRHI) > const & InResource )


template<> [FAVResult](API\Plugins\AVCodecsCore\FAVResult) TransformConfig ( [FVideoEncoderConfig](API\Plugins\AVCodecsCore\Video\FVideoEncoderConfig) & OutConfig, [FVideoEncoderConfigAMF](API\Plugins\AMFCodecs\Video\Encoders\Configs\FVideoEncoderConfigAMF) const & InConfig )


template<> [FAVResult](API\Plugins\AVCodecsCore\FAVResult) TransformResource ( [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [FVideoResourceCUDA](API\Plugins\NVCodecs\Video\Resources\FVideoResourceCUDA) > & OutResource, [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [FVideoResourceVulkan](API\Plugins\AVCodecsCore\Video\Resources\FVideoResourceVulkan) > const & InResource )


Handles pixel format or colorspace transformations

template<> [FAVResult](API\Plugins\AVCodecsCore\FAVResult) TransformResource ( [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [FVideoResourceRHI](API\Plugins\AVCodecsCoreRHI\Video\Resources\FVideoResourceRHI) > & OutResource, [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< class [FVideoResourceRHI](API\Plugins\AVCodecsCoreRHI\Video\Resources\FVideoResourceRHI) > const & InResource )


Get a mutable reference to typed data held on this instance. Will create default data of this type if it does not already exist.
The typed data.


Be sure to EXPORT the definition and it will be automatically linked by consumers. Static extension system for simple composition of different resource/config types, via exported specializations


Add default data by type to this instance.


Get typed data from this instance. Will create default data of this type if it does not already exist.
The typed data.

template<typename TData> TData const & Get()


Remove a specific type of data from this instance.


Check if this instance has a specific type of data.
Whether this instance has data of that type.

template<typename TData> bool Has() const


Set data by type on this instance.

template<typename TData> void Set ( TData const & NewData )


Check if this instance has a specific type of data, and return a mutable reference to it if it exists.
A pointer to the data, if it exists. Not valid outside of the scope from which this is called.

template<typename TData> TData * TryEdit()


Check if this instance has a specific type of data, and return it if it exists.
Whether the instance has data of the type.

template<typename TData> bool TryGet ( TData & OutData )


The shared data and logic of a single logical pipeline, usually one or more coders.


bool operator== ( [FAVLayout](API\Plugins\AVCodecsCore\FAVLayout) const & RHS ) const


bool operator!= ( [FAVLayout](API\Plugins\AVCodecsCore\FAVLayout) const & RHS ) const


FAVLayout ( uint32 Stride, uint32 Offset, uint32 Size )


This struct defines the memory footprint of a block of data.


Test whether raw data is empty or not set.
True if raw data is empty or not set.


Convenience wrapper to treat raw data as an array view.
Raw data as an array view.


void WriteToFile ( TCHAR * FileName ) const


FAVPacket ( [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< uint8 > const & DataPtr, uint64 DataSize, uint64 Timestamp, uint64 Index )


Base container for raw encoded AV resources, created by encoders and consumed by decoders. Can be treated like a networking packet, where the encoder and decoder are separate machines and communicate only through this medium.

DataPtr

Safe pointer to packet data.

DataSize

Size of packet data.

Index

Packet index in the sequence.

Timestamp

Timestamp of packet.


Get a reference to our device parent. Is always valid.

[TSharedRef](API\Runtime\Core\Templates\TSharedRef)< [FAVDevice](API\Plugins\AVCodecsCore\FAVDevice) > const & GetDevice() const


Get the layout of our data in device memory.

[FAVLayout](API\Plugins\AVCodecsCore\FAVLayout) const & GetLayout() const


Get the size of our data in device memory.


Get the offset of our data in device memory.


Get the stride of our data in device memory.


Lock this resource for internal use. Is a blocking call until the lock can be taken.


Lock this resource for internal use, within the current scope. Is a blocking call until the lock can be taken.
The lock object. Capture this, because when it goes out of scope it will unlock the resource.


Create a mapping of this resource to another resource (or other object). Returned reference must then be set by the caller.
Shared pointer reference to the mapping, initially invalid until set by the caller.

template<typename TMapping> [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< TMapping > & PinMapping()


Release this resource for external use.


FAVResult.

virtual [FAVResult](API\Plugins\AVCodecsCore\FAVResult) Validate() const


FAVResource ( [TSharedRef](API\Runtime\Core\Templates\TSharedRef)< [FAVDevice](API\Plugins\AVCodecsCore\FAVDevice) > const & Device, [FAVLayout](API\Plugins\AVCodecsCore\FAVLayout) const & Layout )


Base wrapper for an immutable device resource. Bundles necessary data that may not be easily retrieved on without an RHI, such as size on device. If the underlying device resource must change, this resource wrapper must be recreated.


static int32 constexpr EMPTY_VENDOR_VALUE = TNumericLimits<int32>::Min();


Flag this result as handled, so that it won't be logged.


True if AV result code is in the range of Error.


True if AV result code is in the range of Fatal.


True if AV result code is NOT in the range of Error.


True if AV result code is NOT in the range of Fatal.


True if AV result code is in the range of Pending.


True if AV result code is NOT in the range of Warning.


True if AV result code is NOT in the range of Pending.


True if AV result code is NOT in the range of Success.


True if AV result code is in the range of Success.


True if AV result code is in the range of Warning.


Logs this result to the internal AVCodecCore log category.


Statically log a result without constructing and returning it.

static FORCEINLINEvoid Log ( [EAVResult](API\Plugins\AVCodecsCore\EAVResult) Value, [FString](API\Runtime\Core\Containers\FString) const & Message, [FString](API\Runtime\Core\Containers\FString) const & Vendor, int32 VendorValue )


FORCEINLINE[FAVResult](API\Plugins\AVCodecsCore\FAVResult) & operator= ( [FAVResult](API\Plugins\AVCodecsCore\FAVResult) const & From )


FORCEINLINEbool operator!= ( [EAVResult](API\Plugins\AVCodecsCore\EAVResult) OtherValue ) const


FORCEINLINEbool operator== ( [EAVResult](API\Plugins\AVCodecsCore\EAVResult) OtherValue ) const


Convert this error into a readable string.
Pretty string.


FAVResult ( [FAVResult](API\Plugins\AVCodecsCore\FAVResult) const & From )


FAVResult ( [EAVResult](API\Plugins\AVCodecsCore\EAVResult) Value, [FString](API\Runtime\Core\Containers\FString) const & Message, [FString](API\Runtime\Core\Containers\FString) const & Vendor, int32 VendorValue )


Primary AV result type. Contains a result code, an optional message, and optional specific data about the platform vendor where the error occured. Automatically logs on warning and lower if not handled.

bHandled

Bitflag for whether this result has been handled (or whether is still must be logged).

Message

Optional message alongside AV result code.

Value

AV result code.

Vendor

Optional vendor where this error occured.

VendorValue

Optional result code supplied by the vendor.


FTypeID::Get< amf::AMFSurfacePtr >

template<typename TType> static [FTypeID](API\Plugins\AVCodecsCore\FTypeID) Get()


returnFAVResult(EAVResult::ErrorInvalidState, TEXT("Decoder is not open")); /**

*return FAVResult ( [EAVResult::ErrorCreating](API\Plugins\AVCodecsCore\EAVResult), TEXT("Could not create encoder"), TEXT("NVENC"), NvencErrorCode )


template<> AVCODECSCORE_API [FTypeID](API\Plugins\AVCodecsCore\FTypeID) Get()


template<> AVCODECSCORERHI_API [FTypeID](API\Plugins\AVCodecsCore\FTypeID) Get()


template<> NVCODECS_API [FTypeID](API\Plugins\AVCodecsCore\FTypeID) Get()


template<> AMFCODECS_API [FTypeID](API\Plugins\AVCodecsCore\FTypeID) Get()


template<> NVDEC_API [FTypeID](API\Plugins\AVCodecsCore\FTypeID) Get()


template<> NVENC_API [FTypeID](API\Plugins\AVCodecsCore\FTypeID) Get()


template<> WMFCODECS_API [FTypeID](API\Plugins\AVCodecsCore\FTypeID) Get()


bool operator!= ( [FTypeID](API\Plugins\AVCodecsCore\FTypeID) const & Other ) const


bool operator== ( [FTypeID](API\Plugins\AVCodecsCore\FTypeID) const & Other ) const


Private, require allFTypeID's to be valid.


A simple type-erased type identifier, without the use of RTTI or the unreal type system.


FAVResult.


Type-erased factory list. First level is domain ids, second is resource ids, third is configuration ids. Stored void pointers point to aTArrayof TAVCoder::TFactory's with types matching the domain, resource, and configuration ids. This is declared here to avoid exporting the template types (which can be real dodgy).

static [TMap](API\Runtime\Core\Containers\TMap)< [FTypeID](API\Plugins\AVCodecsCore\FTypeID), [TMap](API\Runtime\Core\Containers\TMap)< [FTypeID](API\Plugins\AVCodecsCore\FTypeID), [TMap](API\Runtime\Core\Containers\TMap)< [FTypeID](API\Plugins\AVCodecsCore\FTypeID), [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< void > > > > Factories = TMap<FTypeID, TMap<FTypeID, TMap<FTypeID, TSharedPtr<void>>>>();


Gracefully tear down the underlying coder architecture.


Get the physical device this coder runs on.

[TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [FAVDevice](API\Plugins\AVCodecsCore\FAVDevice) > const & GetDevice() const


Get the shared data cache of this coder.

[TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [FAVInstance](API\Plugins\AVCodecsCore\FAVInstance) > const & GetInstance() const


True if the underlying coder architecture is ready for use.


FAVResult.

[FAVResult](API\Plugins\AVCodecsCore\FAVResult) Open ( [TSharedRef](API\Runtime\Core\Templates\TSharedRef)< [FAVDevice](API\Plugins\AVCodecsCore\FAVDevice) > const & NewDevice, [TSharedRef](API\Runtime\Core\Templates\TSharedRef)< [FAVInstance](API\Plugins\AVCodecsCore\FAVInstance) > const & NewInstance )


Simple base coder interface


**Highest level allows optional simultaneous return of a value **[TAVResult](API\Plugins\AVCodecsCore\TAVResult)< [FVideoPacket](API\Plugins\AVCodecsCore\Video\FVideoPacket) > ReceivePacket()


A mutable reference to the pending configuration, to be applied on the next call to ApplyConfig.


Get the currently active configuration, for comparison with PendingConfig.

TConfig const & GetAppliedConfig() const


The pending configuration, to be applied on the next call to ApplyConfig.

TConfig const & GetPendingConfig() const


Set the pending configuration, to be applied on the next call to ApplyConfig.

void SetPendingConfig ( TConfig const & NewPendingConfig ) const


virtual FAVResult Open &40; TSharedRef< FAVDevice > const & NewDevice, TSharedRef< FAVInstance > const & NewInstance &41;


TWrapper &40; TSharedRef< TDomain< TChildResource, TChildConfig >> const & Child &41;


Wrapper coder that transforms resource/config types for use with a differently typed child coder.

template<typename TChildResource, typename TChildConfig> class TWrapper : public TDomain< TResource, TConfig >

Child

The child coder to wrap.


template<template< typename TResource=void, typename TConfig=void > typename TDomain, typename TResource, typename TConfig> class TAVCoder : public TDomain< TResource >

AppliedConfig

The currently active configuration, for comparison with PendingConfig. Never modify this directly.


Usage: To be inherited by a domain implementation, see top of file.

template<template< typename TResource=void, typename TConfig=void > typename TDomain, typename TResource> class TAVCoder< TDomain, TResource, void > : public TDomain<>


TAVCoder< TDomain, void, void >::CountSupported

Count the number of different coders that can be created to match this combination of resource and configuration.
The number of different coders that can be created.

template<typename TResource, typename TConfig> static int32 CountSupported &40; TSharedRef< FAVDevice > const & NewDevice, TSharedRef< FAVInstance > const & NewInstance &41;


Create a type-safe coder if possible, open and ready for use.
The constructed and opened coder, null if one could not be created.

template<typename TResource, typename TConfig> static TSharedPtr< TDomain< TResource, TConfig > > Create &40; TSharedRef< FAVDevice > const & NewDevice, TConfig const & NewConfig &41;


template<typename TResource, typename TConfig> static TSharedPtr< TDomain< TResource, TConfig > > Create &40; TSharedRef< FAVDevice > const & NewDevice, TSharedRef< FAVInstance > const & NewInstance &41;


TAVCoder< TDomain, void, void >::CreateChecked

Create a type-safe coder, open and ready for use.
The constructed and opened coder. Throws an exception if one could not be created.

template<typename TResource, typename TConfig> static TSharedRef< TDomain< TResource, TConfig > > CreateChecked &40; TSharedRef< FAVDevice > const & NewDevice, TConfig const & NewConfig &41;


Create a type-safe coder, open and ready for use. NOTE: This is for advanced use cases only (ie. sharing an instance between multiple coders). Prefer the above version of this function if possible.
The constructed and opened coder. Throws an exception if one could not be created.

template<typename TResource, typename TConfig> static TSharedRef< TDomain< TResource, TConfig > > CreateChecked &40; TSharedRef< FAVDevice > const & NewDevice, TSharedRef< FAVInstance > const & NewInstance &41;


Delegate used to test factory compatibility.

typedef TFunction< bool(TSharedRef< FAVDevice > const &, TSharedRef< FAVInstance > const &)> FIsCompatible


TAVCoder< TDomain, void, void >::GetDevice

virtual TSharedPtr< FAVDevice > const & GetDevice&40;&41; const


TAVCoder< TDomain, void, void >::GetInstance

virtual TSharedPtr< FAVInstance > const & GetInstance&40;&41; const


TAVCoder< TDomain, void, void >::IsSupported

Checks if any coder can be created to match this combination of resource and configuration. This does NOT check the device or desired configuration, so all potential coders may still reject being created.
True if a coder could be created.

template<typename TResource, typename TConfig> static bool IsSupported&40;&41;


Checks if any coder can be created to match this combination of resource and configuration.
True if a coder could be created.

template<typename TResource, typename TConfig> static bool IsSupported &40; TSharedRef< FAVDevice > const & NewDevice, TSharedRef< FAVInstance > const & NewInstance &41;


FAVResult.


TAVCoder< TDomain, void, void >::Register

Register a fully type-complete coder with the domain factory.
The constructed factory, to be further customised if desired.

template<typename TCoder, typename TResource, typename TConfig> static TFactory< TResource, TConfig > & Register &40; FIsCompatible const & IsCompatible &41;


TAVCoder< TDomain, void, void >::RegisterPermutationsOf::With::And::And

And &40; FIsCompatible const & IsCompatible &41;


And(FIsCompatibleconst& IsCompatible)

template<typename TConfig, typename... TConfigs> struct And


And(FIsCompatibleconst& IsCompatible)


TAVCoder< TDomain, void, void >::RegisterPermutationsOf::With::With


With()

template<typename TResource, typename... TResources> struct With


End case.


Usage: Highly recursive template permuter, see NVENCModule source for example of use.

template<typename TCoder> struct RegisterPermutationsOf


typedef TFunction< TSharedPtr< TDomain< TResource, TConfig > >)> FCreate


TAVCoder< TDomain, void, void >::TFactory::TFactory

TFactory &40; FIsCompatible const & IsCompatible, FCreate const & Create &41;


TFactory(FIsCompatibleconst& IsCompatible,FCreateconst& Create)

template<typename TResource, typename TConfig> struct TFactory


Wrap a fully typed child coder with a differently-typed outer encoder, to transform one resource/config type into another.
The new wrapper coder containing the child.

template<typename TResource, typename TConfig, typename TCoder> static TSharedPtr< TDomain< TResource, TConfig > > Wrap &40; TSharedPtr< TCoder > const & Child &41;


template<template< typename TResource=void, typename TConfig=void > typename TDomain> class TAVCoder< TDomain, void, void > : public [IAVCoder](API\Plugins\AVCodecsCore\IAVCoder)


TAVResult::operator TReturnValue const &

FORCEINLINE operator TReturnValue const &() const


TAVResult ( TReturnValue const & ReturnValue )


TAVResult ( [FAVResult](API\Plugins\AVCodecsCore\FAVResult) const & Result )


TAVResult ( TReturnValue const & ReturnValue, [FAVResult](API\Plugins\AVCodecsCore\FAVResult) const & Result )


TAVResult ( [EAVResult](API\Plugins\AVCodecsCore\EAVResult) Value, [FString](API\Runtime\Core\Containers\FString) const & Message, [FString](API\Runtime\Core\Containers\FString) const & Vendor, int32 VendorValue )


TAVResult ( TReturnValue const & ReturnValue, [EAVResult](API\Plugins\AVCodecsCore\EAVResult) Value, [FString](API\Runtime\Core\Containers\FString) const & Message, [FString](API\Runtime\Core\Containers\FString) const & Vendor, int32 VendorValue )


Templated AV result type that allows returning a result code and an optional value. Functions identically toFAVResult.

template<typename TReturnValue> struct TAVResult : public [FAVResult](API\Plugins\AVCodecsCore\FAVResult)

ReturnValue

Optional return value, is only valid when AV result code is in the range of Success.


Delegate definition to be used to resolve the deferred object.

typedef [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< void([TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< TObject > &, TArgs...)> FDelegate


Deferred resolve, to be overridden by a variety of implementations.
Resolved deferred object if successful, invalid if not.

virtual [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< TObject > TryResolve ( TArgs const &... Args )


TDelegated ( [FDelegate](API\Plugins\AVCodecsCore\TDelegated\FDelegate) const & Delegate )


Delegate-based implementation ofTResolvable.

template<typename TObject, typename... TArgs> class TDelegated : public [TResolvable< TObject, TArgs... >](API\Plugins\AVCodecsCore\TResolvable)


MAINTAINER NOTE: When adding a new EAVResult value, add a matching case statement to this.

[FString](API\Runtime\Core\Containers\FString) ToString ( [EAVResult](API\Plugins\AVCodecsCore\EAVResult) Result )


Test whether the deferred object has been successfully resolved.
True if the deferred object is valid.


Test whether the deferred object has been successfully resolved with specific arguments.
True if the deferred object is valid.

bool IsResolved ( TArgs const &... Args ) const


TResolvable::operator TSharedPtr< TObject > &


TResolvable::operator TSharedPtr< TObject > const &

operator TSharedPtr< TObject > const &() const


bool operator== ( [TResolvable](API\Plugins\AVCodecsCore\TResolvable)< TObject, TArgs... > const & Other ) const


bool operator!= ( [TResolvable](API\Plugins\AVCodecsCore\TResolvable)< TObject, TArgs... > const & Other ) const


Clear the resolved deferred object.


[TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< TObject > TryResolve ( TArgs const &... Args )


Attempt to resolve the deferred object with specific arguments.
True if the deferred object is successfully resolved.


[TSharedRef](API\Runtime\Core\Templates\TSharedRef)< TObject > ToSharedRef() const


All generic (non-AV) utility types. Base type for a deferred object, to be resolved by an external application with specific and unpredictable requirements.

template<typename TObject, typename... TArgs> class TResolvable


Tests whether this map contains an object of a specific type.
True if an object of the type exists.

template<typename TType, typename [TEnableIf](API\Runtime\Core\Templates\TEnableIf)< [TIsDerivedFrom](API\Runtime\Core\Templates\TIsDerivedFrom)< TType, TBaseType >::Value, int >::type> bool Contains() const


Retrieves an object of a specific type, and if it does not exist in the map then create an invalid reference to it (which must then be set by the caller).
Shared pointer reference to the mapping, invalid if the object did not already exist.

template<typename TType, typename [TEnableIf](API\Runtime\Core\Templates\TEnableIf)< [TIsDerivedFrom](API\Runtime\Core\Templates\TIsDerivedFrom)< TType, TBaseType >::Value, int >::type> [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< TType > & Edit()


Retrieves an object of a specific type, if it already exists in the map.
Typed object if it exists in the map, invalid if it does not.

template<typename TType, typename [TEnableIf](API\Runtime\Core\Templates\TEnableIf)< [TIsDerivedFrom](API\Runtime\Core\Templates\TIsDerivedFrom)< TType, TBaseType >::Value, int >::type> [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< TType > const & Get() const


Remove an object type from the map.

template<typename TType, typename [TEnableIf](API\Runtime\Core\Templates\TEnableIf)< [TIsDerivedFrom](API\Runtime\Core\Templates\TIsDerivedFrom)< TType, TBaseType >::Value, int >::type> void Remove ( [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< TType > const & NewContext )


Add an object to the map, indexed by its type. If an object of this type already exists then replace it.

template<typename TType, typename [TEnableIf](API\Runtime\Core\Templates\TEnableIf)< [TIsDerivedFrom](API\Runtime\Core\Templates\TIsDerivedFrom)< TType, TBaseType >::Value, int >::type> void Set ( [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< TType > const & NewObject )


Typed map of objects that are uniquely indexed by their type.

template<typename TBaseType> class TTypeMap


uint32 PeekBits ( uint64 NumBits ) const


template<typename TOutput> void Read ( TOutput & Output )


template<typename ValueType> void Read ( [FBitstreamSegment::UnsignedExpGolomb](API\Plugins\AVCodecsCore\Utils\FBitstreamSegment\UnsignedExpGolomb)< ValueType > & Output )


template<typename ValueType> void Read ( [FBitstreamSegment::SignedExpGolomb](API\Plugins\AVCodecsCore\Utils\FBitstreamSegment\SignedExpGolomb)< ValueType > & Output )


template<> void Read ( [FBitstreamSegment::U](API\Plugins\AVCodecsCore\Utils\FBitstreamSegment\U)< 0 > & Output )


template<typename TOutput, typename... TOutputs> void Read ( TOutput & Output, TOutputs &... Outputs )


template<typename TOutput> void ReadBits ( TOutput & Output, uint64 NumBits )


void Seek ( uint64 NewBytePosition, uint32 NewBitPosition )


FBitstreamReader ( uint8 * Data, uint64 DataSize, uint64 BytePosition, uint8 BitPosition )


Simple wrapper for typed reads from a bitstream.


SignedExpGolomb & operator&61; &40; ValueType From &41;


SignedExpGolomb &40; ValueType Value &41;


Signed int, compressed to a dynamic number of bits.

template<typename ValueType> struct SignedExpGolomb


U & operator&61; &40; ValueType const & From &41;


U< 0, ValueType >

template<uint8 NumBits, typename ValueType> struct U


UnsignedExpGolomb & operator&61; &40; ValueType From &41;


UnsignedExpGolomb &40; ValueType Value &41;


Unsigned int, compressed to a dynamic number of bits.

template<typename ValueType> struct UnsignedExpGolomb


FBitstreamSegment::U< 0, ValueType >::operator uint32


FBitstreamSegment::U< 0, ValueType >::operator=


template<typename ValueType> struct U< 0, ValueType >


Base class for a compressed block of bitstream data. Provides scoped access to some parsing types for use withFBitstreamReader.


struct FNalu : public [FBitstreamSegment](API\Plugins\AVCodecsCore\Utils\FBitstreamSegment)


typedef typename TTupleElement<(NumBits > 8)+(NumBits > 16)+(NumBits > 32), [TTuple](API\Runtime\Core\Misc\TTuple)< uint8, uint16, uint32, uint64 >>::Type TBitSizeContainer


template<typename Type> struct TBitSizeOf


enum EH264AdaptiveTransformMode { Auto, Disable, Enable, }


enum EH264EntropyCodingMode { Auto, CABAC, CAVLC, }


Easy to understand user facing profiles from the T-Rec-H.264-201304 spec there is another enum in CodecUtilsH264 that aligns the profiles with PIC and constraints however users are not expected to understand those ones.

enum EH264Profile { Auto, CALVLC444Intra, Baseline, ConstrainedBaseline, Main, ScalableBaseline, ScalableConstrainedBaseline, ScalableHigh, ScalableConstrainedHigh, ScalableHighIntra, Extended, High, ProgressiveHigh, ConstrainedHigh, High10, High10Intra, MultiviewHigh, High422, High422Intra, StereoHigh, MultiviewDepthHigh, High444, High444Intra, MAX, }


Easy to understand user facing profiles from the T-Rec-H.264-201304 spec there is another enum in CodecUtilsH265 that aligns the profiles with PIC and constraints however users are not expected to understand those ones.

enum EH265Profile { Auto, Main, Main10, Main10StillPicture, MainStillPicture, Monochrome, Monochrome10, Monochrome12, Monochrome16, Main12, Main422_10, Main422_12, Main444, Main444_10, Main444_12, MainIntra, Main10Intra, Main12Intra, Main422_10Intra, Main422_12Intra, Main444_Intra, Main444_10Intra, Main444_12Intra, Main444_16Intra, Main444StillPicture, Main444_16StillPicture, HighThroughput444, HighThroughput444_10, HighThroughput444_14, HighThroughput444_16Intra, ScreenExtendedMain, ScreenExtendedMain10, ScreenExtendedMain444, ScreenExtendedMain444_10, ScreenExtendedHighThroughput444, ScreenExtendedHighThroughput444_10, ScreenExtendedHighThroughput444_14, MAX, }


static constexpr uint16 Value = sizeof(Type) * 8;


struct FNaluH265 : public [FNalu](API\Plugins\AVCodecsCore\Utils\FNalu)


void Parse &40; FBitstreamReader & Bitstream &41;


void Parse &40; uint8 const & in_transform_skip_enabled_flag, FBitstreamReader & Bitstream &41;


FNaluPPS ( [FNaluH265](API\Plugins\AVCodecsCore\Video\CodecUtils\FNaluH265) const & InNaluH265 )


struct FNaluPPS : public [UE::AVCodecCore::H265::FNaluH265](API\Plugins\AVCodecsCore\Video\CodecUtils\FNaluH265)


FNaluSEI ( [FNaluH265](API\Plugins\AVCodecsCore\Video\CodecUtils\FNaluH265) const & InNaluH265 )


struct FNaluSEI : public [UE::AVCodecCore::H265::FNaluH265](API\Plugins\AVCodecsCore\Video\CodecUtils\FNaluH265)


[FAVResult](API\Plugins\AVCodecsCore\FAVResult) Parse ( [FVideoDecoderConfigH265](API\Plugins\AVCodecsCore\Video\Decoders\Configs\FVideoDecoderConfigH265) * InConfig )


void Parse &40; const uint8 & ChromaArrayType, FNaluSlice const & CurrentSlice, FBitstreamReader & BitStream &41;


void Parse &40; uint8 const & in_num_ref_idx_l0_active_minus1, uint8 const & in_num_ref_idx_l1_active_minus1, uint32 const & InNumPicTotalCurr, EH265SliceType const & SliceType, FBitstreamReader & BitStream &41;


FNaluSlice ( [FNaluH265](API\Plugins\AVCodecsCore\Video\CodecUtils\FNaluH265) const & InNaluH265 )


struct conf_win_t : public [FBitstreamSegment](API\Plugins\AVCodecsCore\Utils\FBitstreamSegment)


struct FNaluSlice : public [UE::AVCodecCore::H265::FNaluH265](API\Plugins\AVCodecsCore\Video\CodecUtils\FNaluH265)

CurrentPPS

Members derived from bitstream.

Members read from bitstream.


struct sps_3d_extension_t : public [FBitstreamSegment](API\Plugins\AVCodecsCore\Utils\FBitstreamSegment)


struct sps_multilayer_extension_t : public [FBitstreamSegment](API\Plugins\AVCodecsCore\Utils\FBitstreamSegment)


struct sps_range_extension_t : public [FBitstreamSegment](API\Plugins\AVCodecsCore\Utils\FBitstreamSegment)


struct sps_scc_extension_t : public [FBitstreamSegment](API\Plugins\AVCodecsCore\Utils\FBitstreamSegment)


void Parse &40; uint32 const & in_chroma_format_idc, uint32 const & in_bit_depth_chroma_minus8, FBitstreamReader & Bitstream &41;


struct sub_layer_ordering_info_t : public [FBitstreamSegment](API\Plugins\AVCodecsCore\Utils\FBitstreamSegment)


void Parse &40; FBitstreamReader & Bitstream &41;


struct vui_parameters_t : public [FBitstreamSegment](API\Plugins\AVCodecsCore\Utils\FBitstreamSegment)


FNaluSPS ( [FNaluH265](API\Plugins\AVCodecsCore\Video\CodecUtils\FNaluH265) const & InNaluH265 )


struct FNaluSPS : public [UE::AVCodecCore::H265::FNaluH265](API\Plugins\AVCodecsCore\Video\CodecUtils\FNaluH265)

MaxDpbSize

Members derived from bitstream.


FNaluVPS ( [FNaluH265](API\Plugins\AVCodecsCore\Video\CodecUtils\FNaluH265) const & InNaluH265 )


struct FNaluVPS : public [UE::AVCodecCore::H265::FNaluH265](API\Plugins\AVCodecsCore\Video\CodecUtils\FNaluH265)

prevPicOrderCntLsb

Stream State Members TODO (aidan) perhaps this should be moved elsewhere


void Parse ( uint8 const & commonInfPresentFlag, uint8 const & maxNumSubLayersMinus1, [FBitstreamReader](API\Plugins\AVCodecsCore\Utils\FBitstreamReader) & Bitstream )


void Parse &40; uint8 const & in_sub_pic_hrd_params_present_flag, uint8 const & CpbCnt, FBitstreamReader & Bitstream &41;


void Parse ( const uint8 & log2_max_pic_order_cnt_lsb_minus4, [FBitstreamReader](API\Plugins\AVCodecsCore\Utils\FBitstreamReader) & Bitstream )


struct hrd_parameters_t : public [FBitstreamSegment](API\Plugins\AVCodecsCore\Utils\FBitstreamSegment)


struct long_term_ref_pics_t : public [FBitstreamSegment](API\Plugins\AVCodecsCore\Utils\FBitstreamSegment)


struct PPS_t : public [FNalu](API\Plugins\AVCodecsCore\Utils\FNalu)


void Parse ( const uint8 & profilePresentFlag, uint8 maxNumSubLayersMinus1, [FBitstreamReader](API\Plugins\AVCodecsCore\Utils\FBitstreamReader) & Bitstream )


struct profile_tier_level_t : public [FBitstreamSegment](API\Plugins\AVCodecsCore\Utils\FBitstreamSegment)


void Parse ( [FBitstreamReader](API\Plugins\AVCodecsCore\Utils\FBitstreamReader) & Bitstream )


SEI can transmit arbitrary data so we probably want something less rigid for this.


struct scaling_list_data_t : public [FBitstreamSegment](API\Plugins\AVCodecsCore\Utils\FBitstreamSegment)


void CalculateValues ( uint8 const & stRpsIdx, [TArray](API\Runtime\Core\Containers\TArray)< [short_term_ref_pic_set_t](API\Plugins\AVCodecsCore\Video\CodecUtils\short_term_ref_pic_set_t) > & st_ref_pic_set )


void Parse ( uint8 const & stRpsIdx, [TArray](API\Runtime\Core\Containers\TArray)< [short_term_ref_pic_set_t](API\Plugins\AVCodecsCore\Video\CodecUtils\short_term_ref_pic_set_t) > const & short_term_ref_pic_sets, [FBitstreamReader](API\Plugins\AVCodecsCore\Utils\FBitstreamReader) & Bitstream )


struct short_term_ref_pic_set_t : public [FBitstreamSegment](API\Plugins\AVCodecsCore\Utils\FBitstreamSegment)

NumPositivePics

Derived Values (specification usage order)


struct Slice_t : public [FNalu](API\Plugins\AVCodecsCore\Utils\FNalu)


struct SPS_t : public [FNalu](API\Plugins\AVCodecsCore\Utils\FNalu)

VUI Parameters.

HRD Parameters.


static constexpr uint32 TBlockSize = 1u << Tlog2blkSize;


static constexpr [TStaticArray](API\Runtime\Core\Containers\TStaticArray)< FIntPoint, TBlockSize *TBlockSize > Values = []() { switch (TscanIdx) { default: case 0: return MakeUpperRightDiagonal(); case 1: return MakeHorizontal(); case 2: return MakeVertical(); case 3: return MakeTraverse(); } };


template<uint32 Tlog2blkSize, uint32 TscanIdx> struct TScanOrder


namespace UE { namespace AVCodecCore { namespace H264 { enum EH264ConstraintFlag { None = 0, Set0 = 1u << 0, Set1 = 1u << 1, Set2 = 1u << 2, Set3 = 1u << 3, Set4 = 1u << 4, Set5 = 1u << 5, } } } }


namespace UE { namespace AVCodecCore { namespace H265 { enum EH265ConstraintFlag { None = 0, non_packed_constraint_flag = 1u << 0, frame_only_constraint_flag = 1u << 1, max_12bit_constraint_flag = 1u << 2, max_10bit_constraint_flag = 1u << 3, max_8bit_constraint_flag = 1u << 4, max_422chroma_constraint_flag = 1u << 5, max_420chroma_constraint_flag = 1u << 6, max_monochrome_constraint_flag = 1u << 7, intra_constraint_flag = 1u << 8, one_picture_only_constraint_flag = 1u << 9, lower_bit_rate_constraint_flag = 1u << 10, max_14bit_constraint_flag = 1u << 11, } } } }


namespace UE { namespace AVCodecCore { namespace H264 { void UE::AVCodecCore::H264::ScaleListToWeightScale ( const bool bIsFrame, const uint8 * ScalingList, const uint8 ListSize, uint8 * OutWeightList ) } } }


namespace UE { namespace AVCodecCore { namespace H265 { bool UE::AVCodecCore::H265::CheckProfileCompatabilityFlag ( uint32 const & profile_compatibility_flag, [EH265ProfileIDC](API\Plugins\AVCodecsCore\Video\CodecUtils\UE__AVCodecCore__H265__EH265Prof-) const & H265ProfileIdc ) } } }


namespace UE { namespace AVCodecCore { namespace H264 { int32 UE::AVCodecCore::H264::EBSPtoRBSP ( uint8 * OutBuf, const uint8 * InBuf, int32 NumBytesIn ) } } }


namespace UE { namespace AVCodecCore { namespace H264 { enum EH264ProfileIDC { Auto = 0, CALVLC444Intra = 44, Baseline = 66, Main = 77, ScalableBaseline = 83, ScalableHigh = 86, Extended = 88, High = 100, High10 = 110, MultiviewHigh = 118, High422 = 122, StereoHigh = 128, MultiviewDepthHigh = 138, High444 = 244, } } } }


namespace UE { namespace AVCodecCore { namespace H264 { enum EH264Level { Level_1b = 0, Level_1 = 10, Level_1_1 = 11, Level_1_2 = 12, Level_1_3 = 13, Level_2 = 20, Level_2_1 = 21, Level_2_2 = 22, Level_3 = 30, Level_3_1 = 31, Level_3_2 = 32, Level_4 = 40, Level_4_1 = 41, Level_4_2 = 42, Level_5 = 50, Level_5_1 = 51, Level_5_2 = 52, } } } }


namespace UE { namespace AVCodecCore { namespace H264 { enum ENaluType { Unspecified = 0, SliceOfNonIdrPicture = 1, SliceDataPartitionA = 2, SliceDataPartitionB = 3, SliceDataPartitionC = 4, SliceIdrPicture = 5, SupplementalEnhancementInformation = 6, SequenceParameterSet = 7, PictureParameterSet = 8, AccessUnitDelimiter = 9, EndOfSequence = 10, EndOfStream = 11, FillerData = 12, SequenceParameterSetExtension = 13, PrefixNalUnit = 14, SubsetSequenceParameterSet = 15, Reserved16 = 16, Reserved17 = 17, Reserved18 = 18, SliceOfAnAuxiliaryCoded = 19, SliceExtension = 20, SliceExtensionForDepthView = 21, Reserved22 = 22, Reserved23 = 23, Unspecified24 = 24, Unspecified25 = 25, Unspecified26 = 26, Unspecified27 = 27, Unspecified28 = 28, Unspecified29 = 29, Unspecified30 = 30, Unspecified31 = 31, } } } }


namespace UE { namespace AVCodecCore { namespace H264 { enum EH264VideoFormat { Component = 0, PAL = 1, NTSC = 2, SECAM = 3, MAC = 4, Unspecified = 5, Reserved6 = 6, Reserved7 = 7, } } } }


namespace UE { namespace AVCodecCore { namespace H264 { [EH264ConstraintFlag](API\Plugins\AVCodecsCore\Video\CodecUtils\UE__AVCodecCore_-) UE::AVCodecCore::H264::operator| ( [EH264ConstraintFlag](API\Plugins\AVCodecsCore\Video\CodecUtils\UE__AVCodecCore_-) const & lhs, [EH264ConstraintFlag](API\Plugins\AVCodecsCore\Video\CodecUtils\UE__AVCodecCore_-) const & rhs ) } } }


namespace UE { namespace AVCodecCore { namespace H264 { [EH264ConstraintFlag](API\Plugins\AVCodecsCore\Video\CodecUtils\UE__AVCodecCore_-) UE::AVCodecCore::H264::operator& ( [EH264ConstraintFlag](API\Plugins\AVCodecsCore\Video\CodecUtils\UE__AVCodecCore_-) const & lhs, [EH264ConstraintFlag](API\Plugins\AVCodecsCore\Video\CodecUtils\UE__AVCodecCore_-) const & rhs ) } } }


namespace UE { namespace AVCodecCore { namespace H264 { uint8 UE::AVCodecCore::H264::operator& ( uint8 const & lhs, [EH264ConstraintFlag](API\Plugins\AVCodecsCore\Video\CodecUtils\UE__AVCodecCore_-) const & rhs ) } } }


namespace UE { namespace AVCodecCore { namespace H264 { [EH264ConstraintFlag](API\Plugins\AVCodecsCore\Video\CodecUtils\UE__AVCodecCore_-) UE::AVCodecCore::H264::operator|= ( [EH264ConstraintFlag](API\Plugins\AVCodecsCore\Video\CodecUtils\UE__AVCodecCore_-) const & lhs, [EH264ConstraintFlag](API\Plugins\AVCodecsCore\Video\CodecUtils\UE__AVCodecCore_-) const & rhs ) } } }


namespace UE { namespace AVCodecCore { namespace H264 { bool UE::AVCodecCore::H264::operator== ( [EH264ConstraintFlag](API\Plugins\AVCodecsCore\Video\CodecUtils\UE__AVCodecCore_-) lhs, [EH264ConstraintFlag](API\Plugins\AVCodecsCore\Video\CodecUtils\UE__AVCodecCore_-) rhs ) } } }


namespace UE { namespace AVCodecCore { namespace H265 { int32 UE::AVCodecCore::H265::EBSPtoRBSP ( uint8 * OutBuf, const uint8 * InBuf, int32 NumBytesIn ) } } }


namespace UE { namespace AVCodecCore { namespace H265 { enum EH265LevelIDC { Level_1 = 10, Level_2 = 20, Level_2_1 = 21, Level_3 = 30, Level_3_1 = 31, Level_4 = 40, Level_4_1 = 41, Level_5 = 50, Level_5_1 = 51, Level_5_2 = 52, Level_6 = 60, Level_6_1 = 61, Level_6_2 = 62, } } } }


namespace UE { namespace AVCodecCore { namespace H265 { enum EH265ProfileIDC { Auto = 0, Main = 1, Main10 = 2, Main10StillPicture = Main10, MainStillPicture = 3, FormatRangeExtensions = 4, Monochrome = FormatRangeExtensions, Monochrome10 = FormatRangeExtensions, Monochrome12 = FormatRangeExtensions, Monochrome16 = FormatRangeExtensions, Main12 = FormatRangeExtensions, Main422_10 = FormatRangeExtensions, Main422_12 = FormatRangeExtensions, Main444 = FormatRangeExtensions, Main444_10 = FormatRangeExtensions, Main444_12 = FormatRangeExtensions, MainIntra = FormatRangeExtensions, Main10Intra = FormatRangeExtensions, Main12Intra = FormatRangeExtensions, Main422_10Intra = FormatRangeExtensions, Main422_12Intra = FormatRangeExtensions, Main444_Intra = FormatRangeExtensions, Main444_10Intra = FormatRangeExtensions, Main444_12Intra = FormatRangeExtensions, Main444_16Intra = FormatRangeExtensions, Main444StillPicture = FormatRangeExtensions, Main444_16StillPicture = FormatRangeExtensions, HighThroughput = 5, HighThroughput444 = HighThroughput, HighThroughput444_10 = HighThroughput, HighThroughput444_14 = HighThroughput, HighThroughput444_16Intra = HighThroughput, ScreenContentCoding = 9, ScreenExtendedMain = ScreenContentCoding, ScreenExtendedMain10 = ScreenContentCoding, ScreenExtendedMain444 = ScreenContentCoding, ScreenExtendedMain444_10 = ScreenContentCoding, HighThroughputScreenContentCoding = 11, ScreenExtendedHighThroughput444 = HighThroughputScreenContentCoding, ScreenExtendedHighThroughput444_10 = HighThroughputScreenContentCoding, ScreenExtendedHighThroughput444_14 = HighThroughputScreenContentCoding, } } } }


namespace UE { namespace AVCodecCore { namespace H265 { enum EH265SliceType { B = 0, P = 1, I = 2, } } } }


namespace UE { namespace AVCodecCore { namespace H265 { enum EH265VideoFormat { Component = 0, PAL = 1, NTSC = 2, SECAM = 3, MAC = 4, Unspecified = 5, Reserved6 = 6, Reserved7 = 7, } } } }


namespace UE { namespace AVCodecCore { namespace H265 { enum ENaluType { TRAIL_N = 0, TRAIL_R = 1, TSA_N = 2, TSA_R = 3, STSA_N = 4, STSA_R = 5, RADL_N = 6, RADL_R = 7, RASL_N = 8, RASL_R = 9, RSV_VCL_N10 = 10, RSV_VCL_R11 = 11, RSV_VCL_N12 = 12, RSV_VCL_R13 = 13, RSV_VCL_N14 = 14, RSV_VCL_R15 = 15, BLA_W_LP = 16, BLA_W_RADL = 17, BLA_N_LP = 18, IDR_W_RADL = 19, IDR_N_LP = 20, CRA_NUT = 21, RSV_IRAP_VCL22 = 22, RSV_IRAP_VCL23 = 23, RSV_VCL24 = 24, RSV_VCL25 = 25, RSV_VCL26 = 26, RSV_VCL27 = 27, RSV_VCL28 = 28, RSV_VCL29 = 29, RSV_VCL30 = 30, RSV_VCL31 = 31, VPS_NUT = 32, SPS_NUT = 33, PPS_NUT = 34, AUD_NUT = 35, EOS_NUT = 36, EOB_NUT = 37, FD_NUT = 38, PREFIX_SEI_NUT = 39, SUFFIX_SEI_NUT = 40, RSV_NVCL41 = 41, RSV_NVCL42 = 42, RSV_NVCL43 = 43, RSV_NVCL44 = 44, RSV_NVCL45 = 45, RSV_NVCL46 = 46, RSV_NVCL47 = 47, UNSPECIFIED = 48, } } } }


namespace UE { namespace AVCodecCore { namespace H265 { [EH265ConstraintFlag](API\Plugins\AVCodecsCore\Video\CodecUtils\UE__AVCodecCore_-_2) UE::AVCodecCore::H265::operator| ( [EH265ConstraintFlag](API\Plugins\AVCodecsCore\Video\CodecUtils\UE__AVCodecCore_-_2) const & lhs, [EH265ConstraintFlag](API\Plugins\AVCodecsCore\Video\CodecUtils\UE__AVCodecCore_-_2) const & rhs ) } } }


namespace UE { namespace AVCodecCore { namespace H265 { [EH265ConstraintFlag](API\Plugins\AVCodecsCore\Video\CodecUtils\UE__AVCodecCore_-_2) UE::AVCodecCore::H265::operator& ( [EH265ConstraintFlag](API\Plugins\AVCodecsCore\Video\CodecUtils\UE__AVCodecCore_-_2) const & lhs, [EH265ConstraintFlag](API\Plugins\AVCodecsCore\Video\CodecUtils\UE__AVCodecCore_-_2) const & rhs ) } } }


namespace UE { namespace AVCodecCore { namespace H265 { uint8 UE::AVCodecCore::H265::operator& ( uint16 const & lhs, [EH265ConstraintFlag](API\Plugins\AVCodecsCore\Video\CodecUtils\UE__AVCodecCore_-_2) const & rhs ) } } }


namespace UE { namespace AVCodecCore { namespace H265 { [EH265ConstraintFlag](API\Plugins\AVCodecsCore\Video\CodecUtils\UE__AVCodecCore_-_2) UE::AVCodecCore::H265::operator|= ( [EH265ConstraintFlag](API\Plugins\AVCodecsCore\Video\CodecUtils\UE__AVCodecCore_-_2) const & lhs, [EH265ConstraintFlag](API\Plugins\AVCodecsCore\Video\CodecUtils\UE__AVCodecCore_-_2) const & rhs ) } } }


namespace UE { namespace AVCodecCore { namespace H265 { bool UE::AVCodecCore::H265::operator== ( [EH265ConstraintFlag](API\Plugins\AVCodecsCore\Video\CodecUtils\UE__AVCodecCore_-_2) lhs, [EH265ConstraintFlag](API\Plugins\AVCodecsCore\Video\CodecUtils\UE__AVCodecCore_-_2) rhs ) } } }


enum EPictureUsage { UNUSED = 0u, SHORT_TERM = 1u << 0, LONG_TERM = 1u << 1, }


[FAVResult](API\Plugins\AVCodecsCore\FAVResult) Parse ( [TSharedRef](API\Runtime\Core\Templates\TSharedRef)< [FAVInstance](API\Plugins\AVCodecsCore\FAVInstance) > const & Instance, [FVideoPacket](API\Plugins\AVCodecsCore\Video\FVideoPacket) const & Packet, [TArray](API\Runtime\Core\Containers\TArray)< [UE::AVCodecCore::H264::Slice_t](API\Plugins\AVCodecsCore\Video\CodecUtils\Slice_t) > & OutSlices )


FVideoDecoderConfigH264 ( [EAVPreset](API\Plugins\AVCodecsCore\EAVPreset) Preset )


Configuration settings for H264 decoders.

struct FVideoDecoderConfigH264 : public [FVideoDecoderConfig](API\Plugins\AVCodecsCore\Video\FVideoDecoderConfig)


[FAVResult](API\Plugins\AVCodecsCore\FAVResult) Parse ( [TSharedRef](API\Runtime\Core\Templates\TSharedRef)< [FAVInstance](API\Plugins\AVCodecsCore\FAVInstance) > const & Instance, [FVideoPacket](API\Plugins\AVCodecsCore\Video\FVideoPacket) const & Packet, [TArray](API\Runtime\Core\Containers\TArray)< [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [UE::AVCodecCore::H265::FNaluH265](API\Plugins\AVCodecsCore\Video\CodecUtils\FNaluH265) >> & Slices )


[FAVResult](API\Plugins\AVCodecsCore\FAVResult) UpdateScalingLists ( [TSharedRef](API\Runtime\Core\Templates\TSharedRef)< [UE::AVCodecCore::H265::FNaluSlice](API\Plugins\AVCodecsCore\Video\CodecUtils\FNaluSlice) > CurrentSlice )


[FAVResult](API\Plugins\AVCodecsCore\FAVResult) UpdateRPS ( [TSharedRef](API\Runtime\Core\Templates\TSharedRef)< [UE::AVCodecCore::H265::FNaluSlice](API\Plugins\AVCodecsCore\Video\CodecUtils\FNaluSlice) > CurrentSlice )


FVideoDecoderConfigH265 ( [EAVPreset](API\Plugins\AVCodecsCore\EAVPreset) Preset )


Configuration settings for H265 decoders.

struct FVideoDecoderConfigH265 : public [FVideoDecoderConfig](API\Plugins\AVCodecsCore\Video\FVideoDecoderConfig)

CurrPicIdx

Decoder state.

Scaling lists.


constexpr [EPictureUsage](API\Plugins\AVCodecsCore\Video\Decoders\Configs\EPictureUsage) operator& ( [EPictureUsage](API\Plugins\AVCodecsCore\Video\Decoders\Configs\EPictureUsage) Lhs, [EPictureUsage](API\Plugins\AVCodecsCore\Video\Decoders\Configs\EPictureUsage) Rhs )


[EPictureUsage](API\Plugins\AVCodecsCore\Video\Decoders\Configs\EPictureUsage) & operator&= ( [EPictureUsage](API\Plugins\AVCodecsCore\Video\Decoders\Configs\EPictureUsage) & Lhs, [EPictureUsage](API\Plugins\AVCodecsCore\Video\Decoders\Configs\EPictureUsage) Rhs )


constexpr [EPictureUsage](API\Plugins\AVCodecsCore\Video\Decoders\Configs\EPictureUsage) operator~ ( [EPictureUsage](API\Plugins\AVCodecsCore\Video\Decoders\Configs\EPictureUsage) E )


constexpr [EPictureUsage](API\Plugins\AVCodecsCore\Video\Decoders\Configs\EPictureUsage) operator^ ( [EPictureUsage](API\Plugins\AVCodecsCore\Video\Decoders\Configs\EPictureUsage) Lhs, [EPictureUsage](API\Plugins\AVCodecsCore\Video\Decoders\Configs\EPictureUsage) Rhs )


[EPictureUsage](API\Plugins\AVCodecsCore\Video\Decoders\Configs\EPictureUsage) & operator^= ( [EPictureUsage](API\Plugins\AVCodecsCore\Video\Decoders\Configs\EPictureUsage) & Lhs, [EPictureUsage](API\Plugins\AVCodecsCore\Video\Decoders\Configs\EPictureUsage) Rhs )


constexpr bool operator! ( [EPictureUsage](API\Plugins\AVCodecsCore\Video\Decoders\Configs\EPictureUsage) E )


True if this decoder has been initialized by sending through a packet.


virtual [FAVResult](API\Plugins\AVCodecsCore\FAVResult) Open ( [TSharedRef](API\Runtime\Core\Templates\TSharedRef)< [FAVDevice](API\Plugins\AVCodecsCore\FAVDevice) > const & NewDevice, [TSharedRef](API\Runtime\Core\Templates\TSharedRef)< [FAVInstance](API\Plugins\AVCodecsCore\FAVInstance) > const & NewInstance )


FAVResult.

virtual [FAVResult](API\Plugins\AVCodecsCore\FAVResult) ReceiveFrame ( [TResolvableVideoResource](API\Plugins\AVCodecsCore\Video\TResolvableVideoResource)< TResource > & InOutResource )


virtual [FAVResult](API\Plugins\AVCodecsCore\FAVResult) SendPacket ( [FVideoPacket](API\Plugins\AVCodecsCore\Video\FVideoPacket) const & Packet )


virtual void SetMinimalConfig ( [FVideoDecoderConfig](API\Plugins\AVCodecsCore\Video\FVideoDecoderConfig) const & MinimalConfig )


Configuration-less decoder that detects the bitstream type and creates an appropriate child decoder that can handle it.

template<typename TResource> class TStreamVideoDecoder : public [TVideoDecoder< TResource >](API\Plugins\AVCodecsCore\Video\TVideoDecoder_TResource)

Child

The child decoder, invalid until this decoder is initialized by sending through a packet.


enum EMultipassMode { Unknown, Disabled, Quarter, Full, }


FVideoEncoderConfigH264 ( [EAVPreset](API\Plugins\AVCodecsCore\EAVPreset) Preset )


Configuration settings for H264 encoders.

struct FVideoEncoderConfigH264 : public [FVideoEncoderConfig](API\Plugins\AVCodecsCore\Video\FVideoEncoderConfig)


FVideoEncoderConfigH265 ( [EAVPreset](API\Plugins\AVCodecsCore\EAVPreset) Preset )


Configuration settings for H265 encoders.

struct FVideoEncoderConfigH265 : public [FVideoEncoderConfig](API\Plugins\AVCodecsCore\Video\FVideoEncoderConfig)


Implementation of Video Encoding domain, seeTAVCoderfor inheritance model

enum ERateControlMode { Unknown, ConstQP, VBR, CBR, }


enum EVideoFormat { BGRA = EPixelFormat::PF_B8G8R8A8, ABGR10 = EPixelFormat::PF_A2B10G10R10, NV12 = EPixelFormat::PF_NV12, P010 = EPixelFormat::PF_P010, R8 = EPixelFormat::PF_R8, G16 = EPixelFormat::PF_G16, YUV444 = 254U, YUV444_16 = 255U, }


FVideoDecoderConfig ( [EAVPreset](API\Plugins\AVCodecsCore\EAVPreset) Preset )


Implementation of Video Decoding domain, seeTAVCoderfor inheritance model

struct FVideoDecoderConfig : public [FAVConfig](API\Plugins\AVCodecsCore\FAVConfig)


Planar formats are treated as single channel.


TODO(Nick): Try and remove this in favour of external initialisation.


bool operator== ( [FVideoDescriptor](API\Plugins\AVCodecsCore\Video\FVideoDescriptor) const & RHS ) const


bool operator!= ( [FVideoDescriptor](API\Plugins\AVCodecsCore\Video\FVideoDescriptor) const & RHS ) const


FVideoDescriptor ( const [FVideoDescriptor](API\Plugins\AVCodecsCore\Video\FVideoDescriptor) & Descriptor )


FVideoDescriptor ( [EVideoFormat](API\Plugins\AVCodecsCore\Video\EVideoFormat) Format, uint32 Width, uint32 Height )


FVideoDescriptor ( [EVideoFormat](API\Plugins\AVCodecsCore\Video\EVideoFormat) Format, uint32 Width, uint32 Height, const [FVideoDescriptor](API\Plugins\AVCodecsCore\Video\FVideoDescriptor) & RawDescriptor )


This struct defines how the allocated resource memory is used in the context of a video.

Format

Format of the pixel data.

Height

Height in pixels.

RawDescriptor

If this is a descriptor stored in a different format than it really is for transport then its raw descriptor should be described in this variable

Width

Width in pixels.


FVideoEncoderConfig ( [EAVPreset](API\Plugins\AVCodecsCore\EAVPreset) Preset )


struct FVideoEncoderConfig : public [FAVConfig](API\Plugins\AVCodecsCore\FAVConfig)

KeyframeInterval

TODO (Remove and derive from latency mode)


FVideoPacket ( [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< uint8 > const & DataPtr, uint64 DataSize, uint64 Timestamp, uint64 Index, uint32 QP, bool bIsKeyframe )


Get the descriptor of our video data.

[FVideoDescriptor](API\Plugins\AVCodecsCore\Video\FVideoDescriptor) const & GetDescriptor() const


Video-specific packet container.

struct FVideoPacket : public [FAVPacket](API\Plugins\AVCodecsCore\FAVPacket)

bIsKeyframe

Whether this frame is a keyframe.

QP

QP that the raw data was encoded with.


Get the Size in bytes of our Resource.


Get the format of our data.


Get the height of our data.


Get the descriptor of our video data in device memory.

[FVideoDescriptor](API\Plugins\AVCodecsCore\Video\FVideoDescriptor) const & GetRawDescriptor() const


Get the width of our data.


FVideoResource ( [TSharedRef](API\Runtime\Core\Templates\TSharedRef)< [FAVDevice](API\Plugins\AVCodecsCore\FAVDevice) > const & Device, [FAVLayout](API\Plugins\AVCodecsCore\FAVLayout) const & Layout, [FVideoDescriptor](API\Plugins\AVCodecsCore\Video\FVideoDescriptor) const & Descriptor )


Base wrapper for a video device resource.

class FVideoResource : public [FAVResource](API\Plugins\AVCodecsCore\FAVResource)


bool operator== ( EPixelFormat LHS, [EVideoFormat](API\Plugins\AVCodecsCore\Video\EVideoFormat) RHS )


bool operator== ( [EVideoFormat](API\Plugins\AVCodecsCore\Video\EVideoFormat) LHS, EPixelFormat RHS )


bool operator!= ( EPixelFormat LHS, [EVideoFormat](API\Plugins\AVCodecsCore\Video\EVideoFormat) RHS )


bool operator!= ( [EVideoFormat](API\Plugins\AVCodecsCore\Video\EVideoFormat) LHS, EPixelFormat RHS )


CPU video context and resource.

class FVideoContextCPU : public [FAVContext](API\Plugins\AVCodecsCore\FAVContext)


FVideoContextVulkan ( VkInstance const & Instance, VkDevice const & Device, VkPhysicalDevice const & PhysicalDevice, [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< PFN_vkVoidFunction(const char *)> const & GetDeviceProcAddrFunc )


Vulkan platform video context and resource.

class FVideoContextVulkan : public [FAVContext](API\Plugins\AVCodecsCore\FAVContext)


[TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< uint8 > const & GetRaw() const


FAVResult.

virtual [FAVResult](API\Plugins\AVCodecsCore\FAVResult) Validate() const


FVideoResourceCPU ( [TSharedRef](API\Runtime\Core\Templates\TSharedRef)< [FAVDevice](API\Plugins\AVCodecsCore\FAVDevice) > const & Device, [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< uint8 > const & Raw, [FAVLayout](API\Plugins\AVCodecsCore\FAVLayout) const & Layout, [FVideoDescriptor](API\Plugins\AVCodecsCore\Video\FVideoDescriptor) const & Descriptor )


class FVideoResourceCPU : public [TVideoResource< FVideoContextCPU >](API\Plugins\AVCodecsCore\Video\TVideoResource)


[FVulkanSharedHandle](API\Plugins\AVCodecsCore\Video\Resources\FVulkanSharedHandle) const & GetFenceSharedHandle() const


[FVulkanSharedHandle](API\Plugins\AVCodecsCore\Video\Resources\FVulkanSharedHandle) const & GetSharedHandle() const


FAVResult.


FVideoResourceVulkan ( [TSharedRef](API\Runtime\Core\Templates\TSharedRef)< [FAVDevice](API\Plugins\AVCodecsCore\FAVDevice) > const & Device, VkDeviceMemory Raw, [FAVLayout](API\Plugins\AVCodecsCore\FAVLayout) const & Layout, [FVideoDescriptor](API\Plugins\AVCodecsCore\Video\FVideoDescriptor) const & Descriptor )


class FVideoResourceVulkan : public [TVideoResource< FVideoContextVulkan >](API\Plugins\AVCodecsCore\Video\TVideoResource)


Wrapper for delegated resolvable video resources.

typedef [TDelegated](API\Plugins\AVCodecsCore\TDelegated)< TResource, [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [FAVDevice](API\Plugins\AVCodecsCore\FAVDevice) >, [FVideoDescriptor](API\Plugins\AVCodecsCore\Video\FVideoDescriptor) > TDelegatedVideoResource


virtual bool IsResolved ( [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [FAVDevice](API\Plugins\AVCodecsCore\FAVDevice) > const & Device, [FVideoDescriptor](API\Plugins\AVCodecsCore\Video\FVideoDescriptor) const & Descriptor ) const


virtual [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< TResource > TryResolve ( [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [FAVDevice](API\Plugins\AVCodecsCore\FAVDevice) > const & Device, [FVideoDescriptor](API\Plugins\AVCodecsCore\Video\FVideoDescriptor) const & Descriptor )


A simple pool-based resolvable video resource. The contents of the pool must be manually managed by the application.

template<typename TResource> class TPooledVideoResource : public [TResolvable< TResource >](API\Plugins\AVCodecsCore\TResolvable)


Wrapper for resolvable video resources.

typedef [TResolvable](API\Plugins\AVCodecsCore\TResolvable)< TResource, [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [FAVDevice](API\Plugins\AVCodecsCore\FAVDevice) >, [FVideoDescriptor](API\Plugins\AVCodecsCore\Video\FVideoDescriptor) > TResolvableVideoResource


Set generic configuration values.

virtual void SetMinimalConfig ( [FVideoDecoderConfig](API\Plugins\AVCodecsCore\Video\FVideoDecoderConfig) const & MinimalConfig )


virtual FAVResult ReceiveFrame &40; TResolvableVideoResource< TResource > & InOutResource &41;


virtual FAVResult SendPacket &40; FVideoPacket const & Packet &41;


TWrapper &40; TSharedRef< TVideoDecoder< TChildResource, TChildConfig >> const & Child &41;


Wrapper decoder that transforms resource/config types for use with a differently typed child decoder.

template<typename TChildResource, typename TChildConfig> class TWrapper : public TAVCoder::template TWrapper< TChildResource, TChildConfig >


Get generic configuration values.
The current minimal configuration.


TAVCodec

template<typename TResource, typename TConfig> class TVideoDecoder : public [TAVCoder< TVideoDecoder, TResource, TConfig >](API\Plugins\AVCodecsCore\TAVCoder)


Set generic configuration values.

void SetMinimalConfig &40; FVideoDecoderConfig const & MinimalConfig &41;


FAVResult.

FAVResult SendPacket &40; FVideoPacket const & Packet &41;


TAVCodec

template<> class TVideoDecoder<> : public [TAVCoder< TVideoDecoder >](API\Plugins\AVCodecsCore\TAVCoder)


FAVResult.

FAVResult ReceiveFrame &40; TResolvableVideoResource< TResource > & InOutResource &41;


TAVCodec

template<typename TResource> class TVideoDecoder< TResource >


Set generic configuration values.

virtual void SetMinimalConfig ( [FVideoEncoderConfig](API\Plugins\AVCodecsCore\Video\FVideoEncoderConfig) const & MinimalConfig )


virtual FAVResult ReceivePacket &40; FVideoPacket & OutPacket &41;


virtual FAVResult SendFrame &40; TSharedPtr< TResource > const & Resource, uint32 Timestamp, bool bForceKeyframe &41;


TWrapper &40; TSharedRef< TVideoEncoder< TChildResource, TChildConfig >> const & Child &41;


Wrapper encoder that transforms resource/config types for use with a differently typed child encoder.


TAVCodec

template<typename TResource, typename TConfig> class TVideoEncoder : public [TAVCoder< TVideoEncoder, TResource, TConfig >](API\Plugins\AVCodecsCore\TAVCoder)


FAVResult.

FAVResult ReceivePacket &40; FVideoPacket & OutPacket &41;


FAVResult.

virtual FAVResult ReceivePackets &40; TArray< FVideoPacket > & OutPackets &41;


Set generic configuration values.

void SetMinimalConfig &40; FVideoEncoderConfig const & MinimalConfig &41;


TAVCodec

template<> class TVideoEncoder<> : public [TAVCoder< TVideoEncoder >](API\Plugins\AVCodecsCore\TAVCoder)


FAVResult.

FAVResult FlushAndReceivePackets &40; TArray< FVideoPacket > & OutPackets &41;


FAVResult.


FAVResult.

FAVResult SendFrame &40; TSharedPtr< TResource > const & Resource, uint32 Timestamp, bool bForceKeyframe &41;


TAVCodec

template<typename TResource> class TVideoEncoder< TResource >


TVideoResource ( [TSharedRef](API\Runtime\Core\Templates\TSharedRef)< [FAVDevice](API\Plugins\AVCodecsCore\FAVDevice) > const & Device, [FAVLayout](API\Plugins\AVCodecsCore\FAVLayout) const & Layout, [FVideoDescriptor](API\Plugins\AVCodecsCore\Video\FVideoDescriptor) const & Descriptor )


Convenience wrapper for a video device resource that requires a specific device context to function.

template<typename TContext> class TVideoResource : public [FVideoResource](API\Plugins\AVCodecsCore\Video\FVideoResource)


[TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< TContext > GetContext() const