Navigation
API > API/Plugins > API/Plugins/AVCodecsCore
References
| Module | AVCodecsCore |
| Header | /Engine/Plugins/Experimental/AVCodecs/AVCodecsCore/Source/AVCodecsCore/Public/AVExtension.h |
| Include | #include "AVExtension.h" |
Syntax
struct FAVExtension
Remarks
HOW TO USE
Allows compile-time extension of types without directly modifying them across modules.
1) Like any static function, declare (by specialization) the extension in a header:
template <> FAVResult FAVExtension::TransformConfig(FVideoConfigH264& OutConfig, FVideoConfigBitstream const& InConfig);
2) Then define the extension in the source:
template <> DLLEXPORT FAVResult FAVExtension::TransformConfig(FVideoConfigH264& OutConfig, FVideoConfigBitstream const& InConfig) { // do stuff }
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
Constructors
| Type | Name | Description | |
|---|---|---|---|
FAVExtension () |
Functions
| Type | Name | Description | |
|---|---|---|---|
| bool | IsCompatible
(
TSharedPtr< class FAVDevice > const& Device |
Check if a type is compatible in a certain context, with a certain device. | |
| bool | IsCompatible
(
TSharedPtr< class FAVInstance > const& Instance |
Check if a type is compatible in a certain context, with a certain instance. | |
| FAVResult | TransformConfig
(
OutputType& OutConfig, |
Transform one configuration type into another. | |
| FAVResult | TransformResource
(
TSharedPtr< TOutput >& OutResource, |
Shortcut case for above for when the input and output types match. This does NOT duplicate the resource. |