Video Fan-In Converters

Alpha Key Converter [akey]

Properties:

OutputFormat

Four character code that specifies the output video stream format

Type: Four


UsingHardwareAcceleration

True if the filter is using hardware acceleration.

Note: This property is read only.

Type: Bool


AlphaIndex

The Alpha index.

This parameter affects which track is treeateed as the alpha key

Note: Defaults to 1.

Type: Int


Halide Vpl Converter [hvpl]

Properties:

OutputFormat

Four character code that specifies the output video stream format

Type: Four


UsingHardwareAcceleration

True if the filter is using hardware acceleration.

Note: This property is read only.

Type: Bool


TopMask

Specifies the top edge of the masking rectangle.

The masking rectangle is specified as the number of pixels from the edge of the output frame and is used when letter-boxing or pillar-boxing.

Note: Defaults to 0.

Type: Int32


ColorPrimaries

The color primaries of the output color space.

The color primaries determine the RGB->XYZ conversion matrix.

Note: Defaults to input color primaries. See the values enumerated by ColorPrimaries.

Type: Int32


MatrixCoefficients

The matrix coefficients of the output color space.

The matrix coefficients determine the YUV->RGB conversion matrix.

Note: Defaults to input matrix coeffecients. See the values enumerated by ColorSpace::MatrixCoeffients.

Type: Int32


DeinterlaceMode

The deinterlace mode.

If left unspecified the output properties will reflect the primary/master field order.

Type: DEINTERLACE_MODE


RangeCompressionToe

Specifies the starting point of the range compression for the blacks.

For narrow range conversions the extra head room will be used for HDR by default.

The TMO for the shoulder is defined as: \f$ B + (b - B) e^\frac{x-B}{b-B}} \f$. Where, b is the starting point of the range compression for the whites and B is the minimum value to compress too. For narrow range, B is ~-7%, for full range B is 0%.

Note: Default: 0.0f

Type: Bool


Height

Specifies the height of the video.

By default the height will be the same as the primary/master. This property allows the client to specify a new height.

The pixel aspect ratio will be updated automatically to preserve the display aspect ratio of the primary/master media.

Note: Defaults to the primary/master height.

Type: Int32


TransferCharacteristics

The transfer characteristics of the output color space.

The transfer characteristics determine the non-linear electro-optical response function.

Note: Defaults to input transfer characteristics. See the values enumerated by TransferCharacteristics.

Type: Int32


VideoRange

The video range of the output color space.

The video range specifies the range of values in RGB. If specified as a lower and upper bound, then the range is set to ColorRange::Extension and the lower and upper bounds are added to the color space properties extension.

Note: Defaults to input video range. See the values enumerated by VideoRange.

Type: Int32 or an array of two elements


ReferenceBlackLevel

The normalized [0-1] reference black level at 0% reflectivity.

Note: Defaults to the black level determined by the output transfer characteristics.

System Black
PQ 0.0623
HLG 0.0373
ST.428-1 0.0517
BT.709 0.0000

Type: Float


RightCrop

Specifies the right edge of the cropping rectangle.

The cropping rectangle is specified as the number of pixels from the edge of the source rectangle.

Note: Defaults to 0.

Type: Int32


ReferenceWhiteLevel

The normalized [0-1] reference white level at 100% reflectivity.

Note: Defaults to the white level determined by the output transfer characteristics.

System White
PQ 0.5807
HLG 0.7500
ST.428-1 0.9670
BT.709 1.0000

Type: Float


DeviceIndex

Represents the GPU device to use.

If the compute mode indicates a GPU mode, this determines the device to use.

Note: Defaults to the first valid device.

Type: Int32


EnableRangeCompression

Enables the tone mapping operator (TMO) to compress the luminance range.

Note: Default: true

Type: Bool


ConversionStrategy

Specifies a hint to the conversion process.

This property is used to select which strategy to use when converting between formats. The hint controls the order in which conversion stages are exectued. For example, it may be faster to down-scale or subsample first rather than at the end at the expense of quality.

Note: Defaults to CS_SPEED.

Type: CONVERSION_STRATEGY


RangeCompressionShoulder

Specifies the starting point of the range compression for the whites.

For narrow range conversions the extra head room will be used for HDR by default.

The TMO for the shoulder is defined as: \f$ W + (w - W) e^\frac{x-W}{w-W}} \f$. Where, w is the starting point of the range compression for the whites and W is the maximum value to compress too. For narrow range, W is ~109%, for full range W is 100%.

Note: Default: 1.0f

Type: Float


BottomMask

Specifies the bottom edge of the masking rectangle.

The masking rectangle is specified as the number of pixels from the edge of the output frame and is used when letter-boxing or pillar-boxing.

Note: Defaults to 0.

Type: Int32


RangeCompressionMinimum

@brief Specifies the minimum allowed value when compressing the dynamic range.

@details This value is specified in normalized linear units.

The TMO for the toe is defined as: \f$ B + (b - B) e^\frac{x-B}{b-B}} \f$. Where, b is the starting point of the range compression for the blacks and B is the minimum value to compress too. For narrow range, B is ~-7%, for full range B is 0%.

@note Default: ~-0.07 for narrow range, 0.00 for full range.

@type Float


RangeCompressionMaximum

Specifies the maximum allowed value when compressing the dynamic range.

This value is specified in normalized linear units.

The TMO for the shoulder is defined as: \f$ W + (w - W) e^\frac{x-W}{w-W}} \f$. Where, w is the starting point of the range compression for the whites and W is the maximum value to compress too. For narrow range, W is ~109%, for full range W is 100%.

Note: Default: ~1.09 for narrow range, 1.00 for full range.

Type: Float


BitDepth

The bit dpeth to be reflected on the output properties.

If set, only output formats of the specified bit depth will be reported.

Type: Int32


RangeCompressionRatio

Enables the Reinhard tone mapping operator (TMO) to compress the luminance range.

The Reinhard TMO is defined as: \f$x/// @frac{1 + \frac{x}{ratio^2}}{1 + x}\f$. A value of 1 effectively results in no compression.

Note: If RangeCompressionRatio is specified RangeCompressionToe and RangeCompressionShoulder are ignored.

Type: Float


ForceSceneReferencedConversion

Disables the application of the Optical-Optical transfer function (OOTF).

It may be technically correct to always apply the OOTF when converting color spaces; however, convention mandates we ignore the OOTF in some cases, particularly when performing SDR to SDR conversions. For example, prior conversions from BT.709 -> BT.2020 or BT.601 -> BT.709, never acknowledged the existence of the OOTFs. So, there is strong reason to believe we should continue to ignore them as this seems to be expected.

This property has been added to override the the application of the OOTF when performing a conversion. Conversions done in linear display referenced light acknowledge the OOTFs, while conversions done in linear scene referenced light do not. By default, if the system levels are changing (dynamic range compression) or the conversion is either to or from HLG, then we assume a conversion in display referenced light.

Note: Default: true

Type: Bool


GamutCoercionMode

Determines the method used when converting into a reduced gamut.

Converting the color primaries from a large gamut into a smaller gamut can produce illegal color values. For example, converting from BT.2020 to BT.709 may result in colors outside the BT.709 gamut. This property determines the method used to coerce the colors back to legal values.

Note: Applying a clamp may result in discontinuities in the LUT and introduce significant interpolation error. Default: CIM_NONE

Type: COLOR_INTERPOLATION_MODE


Compositions

Specifies the array of composition transformations.

Each element of this array should contain properties such as Alpha or TransformationMatrix.

Type: VariantArray


RoundingMode

Specifies the rounding mode.

This property is used to select which rounding mode to use when converting between formats. The rounding mode is only used when down-converting bit-depth. This property indicates what to do with the rounding error.

Note: Defaults to RM_DOWN if ConversionStrategy is CS_SPEED and to RM_DYNAMIC if ConversionStrategy is CS_QUALITY.

Type: ROUNDING_MODE


Subsampling

The subsampling to be reflected on the output properties.

If set, only output formats of the specified subsampling will be reported.

See Also: CVideoProperties

Type: Byte


ChromaSiting

The chroma siting of the output video.

The chroma siting specifies where the chroma planes are sampled. This typically only applies to 4:2:0 subsampling. Certain compression formats may specify explicit chroma sitings. For example, 4:2:0 PAL DV should always have a chroma siting of cosited-out-of-phase where as MPEG-1 should always be interstitial and MPEG-2 should be horizontally cosited.

Note: If left unspecified the output properties will reflect the primary/master chroma siting. See the chroma siting values enumerated by CVideoProperties.

Type: Int32


ScaleUnitType

Specifies the units used to scale the source rectangle to the target rectangle.

Note: Defaults to UT_RELATIVE. The default value is different from TranslationUnitType.

Type: UNIT_TYPE


Width

Specifies the width of the video.

By default the width will be the same as the primary/master media. This property allows the client to specify a new width.

The pixel aspect ratio will be updated automatically to preserve the display aspect ratio of the primary/master media.

Note: Defaults to the primary/master width.

Type: Int32


Orientation

Specifies the orientation of the video.

By default the video will be always be re-orientated. This property allows the client to specify a new orientation.

Note: Defaults to 0 (no rotation, not mirrored).

See Also: CVideoProperties::SetOrientation

Type: Int32


LeftCrop

Specifies the left edge of the cropping rectangle.

The cropping rectangle is specified as the number of pixels from the edge of the source rectangle.

Note: Defaults to 0.

Type: Int32


HorizontalPixelAspectRatio

Specifies the horizontal pixel aspect ratio of the video.

By default the horizaontal pixel aspect ratio will be the same as the primary/master. This property allows the client to specify a new horizontal pixel aspect ratio.

The width will be updated automatically to preserve the display aspect ratio of the primary/master media.

Note: Defaults to the primary/master horizontal pixel aspect ratio.

Type: Int32


InterpolationMode

Specifies the interpolation mode.

This property is used to select which interpolation mode to use when resampling. The interpolation mode is used whenever a pixel must be subsampled. For exampling, when resizing the video frame, or chroma subsampling.

Note: Defaults to IM_LINEAR if ConversionStrategy is CS_SPEED and to IM_LANCZOS if ConversionStrategy is CS_QUALITY.

Type: INTERPOLATION_MODE


VerticalPixelAspectRatio

Specifies the vertical pixel aspect ratio of the video.

By default the vertical pixel aspect ratio will be the same as the primary/master. This property allows the client to specify a new vertical pixel aspect ratio.

The height will be updated automatically to preserve the display aspect ratio of the primary/master media.

Note: Defaults to the primary/master vertical pixel aspect ratio.

Type: Int32


LeftMask

Specifies the left edge of the masking rectangle.

The masking rectangle is specified as the number of pixels from the edge of the output frame and is used when letter-boxing or pillar-boxing.

Note: Defaults to 0.

Type: Int32


RightMask

Specifies the right edge of the masking rectangle.

The masking rectangle is specified as the number of pixels from the edge of the output frame and is used when letter-boxing or pillar-boxing.

Note: Defaults to 0.

Type: Int32


TopCrop

Specifies the top edge of the cropping rectangle.

The cropping rectangle is specified as the number of pixels from the edge of the source rectangle.

Note: Defaults to 0.

Type: Int32


ScaleMode

Specifies the method used to scale the source rectangle to the target rectangle.

Note: Defaults to \ref SM_MASK.

Type: SCALE_MODE


BottomCrop

Specifies the bottom edge of the cropping rectangle.

The cropping rectangle is specified as the number of pixels from the edge of the source rectangle.

Note: Defaults to 0.

Type: Int32


TranslationUnitType

Specifies the units used to translate the source rectangle within the target rectangle.

Note: Defaults to UT_ABSOLUTE. The default value is different from ScaleUnitType.

Type: UNIT_TYPE


Alpha

Specifies the alpha transparency when compositing.

This value is multiplied together with the per-pixel alpha if the input format has an alpha channel.

Note: Defaults to 1.0. 0.0 is fully transparent, 1.0 is fully opaque.

Type: Float


Rotation

The counter-clockwise rotation in radians.

Specifies a counter-clockwise rotation transformation about the center of the frame.

Note: Defaults to 0.0.

Type: Float.


HorizontalScale

The horizontal scale factor.

The interpretation of the scale value is determined by ScaleUnitType. For example, a realtive (1, 1) scale factor will map the entire source rectangle to the target rectangle according to the ScaleMode proeprty. If, however, the scale factor is (1, 2) the height will be scaled to twice the output height and the aspect ratio will be changed accordingly. An absolute scale of (320, 240) woulve scale the source rectangle to 320x240.

Note: Defaults to 1.0.

Type: Float.


VerticalScale

The vertical scale factor.

The interpretation of the scale value is determined by ScaleUnitType. For example, a realtive (1, 1) scale factor will map the entire source rectangle to the target rectangle according to the ScaleMode proeprty. If, however, the scale factor is (1, 2) the height will be scaled to twice the output height and the aspect ratio will be changed accordingly. An absolute scale of (320, 240) woulve scale the source rectangle to 320x240.

Note: Defaults to 1.0.

Type: Float.


HorizontalTranslation

The horizontal translation.

The interpretation of the translation value is determined by TranslationUnitType. For example, a relative translation of -1 in the x-axis would put the center of the source rectangle at the left edge of the target rectangle; however, an absolute translation of -1 would move the source rectangle 1 pixel left.

Note: Defaults to 0.0.

Type: Float.


Topology

Specifiecs the output file name to write the conversion topology.

For debugging this property specifies a file to write out the conversion topology. GraphViz can then be used to convert the file into a PNG or SVG file.

Type: String


VerticalTranslation

The vertical translation.

The interpretation of the translation value is determined by TranslationUnitType. For example, a relative translation of -1 in the y-axis would put the center at the bottom edge of the target rectangle; however, an absolute translation of -1 would move the source rectangle 1 pixel down.

Note: Defaults to 0.0.

Type: Float.


TransformationMatrix

The transformation override matrix.

Specifies a 4x4 transformation matrix to apply to the input media. Setting this property overrides the matrix resulting from the Rotation, HorizontalScale, VerticalScale, HorizontalTranslation, and VerticalTranslation properties.

Type: VariantArray of 16 Floats.


QueueSize

Configures the converter to limit the number of concurrent conversions.

Limits number of images to be converter at one moment.

The converter may operate asynchronously, if so this property determines the maximum number of concurrent conversions. Use IsOutputMediaReady to determine if a video frame is ready.

Note: Defaults to 5.

Type: Int32


ComputeMode

Determines the mode of computation.

This property is used to select which mode of computation to use.

If a GPU compute mode is specified, use the DeviceIndex property to determine which device to use when more than one is pressent.

Note: Defaults to CM_CPU.

Type: COMPUTE_MODE


Enumerations:

SCALE_MODE

Valid value for the ScaleMode property.

Value Name Description
0 SM_MASK Fits the entire source rectangle into the target rectangle while preserving aspect ratio. The target rectangle may not be entirely filled.
1 SM_CROP Fills the entire target rectangle. The source rectangle may be cropped to preserve aspect ratio.
2 SM_FILL Fills the entire target rectangle with the entire source rectangle without preserving aspect ratio.

COMPUTE_MODE

Valid values for the ComputeMode property.

Value Name Description
1 CM_CPU Host CPU
2 CM_OPENCL OpenCL
4 CM_METAL Metal
3 CM_CUDA Cuda
5 CM_D3D12 D3D12

UNIT_TYPE

Valid values for the TranslationUnitType and ScaleUnitType property.

Value Name Description
0 UT_ABSOLUTE Unit values are specified in output pixels.
1 UT_RELATIVE Unit values are specified in output relative space, defined as [-1, 1].

COLOR_INTERPOLATION_MODE

Specifies valid values for the GamutCoercionMode property.

Value Name Description
0 CIM_NONE Don’t do any conversion, may result in illegal color values.
1 CIM_CLAMP Clamp all colors outside the gamut.
2 CIM_INTERPOLATE The color is interpolated along a line orthogonal to the black-white vector attempting to perceptually maintain the closest representable color.

INTERPOLATION_MODE

Valid values for the InterpolationMode property.

Value Name Description
0 IM_NEAREST Nearest Neighbor
1 IM_LINEAR Bi-linear
2 IM_CUBIC Bi-cubic
3 IM_LANCZOS Lanczos

ROUNDING_MODE

Valid values for the RoundingMode property.

Value Name Description
0 RM_DOWN Round down
1 RM_UP Round up
2 RM_NEAREST Round to nearest
3 RM_DYNAMIC Dynamic Rounding (add random noise, then round down)

DEINTERLACE_MODE

Valid values for the DeinterlaceMode property.

Value Name Description
3 DM_FIELD2 Duplicate Field 2, decimate Field 1
0 DM_NONE Weave, no dinterlacing
0 DM_WEAVE Weave, no dinterlacing
1 DM_BLEND Blend, triangle filter
2 DM_FIELD1 Duplicate Field 1, decimate Field 2
4 DM_SPLIT Split Frame, Field 1 over Field 2

CONVERSION_STRATEGY

Valid values for the ConversionStrategy property.

Value Name Description
0 CS_SPEED Prefer speed over quality
1 CS_QUALITY Prefer quality over speed

Video Composition Converter [vcc ]

Properties:

OutputFormat

Four character code that specifies the output video stream format

Type: Four


UsingHardwareAcceleration

True if the filter is using hardware acceleration.

Note: This property is read only.

Type: Bool


DeviceIndex

Represents the device index to use.

If the compute mode indicates either GPU, OpenCL, Cuda, or Metal, this determines the device to use.

Note: type: Int32


ComputeMode

Determines the mode of computation.

This property is used to select which mode of computation to use.

If any GPU compute mode is specified, use the DeviceIndex property to determine which device to use when more than one is pressent.

Note: type: ComputeModes


Width

Output frame width.

Type: Int32


Compositions

Specifies the array of composition transformations.

Each element of this array should contain properties such as Alpha, LeftOffset or TopOffset.

Type: VariantArray


Height

Output frame height.

Type: Int32


TopOffset

Specifies the top offset of the track.

The top offset when compositing the track

Note: Defaults to 0.

Type: Int32


Alpha

Specifies the alpha transparency when compositing.

This value is multiplied together with the per-pixel alpha if the input format has an alpha channel.

Note: Defaults to 1.0. 0.0 is fully transparent, 1.0 is fully opaque.

Type: Float


LeftOffset

Specifies the left offset of the track.

The left offset when compositing the track

Note: Defaults to 0.

Type: Int32


Enumerations:

ComputeModes

Valid values for the ComputeMode property.

Value Name Description
0 CPU CPU computation mode
1 GPU GPU computation mode. Selects metal on OSX and CUDA on Windows/Linux.
3 OpenCL OpenCL computation mode
2 Cuda Cuda computation mode
4 Metal Metal computation mode