UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
IMediaSamples.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "Containers/Array.h"
6#include "Math/Range.h"
7#include "Misc/Timespan.h"
8#include "Misc/Optional.h"
10#include "IMediaTimeSource.h"
11
16
17
24{
25public:
26
27 //~ The following methods are optional
28
38 {
39 return false; // override in child classes, if supported
40 }
42 {
43 return false; // override in child classes, if supported
44 }
45
55 {
56 return false; // override in child classes, if supported
57 }
59 {
60 return false; // override in child classes, if supported
61 }
62
72 {
73 return false; // override in child classes, if supported
74 }
76 {
77 return false; // override in child classes, if supported
78 }
79
89 {
90 return false; // override in child classes, if supported
91 }
93 {
94 return false; // override in child classes, if supported
95 }
96
106 {
107 return false; // override in child classes, if supported
108 }
110 {
111 return false; // override in child classes, if supported
112 }
113
115 virtual void FlushSamples()
116 {
117 // override in child classes, if supported
118 }
119
121 virtual void SetSampleBufferSize(int32 BufferSize) {};
122
124 {
125 Ok = 0,
126 NoSample,
129 };
135
136 virtual bool PeekVideoSampleTime(FMediaTimeStamp& TimeStamp) = 0;
137
138 virtual bool PeekVideoSampleTimeRanges(TArray<TRange<FMediaTimeStamp>>& TimeRange) { return false; }
139 virtual bool PeekAudioSampleTimeRanges(TArray<TRange<FMediaTimeStamp>>& TimeRange) { return false; }
140
141 virtual bool DiscardVideoSamples(const TRange<FMediaTimeStamp>& TimeRange, bool bReverse) { return false; }
142 virtual bool DiscardAudioSamples(const TRange<FMediaTimeStamp>& TimeRange, bool bReverse) { return false; }
143 virtual bool DiscardCaptionSamples(const TRange<FMediaTimeStamp>& TimeRange, bool bReverse) { return false; }
144 virtual bool DiscardSubtitleSamples(const TRange<FMediaTimeStamp>& TimeRange, bool bReverse) { return false; }
145 virtual bool DiscardMetadataSamples(const TRange<FMediaTimeStamp>& TimeRange, bool bReverse) { return false; }
146
151
152 virtual bool CanReceiveVideoSamples(uint32 Num) const { return true; }
153 virtual bool CanReceiveAudioSamples(uint32 Num) const { return true; }
154 virtual bool CanReceiveSubtitleSamples(uint32 Num) const { return true; }
155 virtual bool CanReceiveCaptionSamples(uint32 Num) const { return true; }
156 virtual bool CanReceiveMetadataSamples(uint32 Num) const { return true; }
157
158 virtual int32 NumAudioSamples() const { return -1; }
159 virtual int32 NumCaptionSamples() const { return -1; }
160 virtual int32 NumMetadataSamples() const { return -1; }
161 virtual int32 NumSubtitleSamples() const { return -1; }
162 virtual int32 NumVideoSamples() const { return -1; }
163
169
170public:
171
173 virtual ~IMediaSamples() { }
174};
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
@ Num
Definition MetalRHIPrivate.h:234
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition IMediaTimeSource.h:28
Definition IMediaAudioSample.h:41
Definition IMediaBinarySample.h:17
Definition IMediaOverlaySample.h:32
Definition IMediaSamples.h:24
virtual bool FetchCaption(TRange< FTimespan > TimeRange, TSharedPtr< IMediaOverlaySample, ESPMode::ThreadSafe > &OutSample)
Definition IMediaSamples.h:54
virtual bool CanReceiveAudioSamples(uint32 Num) const
Definition IMediaSamples.h:153
virtual int32 NumMetadataSamples() const
Definition IMediaSamples.h:160
virtual int32 NumVideoSamples() const
Definition IMediaSamples.h:162
virtual void SetSampleBufferSize(int32 BufferSize)
Definition IMediaSamples.h:121
virtual int32 NumSubtitleSamples() const
Definition IMediaSamples.h:161
virtual bool CanReceiveVideoSamples(uint32 Num) const
Definition IMediaSamples.h:152
virtual bool PeekAudioSampleTimeRanges(TArray< TRange< FMediaTimeStamp > > &TimeRange)
Definition IMediaSamples.h:139
virtual uint32 GetNumDroppedCaptionSamples(bool bInClearToZero)
Definition IMediaSamples.h:167
virtual uint32 PurgeOutdatedSubtitleSamples(const FMediaTimeStamp &ReferenceTime, bool bReversed, FTimespan MaxAge)
Definition IMediaSamples.h:149
virtual uint32 PurgeOutdatedMetadataSamples(const FMediaTimeStamp &ReferenceTime, bool bReversed, FTimespan MaxAge)
Definition IMediaSamples.h:150
virtual bool DiscardCaptionSamples(const TRange< FMediaTimeStamp > &TimeRange, bool bReverse)
Definition IMediaSamples.h:143
virtual uint32 GetNumDroppedSubtitleSamples(bool bInClearToZero)
Definition IMediaSamples.h:166
virtual uint32 GetNumDroppedVideoSamples(bool bInClearToZero)
Definition IMediaSamples.h:164
virtual uint32 PurgeOutdatedVideoSamples(const FMediaTimeStamp &ReferenceTime, bool bReversed, FTimespan MaxAge)
Definition IMediaSamples.h:147
virtual bool DiscardMetadataSamples(const TRange< FMediaTimeStamp > &TimeRange, bool bReverse)
Definition IMediaSamples.h:145
virtual void FlushSamples()
Definition IMediaSamples.h:115
virtual bool DiscardVideoSamples(const TRange< FMediaTimeStamp > &TimeRange, bool bReverse)
Definition IMediaSamples.h:141
virtual bool DiscardAudioSamples(const TRange< FMediaTimeStamp > &TimeRange, bool bReverse)
Definition IMediaSamples.h:142
virtual bool PeekVideoSampleTimeRanges(TArray< TRange< FMediaTimeStamp > > &TimeRange)
Definition IMediaSamples.h:138
virtual bool CanReceiveSubtitleSamples(uint32 Num) const
Definition IMediaSamples.h:154
EFetchBestSampleResult
Definition IMediaSamples.h:124
virtual bool FetchVideo(TRange< FTimespan > TimeRange, TSharedPtr< IMediaTextureSample, ESPMode::ThreadSafe > &OutSample)
Definition IMediaSamples.h:105
virtual void SetMinExpectedNextSequenceIndex(TOptional< int32 > InNextSequenceIndex)
Definition IMediaSamples.h:134
virtual bool CanReceiveMetadataSamples(uint32 Num) const
Definition IMediaSamples.h:156
virtual bool FetchCaption(TRange< FMediaTimeStamp > TimeRange, TSharedPtr< IMediaOverlaySample, ESPMode::ThreadSafe > &OutSample)
Definition IMediaSamples.h:58
virtual int32 NumAudioSamples() const
Definition IMediaSamples.h:158
virtual bool FetchAudio(TRange< FMediaTimeStamp > TimeRange, TSharedPtr< IMediaAudioSample, ESPMode::ThreadSafe > &OutSample)
Definition IMediaSamples.h:41
virtual uint32 PurgeOutdatedCaptionSamples(const FMediaTimeStamp &ReferenceTime, bool bReversed, FTimespan MaxAge)
Definition IMediaSamples.h:148
virtual uint32 GetNumDroppedMetadataSamples(bool bInClearToZero)
Definition IMediaSamples.h:168
virtual bool FetchAudio(TRange< FTimespan > TimeRange, TSharedPtr< IMediaAudioSample, ESPMode::ThreadSafe > &OutSample)
Definition IMediaSamples.h:37
virtual bool FetchSubtitle(TRange< FMediaTimeStamp > TimeRange, TSharedPtr< IMediaOverlaySample, ESPMode::ThreadSafe > &OutSample)
Definition IMediaSamples.h:92
virtual bool PeekVideoSampleTime(FMediaTimeStamp &TimeStamp)=0
virtual bool CanReceiveCaptionSamples(uint32 Num) const
Definition IMediaSamples.h:155
virtual bool FetchMetadata(TRange< FMediaTimeStamp > TimeRange, TSharedPtr< IMediaBinarySample, ESPMode::ThreadSafe > &OutSample)
Definition IMediaSamples.h:75
virtual bool FetchMetadata(TRange< FTimespan > TimeRange, TSharedPtr< IMediaBinarySample, ESPMode::ThreadSafe > &OutSample)
Definition IMediaSamples.h:71
virtual uint32 GetNumDroppedAudioSamples(bool bInClearToZero)
Definition IMediaSamples.h:165
virtual bool FetchSubtitle(TRange< FTimespan > TimeRange, TSharedPtr< IMediaOverlaySample, ESPMode::ThreadSafe > &OutSample)
Definition IMediaSamples.h:88
virtual EFetchBestSampleResult FetchBestVideoSampleForTimeRange(const TRange< FMediaTimeStamp > &TimeRange, TSharedPtr< IMediaTextureSample, ESPMode::ThreadSafe > &OutSample, bool bReverse, bool bConsistentResult)
Definition IMediaSamples.h:130
virtual bool FetchVideo(TRange< FMediaTimeStamp > TimeRange, TSharedPtr< IMediaTextureSample, ESPMode::ThreadSafe > &OutSample)
Definition IMediaSamples.h:109
virtual ~IMediaSamples()
Definition IMediaSamples.h:173
virtual int32 NumCaptionSamples() const
Definition IMediaSamples.h:159
virtual bool DiscardSubtitleSamples(const TRange< FMediaTimeStamp > &TimeRange, bool bReverse)
Definition IMediaSamples.h:144
Definition IMediaTextureSample.h:199
Definition Array.h:670
Definition Range.h:50
Definition SharedPointer.h:692
Definition Timespan.h:76
Definition Optional.h:131