UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
IMediaTextureSample Class Referenceabstract

#include <IMediaTextureSample.h>

Public Member Functions

virtual const voidGetBuffer ()=0
 
virtual FIntPoint GetDim () const =0
 
virtual uint8 GetNumMips () const
 
virtual FMediaTextureTilingDescription GetTilingDescription () const
 
virtual FTimespan GetDuration () const =0
 
virtual EMediaTextureSampleFormat GetFormat () const =0
 
virtual FIntPoint GetOutputDim () const =0
 
virtual uint32 GetStride () const =0
 
virtual bool ShouldApplyColorConversion () const
 
virtual FMediaTimeStamp GetTime () const =0
 
virtual TOptional< FTimecodeGetTimecode () const
 
virtual TOptional< FFrameRateGetFramerate () const
 
virtual bool IsCacheable () const =0
 
virtual bool IsOutputSrgb () const =0
 
virtual EMediaOrientation GetOrientation () const
 
virtual double GetAspectRatio () const
 
virtual bool IsExternalImage () const
 
virtual FLinearColor GetScaleRotation () const
 
virtual FLinearColor GetOffset () const
 
virtual const FMatrixGetYUVToRGBMatrix () const
 
virtual bool GetFullRange () const
 
virtual FMatrix44f GetSampleToRGBMatrix () const
 
virtual const UE::Color::FColorSpaceGetSourceColorSpace () const
 
virtual FMatrix44d GetGamutToXYZMatrix () const
 
virtual FVector2d GetWhitePoint () const
 
virtual FVector2d GetDisplayPrimaryRed () const
 
virtual FVector2d GetDisplayPrimaryGreen () const
 
virtual FVector2d GetDisplayPrimaryBlue () const
 
virtual UE::Color::EChromaticAdaptationMethod GetChromaticAdapationMethod () const
 
virtual UE::Color::EEncoding GetEncodingType () const
 
virtual float GetHDRNitsNormalizationFactor () const
 
virtual bool GetDisplayMasteringLuminance (float &OutMin, float &OutMax) const
 
virtual TOptional< UE::Color::FColorSpaceGetDisplayMasteringColorSpace () const
 
virtual bool GetMaxLuminanceLevels (uint16 &OutCLL, uint16 &OutFALL) const
 
virtual MediaShaders::EToneMapMethod GetToneMapMethod () const
 
virtual void Reset ()
 
virtual ~IMediaTextureSample ()
 

Detailed Description

Interface for media texture samples.

Media texture samples are generated by media players and sent to the registered media texture sink. They contain a single frame of texture data along with extra metadata, such as dimensions, time codes, and durations.

Depending on the decoder, a frame's pixel data may be stored in a CPU memory buffer, or in an RHI texture resource (only available when compiling against the Engine). The media texture sample API supports both models via the GetBuffer and the GetTexture methods. Sample instances need to implement only one of these.

Constructor & Destructor Documentation

◆ ~IMediaTextureSample()

virtual IMediaTextureSample::~IMediaTextureSample ( )
inlinevirtual

Virtual destructor.

Member Function Documentation

◆ GetAspectRatio()

virtual double IMediaTextureSample::GetAspectRatio ( ) const
inlinevirtual

Get pixel aspect ratio

Returns
Pixel aspect ratio

◆ GetBuffer()

virtual const void * IMediaTextureSample::GetBuffer ( )
pure virtual

Get the sample's frame buffer.

The returned buffer is only valid for the life time of this sample.

Returns
Buffer containing the texels, or nullptr if the sample holds an FTexture.
See also
GetDim, GetDuration, GetFormat, GetOutputDim, GetStride, GetTexture, GetTime

◆ GetChromaticAdapationMethod()

virtual UE::Color::EChromaticAdaptationMethod IMediaTextureSample::GetChromaticAdapationMethod ( ) const
inlinevirtual

Chromatic adaptation method to be used when applying a color space transform (i.e. from source to working color space).

◆ GetDim()

virtual FIntPoint IMediaTextureSample::GetDim ( ) const
pure virtual

Get the width and height of the sample.

The sample may be larger than the output dimensions, because of horizontal or vertical padding required by some formats.

Returns
Buffer dimensions (in texels).
See also
GetBuffer, GetDuration, GetFormat, GetOutputDim, GetStride, GetTexture, GetTime

◆ GetDisplayMasteringColorSpace()

virtual TOptional< UE::Color::FColorSpace > IMediaTextureSample::GetDisplayMasteringColorSpace ( ) const
inlinevirtual

Get display mastering color space

◆ GetDisplayMasteringLuminance()

virtual bool IMediaTextureSample::GetDisplayMasteringLuminance ( float OutMin,
float OutMax 
) const
inlinevirtual

Get display mastering luminance information

◆ GetDisplayPrimaryBlue()

virtual FVector2d IMediaTextureSample::GetDisplayPrimaryBlue ( ) const
inlinevirtual

◆ GetDisplayPrimaryGreen()

virtual FVector2d IMediaTextureSample::GetDisplayPrimaryGreen ( ) const
inlinevirtual

◆ GetDisplayPrimaryRed()

virtual FVector2d IMediaTextureSample::GetDisplayPrimaryRed ( ) const
inlinevirtual

◆ GetDuration()

virtual FTimespan IMediaTextureSample::GetDuration ( ) const
pure virtual

Get the amount of time for which the sample is valid.

A duration of zero indicates that the sample is valid until the timecode of the next sample in the queue.

Returns
Sample duration.
See also
GetBuffer, GetDim, GetFormat, GetOutputDim, GetStride, GetTexture, GetTime

◆ GetEncodingType()

virtual UE::Color::EEncoding IMediaTextureSample::GetEncodingType ( ) const
inlinevirtual

Get EOTF / "Gamma" / encoding type of data

◆ GetFormat()

virtual EMediaTextureSampleFormat IMediaTextureSample::GetFormat ( ) const
pure virtual

Get the texture sample format.

Returns
Sample format.
See also
GetBuffer, GetDim, GetDuration, GetOutputDim, GetStride, GetTexture, GetTime

◆ GetFramerate()

virtual TOptional< FFrameRate > IMediaTextureSample::GetFramerate ( ) const
inlinevirtual

Get the sample framerate if available. This is the rate in which the timecode is measured. It is not necessarily the display frame rate.

Returns
Sample framerate. May be needed for converting GetTimecode().
See also
GetTime

◆ GetFullRange()

virtual bool IMediaTextureSample::GetFullRange ( ) const
inlinevirtual

◆ GetGamutToXYZMatrix()

virtual FMatrix44d IMediaTextureSample::GetGamutToXYZMatrix ( ) const
inlinevirtual

◆ GetHDRNitsNormalizationFactor()

virtual float IMediaTextureSample::GetHDRNitsNormalizationFactor ( ) const
inlinevirtual

Get factor to normalize data from nits to scene color values

◆ GetMaxLuminanceLevels()

virtual bool IMediaTextureSample::GetMaxLuminanceLevels ( uint16 OutCLL,
uint16 OutFALL 
) const
inlinevirtual

Get maximum luminance information

◆ GetNumMips()

virtual uint8 IMediaTextureSample::GetNumMips ( ) const
inlinevirtual

Get the number of mips encoded in the sample

Returns
Number of mips in the sample (including base level)
Note
Default implementation provided as most samples will not feature mips

◆ GetOffset()

virtual FLinearColor IMediaTextureSample::GetOffset ( ) const
inlinevirtual

Get the Offset applied after ScaleRotation for the sample.

Returns
FLinearColor with xy = offset, zw must be zero
Note
For use with "external image" style output only

◆ GetOrientation()

virtual EMediaOrientation IMediaTextureSample::GetOrientation ( ) const
inlinevirtual

Get image orientation vs. physically returned image data

Returns
Image orientation

◆ GetOutputDim()

virtual FIntPoint IMediaTextureSample::GetOutputDim ( ) const
pure virtual

Get the sample's desired output width and height.

The output dimensions may be smaller than the frame buffer dimensions, because of horizontal and/or vertical padding that may be required for some formats.

Returns
Output dimensions (in pixels).
See also
GetBuffer, GetDim, GetDuration, GetFormat, GetStride, GetTexture, GetTime

◆ GetSampleToRGBMatrix()

virtual FMatrix44f IMediaTextureSample::GetSampleToRGBMatrix ( ) const
inlinevirtual

Get complete 4x4 matrix to apply to the sample's pixels to yield RGB data in the sample's gamut

Returns
Conversion Matrix

◆ GetScaleRotation()

virtual FLinearColor IMediaTextureSample::GetScaleRotation ( ) const
inlinevirtual

Get the ScaleRotation (2x2 matrix) for the sample.

Returns
FLinearColor with xy = row 0 (dotted with U), zw = row 1 (dotted with V)
Note
For use with "external image" style output only. Use GetOrientation() otherwise

◆ GetSourceColorSpace()

virtual const UE::Color::FColorSpace & IMediaTextureSample::GetSourceColorSpace ( ) const
inlinevirtual

◆ GetStride()

virtual uint32 IMediaTextureSample::GetStride ( ) const
pure virtual

Get the horizontal stride (aka. pitch) of the sample's frame buffer.

Returns
The buffer stride (in number of bytes).
See also
GetBuffer, GetDim, GetDuration, GetFormat, GetOutputDim, GetTexture, GetTime

◆ GetTilingDescription()

virtual FMediaTextureTilingDescription IMediaTextureSample::GetTilingDescription ( ) const
inlinevirtual

Get tile information (number, size and border size) of the sample.

Returns
TileInfo struct
Note
Default implementation provided as most samples will not feature tiles

◆ GetTime()

virtual FMediaTimeStamp IMediaTextureSample::GetTime ( ) const
pure virtual

Get the sample time (in the player's local clock).

This value is used primarily for debugging purposes.

Returns
Sample time.
See also
GetBuffer, GetDim, GetDuration, GetFormat, GetOutputDim, GetStride, GetTexture

◆ GetTimecode()

virtual TOptional< FTimecode > IMediaTextureSample::GetTimecode ( ) const
inlinevirtual

Get the sample timecode if available.

Returns
Sample timecode.
See also
GetTime

◆ GetToneMapMethod()

virtual MediaShaders::EToneMapMethod IMediaTextureSample::GetToneMapMethod ( ) const
inlinevirtual

Get an optional tonemapping method, for application on HDR inputs.

◆ GetWhitePoint()

virtual FVector2d IMediaTextureSample::GetWhitePoint ( ) const
inlinevirtual

◆ GetYUVToRGBMatrix()

virtual const FMatrix & IMediaTextureSample::GetYUVToRGBMatrix ( ) const
inlinevirtual

Get the YUV to RGB conversion matrix.

Default is equivalent to MediaShaders::YuvToRgbRec709Scaled Matrix. NOTE: previously in UE4 this was YuvToRgbRec601Scaled

Returns
Conversion Matrix

◆ IsCacheable()

virtual bool IMediaTextureSample::IsCacheable ( ) const
pure virtual

Whether the sample can be held in a cache.

Non-cacheable video samples become invalid when the next sample is available, and only the latest sample should be kept by video sample consumers.

Returns
true if cacheable, false otherwise.

◆ IsExternalImage()

virtual bool IMediaTextureSample::IsExternalImage ( ) const
inlinevirtual

Indicate if this sample references an "external image"

◆ IsOutputSrgb()

virtual bool IMediaTextureSample::IsOutputSrgb ( ) const
pure virtual

Whether the output of the sample is in sRGB color space.

Returns
true if sRGB, false otherwise.

◆ Reset()

virtual void IMediaTextureSample::Reset ( )
inlinevirtual

Reset sample to empty state

◆ ShouldApplyColorConversion()

virtual bool IMediaTextureSample::ShouldApplyColorConversion ( ) const
inlinevirtual

Whether samples should be converted based on a mismatch with the working color space. If this is false, samples will not go through the conversion process even if their encoding or chromaticity doesn't match the working color space.


The documentation for this class was generated from the following file: