UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FMediaSamples Class Reference

#include <MediaSamples.h>

+ Inheritance diagram for FMediaSamples:

Public Member Functions

MEDIAUTILS_API FMediaSamples (uint32 InMaxNumberOfQueuedAudioSamples=MaxNumberOfQueuedAudioSamples, uint32 InMaxNumberOfQueuedVideoSamples=MaxNumberOfQueuedVideoSamples, uint32 InMaxNumberOfQueuedCaptionSamples=MaxNumberOfQueuedCaptionSamples, uint32 InMaxNumberOfQueuedSubtitlesSamples=MaxNumberOfQueuedSubtitlesSamples, uint32 InMaxNumberOfQueuedMetaDataSamples=MaxNumberOfQueuedMetaDataSamples)
 
MEDIAUTILS_API ~FMediaSamples ()
 
MEDIAUTILS_API void AddAudio (const TSharedRef< IMediaAudioSample, ESPMode::ThreadSafe > &Sample)
 
MEDIAUTILS_API void AddCaption (const TSharedRef< IMediaOverlaySample, ESPMode::ThreadSafe > &Sample)
 
MEDIAUTILS_API void AddMetadata (const TSharedRef< IMediaBinarySample, ESPMode::ThreadSafe > &Sample)
 
MEDIAUTILS_API void AddSubtitle (const TSharedRef< IMediaOverlaySample, ESPMode::ThreadSafe > &Sample)
 
MEDIAUTILS_API void AddVideo (const TSharedRef< IMediaTextureSample, ESPMode::ThreadSafe > &Sample)
 
int32 NumAudioSamples () const override
 
int32 NumCaptionSamples () const override
 
int32 NumMetadataSamples () const override
 
int32 NumSubtitleSamples () const override
 
int32 NumVideoSamples () const override
 
virtual MEDIAUTILS_API bool FetchAudio (TRange< FTimespan > TimeRange, TSharedPtr< IMediaAudioSample, ESPMode::ThreadSafe > &OutSample) override
 
virtual MEDIAUTILS_API bool FetchCaption (TRange< FTimespan > TimeRange, TSharedPtr< IMediaOverlaySample, ESPMode::ThreadSafe > &OutSample) override
 
virtual MEDIAUTILS_API bool FetchMetadata (TRange< FTimespan > TimeRange, TSharedPtr< IMediaBinarySample, ESPMode::ThreadSafe > &OutSample) override
 
virtual MEDIAUTILS_API bool FetchSubtitle (TRange< FTimespan > TimeRange, TSharedPtr< IMediaOverlaySample, ESPMode::ThreadSafe > &OutSample) override
 
virtual MEDIAUTILS_API bool FetchVideo (TRange< FTimespan > TimeRange, TSharedPtr< IMediaTextureSample, ESPMode::ThreadSafe > &OutSample) override
 
virtual MEDIAUTILS_API void FlushSamples () override
 
virtual MEDIAUTILS_API bool FetchAudio (TRange< FMediaTimeStamp > TimeRange, TSharedPtr< IMediaAudioSample, ESPMode::ThreadSafe > &OutSample) override
 
virtual MEDIAUTILS_API bool FetchCaption (TRange< FMediaTimeStamp > TimeRange, TSharedPtr< IMediaOverlaySample, ESPMode::ThreadSafe > &OutSample) override
 
virtual MEDIAUTILS_API bool FetchMetadata (TRange< FMediaTimeStamp > TimeRange, TSharedPtr< IMediaBinarySample, ESPMode::ThreadSafe > &OutSample) override
 
virtual MEDIAUTILS_API bool FetchSubtitle (TRange< FMediaTimeStamp > TimeRange, TSharedPtr< IMediaOverlaySample, ESPMode::ThreadSafe > &OutSample) override
 
virtual MEDIAUTILS_API bool FetchVideo (TRange< FMediaTimeStamp > TimeRange, TSharedPtr< IMediaTextureSample, ESPMode::ThreadSafe > &OutSample) override
 
virtual MEDIAUTILS_API EFetchBestSampleResult FetchBestVideoSampleForTimeRange (const TRange< FMediaTimeStamp > &TimeRange, TSharedPtr< IMediaTextureSample, ESPMode::ThreadSafe > &OutSample, bool bReverse, bool bConsistentResult) override
 
virtual MEDIAUTILS_API void SetMinExpectedNextSequenceIndex (TOptional< int32 > InNextSequenceIndex) override
 
virtual bool PeekVideoSampleTime (FMediaTimeStamp &TimeStamp) override
 
virtual bool PeekVideoSampleTimeRanges (TArray< TRange< FMediaTimeStamp > > &TimeRange) override
 
virtual bool PeekAudioSampleTimeRanges (TArray< TRange< FMediaTimeStamp > > &TimeRange) override
 
virtual bool DiscardVideoSamples (const TRange< FMediaTimeStamp > &TimeRange, bool bReverse) override
 
virtual bool DiscardAudioSamples (const TRange< FMediaTimeStamp > &TimeRange, bool bReverse) override
 
virtual bool DiscardCaptionSamples (const TRange< FMediaTimeStamp > &TimeRange, bool bReverse) override
 
virtual bool DiscardSubtitleSamples (const TRange< FMediaTimeStamp > &TimeRange, bool bReverse) override
 
virtual bool DiscardMetadataSamples (const TRange< FMediaTimeStamp > &TimeRange, bool bReverse) override
 
virtual uint32 GetNumDroppedVideoSamples (bool bInClearToZero) override
 
virtual uint32 GetNumDroppedAudioSamples (bool bInClearToZero) override
 
virtual uint32 GetNumDroppedSubtitleSamples (bool bInClearToZero) override
 
virtual uint32 GetNumDroppedCaptionSamples (bool bInClearToZero) override
 
virtual uint32 GetNumDroppedMetadataSamples (bool bInClearToZero) override
 
virtual MEDIAUTILS_API uint32 PurgeOutdatedVideoSamples (const FMediaTimeStamp &ReferenceTime, bool bReversed, FTimespan MaxAge) override
 
virtual MEDIAUTILS_API uint32 PurgeOutdatedSubtitleSamples (const FMediaTimeStamp &ReferenceTime, bool bReversed, FTimespan MaxAge) override
 
virtual MEDIAUTILS_API uint32 PurgeOutdatedCaptionSamples (const FMediaTimeStamp &ReferenceTime, bool bReversed, FTimespan MaxAge) override
 
virtual MEDIAUTILS_API uint32 PurgeOutdatedMetadataSamples (const FMediaTimeStamp &ReferenceTime, bool bReversed, FTimespan MaxAge) override
 
virtual MEDIAUTILS_API bool CanReceiveVideoSamples (uint32 Num) const override
 
virtual MEDIAUTILS_API bool CanReceiveAudioSamples (uint32 Num) const override
 
virtual MEDIAUTILS_API bool CanReceiveSubtitleSamples (uint32 Num) const override
 
virtual MEDIAUTILS_API bool CanReceiveCaptionSamples (uint32 Num) const override
 
virtual MEDIAUTILS_API bool CanReceiveMetadataSamples (uint32 Num) const override
 
- Public Member Functions inherited from IMediaSamples
virtual void SetSampleBufferSize (int32 BufferSize)
 
virtual ~IMediaSamples ()
 

Static Public Attributes

static constexpr uint32 MaxNumberOfQueuedVideoSamples = 4
 
static constexpr uint32 MaxNumberOfQueuedAudioSamples = 4
 
static constexpr uint32 MaxNumberOfQueuedCaptionSamples = 4
 
static constexpr uint32 MaxNumberOfQueuedSubtitlesSamples = 4
 
static constexpr uint32 MaxNumberOfQueuedMetaDataSamples = 4
 

Additional Inherited Members

- Public Types inherited from IMediaSamples
enum class  EFetchBestSampleResult { Ok = 0 , NoSample , PurgedToEmpty , NotSupported }
 

Detailed Description

General purpose media sample queue.

Constructor & Destructor Documentation

◆ FMediaSamples()

FMediaSamples::FMediaSamples ( uint32  InMaxNumberOfQueuedAudioSamples = MaxNumberOfQueuedAudioSamples,
uint32  InMaxNumberOfQueuedVideoSamples = MaxNumberOfQueuedVideoSamples,
uint32  InMaxNumberOfQueuedCaptionSamples = MaxNumberOfQueuedCaptionSamples,
uint32  InMaxNumberOfQueuedSubtitlesSamples = MaxNumberOfQueuedSubtitlesSamples,
uint32  InMaxNumberOfQueuedMetaDataSamples = MaxNumberOfQueuedMetaDataSamples 
)

◆ ~FMediaSamples()

FMediaSamples::~FMediaSamples ( )
default

Member Function Documentation

◆ AddAudio()

void FMediaSamples::AddAudio ( const TSharedRef< IMediaAudioSample, ESPMode::ThreadSafe > &  Sample)

Add the given audio sample to the cache.

Parameters
SampleThe sample to add.
See also
AddCaption, AddMetadata, AddSubtitle, AddVideo, NumAudio

◆ AddCaption()

void FMediaSamples::AddCaption ( const TSharedRef< IMediaOverlaySample, ESPMode::ThreadSafe > &  Sample)

Add the given caption sample to the cache.

Parameters
SampleThe sample to add.
See also
AddAudio, AddMetadata, AddSubtitle, AddVideo, NumCaption

◆ AddMetadata()

void FMediaSamples::AddMetadata ( const TSharedRef< IMediaBinarySample, ESPMode::ThreadSafe > &  Sample)

Add the given audio sample to the cache.

Parameters
SampleThe sample to add.
See also
AddAudio, AddCaption, AddSubtitle, AddVideo, NumMetadata

◆ AddSubtitle()

void FMediaSamples::AddSubtitle ( const TSharedRef< IMediaOverlaySample, ESPMode::ThreadSafe > &  Sample)

Add the given subtitle sample to the cache.

Parameters
SampleThe sample to add.
See also
AddAudio, AddCaption, AddMetadata, AddVideo, NumSubtitle

◆ AddVideo()

void FMediaSamples::AddVideo ( const TSharedRef< IMediaTextureSample, ESPMode::ThreadSafe > &  Sample)

Add the given audio sample to the cache.

Parameters
SampleThe sample to add.
See also
AddAudio, AddCaption, AddMetadata, AddSubtitle, NumVideo

◆ CanReceiveAudioSamples()

bool FMediaSamples::CanReceiveAudioSamples ( uint32  Num) const
overridevirtual

Check if can receive more audio samples

Reimplemented from IMediaSamples.

◆ CanReceiveCaptionSamples()

bool FMediaSamples::CanReceiveCaptionSamples ( uint32  Num) const
overridevirtual

Check if can receive more caption samples

Reimplemented from IMediaSamples.

◆ CanReceiveMetadataSamples()

bool FMediaSamples::CanReceiveMetadataSamples ( uint32  Num) const
overridevirtual

Check if can receive more metadata samples

Reimplemented from IMediaSamples.

◆ CanReceiveSubtitleSamples()

bool FMediaSamples::CanReceiveSubtitleSamples ( uint32  Num) const
overridevirtual

Check if can receive more subtitle samples

Reimplemented from IMediaSamples.

◆ CanReceiveVideoSamples()

bool FMediaSamples::CanReceiveVideoSamples ( uint32  Num) const
overridevirtual

Check if can receive more video samples

Reimplemented from IMediaSamples.

◆ DiscardAudioSamples()

virtual bool FMediaSamples::DiscardAudioSamples ( const TRange< FMediaTimeStamp > &  TimeRange,
bool  bReverse 
)
inlineoverridevirtual

Reimplemented from IMediaSamples.

◆ DiscardCaptionSamples()

virtual bool FMediaSamples::DiscardCaptionSamples ( const TRange< FMediaTimeStamp > &  TimeRange,
bool  bReverse 
)
inlineoverridevirtual

Reimplemented from IMediaSamples.

◆ DiscardMetadataSamples()

virtual bool FMediaSamples::DiscardMetadataSamples ( const TRange< FMediaTimeStamp > &  TimeRange,
bool  bReverse 
)
inlineoverridevirtual

Reimplemented from IMediaSamples.

◆ DiscardSubtitleSamples()

virtual bool FMediaSamples::DiscardSubtitleSamples ( const TRange< FMediaTimeStamp > &  TimeRange,
bool  bReverse 
)
inlineoverridevirtual

Reimplemented from IMediaSamples.

◆ DiscardVideoSamples()

virtual bool FMediaSamples::DiscardVideoSamples ( const TRange< FMediaTimeStamp > &  TimeRange,
bool  bReverse 
)
inlineoverridevirtual

Reimplemented from IMediaSamples.

◆ FetchAudio() [1/2]

bool FMediaSamples::FetchAudio ( TRange< FMediaTimeStamp TimeRange,
TSharedPtr< IMediaAudioSample, ESPMode::ThreadSafe > &  OutSample 
)
overridevirtual

Reimplemented from IMediaSamples.

◆ FetchAudio() [2/2]

bool FMediaSamples::FetchAudio ( TRange< FTimespan TimeRange,
TSharedPtr< IMediaAudioSample, ESPMode::ThreadSafe > &  OutSample 
)
overridevirtual

Fetch the next audio sample.

Parameters
TimeRangeThe range of present times that the sample is allowed to have.
OutSampleWill contain the sample if the queue is not empty.
Returns
true if the returned sample is valid, false otherwise.
See also
FetchCaption, FetchMetadata, FetchSubtitle, FetchVideo

Reimplemented from IMediaSamples.

◆ FetchBestVideoSampleForTimeRange()

FMediaSamples::EFetchBestSampleResult FMediaSamples::FetchBestVideoSampleForTimeRange ( const TRange< FMediaTimeStamp > &  TimeRange,
TSharedPtr< IMediaTextureSample, ESPMode::ThreadSafe > &  OutSample,
bool  bReverse,
bool  bConsistentResult 
)
overridevirtual

Fetch video sample best suited for the given time range. Samples prior to the selected one will be removed from the queue.

Reimplemented from IMediaSamples.

◆ FetchCaption() [1/2]

bool FMediaSamples::FetchCaption ( TRange< FMediaTimeStamp TimeRange,
TSharedPtr< IMediaOverlaySample, ESPMode::ThreadSafe > &  OutSample 
)
overridevirtual

Reimplemented from IMediaSamples.

◆ FetchCaption() [2/2]

bool FMediaSamples::FetchCaption ( TRange< FTimespan TimeRange,
TSharedPtr< IMediaOverlaySample, ESPMode::ThreadSafe > &  OutSample 
)
overridevirtual

Fetch the next caption sample.

Parameters
TimeRangeThe range of present times that the sample is allowed to have.
OutSampleWill contain the sample if the queue is not empty.
Returns
true if the returned sample is valid, false otherwise.
See also
FetchAudio, FetchMetadata, FetchSubtitle, FetchVideo

Reimplemented from IMediaSamples.

◆ FetchMetadata() [1/2]

bool FMediaSamples::FetchMetadata ( TRange< FMediaTimeStamp TimeRange,
TSharedPtr< IMediaBinarySample, ESPMode::ThreadSafe > &  OutSample 
)
overridevirtual

Reimplemented from IMediaSamples.

◆ FetchMetadata() [2/2]

bool FMediaSamples::FetchMetadata ( TRange< FTimespan TimeRange,
TSharedPtr< IMediaBinarySample, ESPMode::ThreadSafe > &  OutSample 
)
overridevirtual

Fetch the next metadata sample.

Parameters
TimeRangeThe range of present times that the sample is allowed to have.
OutSampleWill contain the sample if the queue is not empty.
Returns
true if the returned sample is valid, false otherwise.
See also
FetchAudio, FetchCaption, FetchSubtitle, FetchVideo

Reimplemented from IMediaSamples.

◆ FetchSubtitle() [1/2]

bool FMediaSamples::FetchSubtitle ( TRange< FMediaTimeStamp TimeRange,
TSharedPtr< IMediaOverlaySample, ESPMode::ThreadSafe > &  OutSample 
)
overridevirtual

Reimplemented from IMediaSamples.

◆ FetchSubtitle() [2/2]

bool FMediaSamples::FetchSubtitle ( TRange< FTimespan TimeRange,
TSharedPtr< IMediaOverlaySample, ESPMode::ThreadSafe > &  OutSample 
)
overridevirtual

Fetch the next subtitle sample.

Parameters
TimeRangeThe range of present times that the sample is allowed to have.
OutSampleWill contain the sample if the queue is not empty.
Returns
true if the returned sample is valid, false otherwise.
See also
FetchAudio, FetchCaption, FetchMetadata, FetchVideo

Reimplemented from IMediaSamples.

◆ FetchVideo() [1/2]

bool FMediaSamples::FetchVideo ( TRange< FMediaTimeStamp TimeRange,
TSharedPtr< IMediaTextureSample, ESPMode::ThreadSafe > &  OutSample 
)
overridevirtual

Reimplemented from IMediaSamples.

◆ FetchVideo() [2/2]

bool FMediaSamples::FetchVideo ( TRange< FTimespan TimeRange,
TSharedPtr< IMediaTextureSample, ESPMode::ThreadSafe > &  OutSample 
)
overridevirtual

Fetch the next video sample.

Parameters
TimeRangeThe range of present times that the sample is allowed to have.
OutSampleWill contain the sample if the queue is not empty.
Returns
true if the returned sample is valid, false otherwise.
See also
FetchAudio, FetchCaption, FetchMetadata, FetchSubtitle

Reimplemented from IMediaSamples.

◆ FlushSamples()

void FMediaSamples::FlushSamples ( )
overridevirtual

Discard any outstanding media samples.

Reimplemented from IMediaSamples.

◆ GetNumDroppedAudioSamples()

virtual uint32 FMediaSamples::GetNumDroppedAudioSamples ( bool  bInClearToZero)
inlineoverridevirtual

Reimplemented from IMediaSamples.

◆ GetNumDroppedCaptionSamples()

virtual uint32 FMediaSamples::GetNumDroppedCaptionSamples ( bool  bInClearToZero)
inlineoverridevirtual

Reimplemented from IMediaSamples.

◆ GetNumDroppedMetadataSamples()

virtual uint32 FMediaSamples::GetNumDroppedMetadataSamples ( bool  bInClearToZero)
inlineoverridevirtual

Reimplemented from IMediaSamples.

◆ GetNumDroppedSubtitleSamples()

virtual uint32 FMediaSamples::GetNumDroppedSubtitleSamples ( bool  bInClearToZero)
inlineoverridevirtual

Reimplemented from IMediaSamples.

◆ GetNumDroppedVideoSamples()

virtual uint32 FMediaSamples::GetNumDroppedVideoSamples ( bool  bInClearToZero)
inlineoverridevirtual

Reimplemented from IMediaSamples.

◆ NumAudioSamples()

int32 FMediaSamples::NumAudioSamples ( ) const
inlineoverridevirtual

Get the number of queued audio samples.

Returns
Number of samples.
See also
AddAudio, NumCaption, NumMetadata, NumSubtitle, NumVideo

Reimplemented from IMediaSamples.

◆ NumCaptionSamples()

int32 FMediaSamples::NumCaptionSamples ( ) const
inlineoverridevirtual

Get the number of queued caption samples.

Returns
Number of samples.
See also
AddCaption, NumAudio, NumMetadata, NumSubtitle, NumVideo

Reimplemented from IMediaSamples.

◆ NumMetadataSamples()

int32 FMediaSamples::NumMetadataSamples ( ) const
inlineoverridevirtual

Get the number of queued metadata samples.

Returns
Number of samples.
See also
AddMetadata, NumAudio, NumCaption, NumSubtitle, NumVideo

Reimplemented from IMediaSamples.

◆ NumSubtitleSamples()

int32 FMediaSamples::NumSubtitleSamples ( ) const
inlineoverridevirtual

Get the number of queued subtitle samples.

Returns
Number of samples.
See also
AddSubtitle, NumAudio, NumCaption, NumMetadata, NumVideo

Reimplemented from IMediaSamples.

◆ NumVideoSamples()

int32 FMediaSamples::NumVideoSamples ( ) const
inlineoverridevirtual

Get the number of queued video samples.

Returns
Number of samples.
See also
AddVideo, NumAudio, NumCaption, NumMetadata, NumSubtitle

Reimplemented from IMediaSamples.

◆ PeekAudioSampleTimeRanges()

virtual bool FMediaSamples::PeekAudioSampleTimeRanges ( TArray< TRange< FMediaTimeStamp > > &  TimeRange)
inlineoverridevirtual

Reimplemented from IMediaSamples.

◆ PeekVideoSampleTime()

virtual bool FMediaSamples::PeekVideoSampleTime ( FMediaTimeStamp TimeStamp)
inlineoverridevirtual

Peek next video sample's timestamp

Returns
true if value could be retrieved, false otherwise

Implements IMediaSamples.

◆ PeekVideoSampleTimeRanges()

virtual bool FMediaSamples::PeekVideoSampleTimeRanges ( TArray< TRange< FMediaTimeStamp > > &  TimeRange)
inlineoverridevirtual

Reimplemented from IMediaSamples.

◆ PurgeOutdatedCaptionSamples()

uint32 FMediaSamples::PurgeOutdatedCaptionSamples ( const FMediaTimeStamp ReferenceTime,
bool  bReversed,
FTimespan  MaxAge 
)
overridevirtual

Remove any caption samples from the queue that have no chance of being displayed anymore

Reimplemented from IMediaSamples.

◆ PurgeOutdatedMetadataSamples()

uint32 FMediaSamples::PurgeOutdatedMetadataSamples ( const FMediaTimeStamp ReferenceTime,
bool  bReversed,
FTimespan  MaxAge 
)
overridevirtual

Remove any caption samples from the queue that have no chance of being displayed anymore

Reimplemented from IMediaSamples.

◆ PurgeOutdatedSubtitleSamples()

uint32 FMediaSamples::PurgeOutdatedSubtitleSamples ( const FMediaTimeStamp ReferenceTime,
bool  bReversed,
FTimespan  MaxAge 
)
overridevirtual

Remove any subtitle samples from the queue that have no chance of being displayed anymore

Reimplemented from IMediaSamples.

◆ PurgeOutdatedVideoSamples()

uint32 FMediaSamples::PurgeOutdatedVideoSamples ( const FMediaTimeStamp ReferenceTime,
bool  bReversed,
FTimespan  MaxAge 
)
overridevirtual

Remove any video samples from the queue that have no chance of being displayed anymore

Reimplemented from IMediaSamples.

◆ SetMinExpectedNextSequenceIndex()

void FMediaSamples::SetMinExpectedNextSequenceIndex ( TOptional< int32 InNextSequenceIndex)
overridevirtual

Reimplemented from IMediaSamples.

Member Data Documentation

◆ MaxNumberOfQueuedAudioSamples

constexpr uint32 FMediaSamples::MaxNumberOfQueuedAudioSamples = 4
staticconstexpr

◆ MaxNumberOfQueuedCaptionSamples

constexpr uint32 FMediaSamples::MaxNumberOfQueuedCaptionSamples = 4
staticconstexpr

◆ MaxNumberOfQueuedMetaDataSamples

constexpr uint32 FMediaSamples::MaxNumberOfQueuedMetaDataSamples = 4
staticconstexpr

◆ MaxNumberOfQueuedSubtitlesSamples

constexpr uint32 FMediaSamples::MaxNumberOfQueuedSubtitlesSamples = 4
staticconstexpr

◆ MaxNumberOfQueuedVideoSamples

constexpr uint32 FMediaSamples::MaxNumberOfQueuedVideoSamples = 4
staticconstexpr

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