UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MediaTextureResource.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreTypes.h"
6#include "Containers/Queue.h"
7#include "Math/Color.h"
8#include "MediaSampleSource.h"
9#include "Misc/Guid.h"
10#include "Misc/Timespan.h"
13#include "TextureResource.h"
14#include "UnrealClient.h"
15#include "IMediaTimeSource.h"
16#include "RHIResources.h"
17#include "Async/Async.h"
18#include "RenderingThread.h"
19#include "RendererInterface.h"
21
23class IMediaPlayer;
25class UMediaTexture;
27struct FPriorSamples;
28
30enum class EMediaTextureSinkMode;
31
33{
36
45
55}
56
61 : public FRenderTarget
62 , public FTextureResource
63{
64public:
65
78
81 {
82 }
83
84public:
85
125
134 void Render(const FRenderParams& Params);
135
140 void FlushPendingData();
141
144
147
149 void JustInTimeRender();
150
151public:
152
153 //~ FRenderTarget interface
154
156
157public:
158
159 //~ FTextureResource interface
160
161 virtual FString GetFriendlyName() const override;
166
168
176
186
188
199
201 void UpdateResourceSize();
202
209
214
221
223 void SetupSampler();
224
227
230
233
234private:
235
237 bool bUsesImageExternal;
238
240 bool Cleared;
241
243 FLinearColor CurrentClearColor;
244
246 FGuid InitialTextureGuid;
247
249 TRefCountPtr<FRHITexture> InputTarget;
250
252 TRefCountPtr<FRHITexture> IntermediateTarget;
253
255 TRefCountPtr<FRHITexture> OutputTarget;
256
258 UMediaTexture& Owner;
259
261 FIntPoint& OwnerDim;
262
264 SIZE_T& OwnerSize;
265
267 bool bEnableGenMips;
268
270 uint8 CurrentNumMips;
271
273 ESamplerFilter CurrentSamplerFilter;
274
276 float CurrentMipMapBias;
277
280
283
287 FCriticalSection PriorSamplesCS;
288
290 TRefCountPtr<IPooledRenderTarget> MipGenerationCache;
291
293 TUniquePtr<FRenderParams> JustInTimeRenderParams;
294
296 TUniquePtr<UE::Color::FColorSpace> OverrideColorSpace;
297
299 bool bRecreateOutputTarget = false;
300};
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
FPlatformTypes::SIZE_T SIZE_T
An unsigned integer the same size as a pointer, the same as UPTRINT.
Definition Platform.h:1150
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE::FPlatformRecursiveMutex FCriticalSection
Definition CriticalSection.h:53
#define PRAGMA_ENABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:12
#define PRAGMA_DISABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:8
EPixelFormat
Definition PixelFormat.h:16
ESamplerFilter
Definition RHIDefinitions.h:326
ESPMode
Definition SharedPointerFwd.h:12
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition MediaPlayerFacade.h:70
Definition MediaTextureResource.h:63
void ConvertSample(FRHICommandListImmediate &RHICmdList, const TSharedPtr< IMediaTextureSample, ESPMode::ThreadSafe > &Sample, const FLinearColor &ClearColor, uint8 InTargetNumMips)
Definition MediaTextureResource.cpp:987
void UpdateTextureReference(FRHICommandListImmediate &RHICmdList, FRHITexture *NewTexture)
Definition MediaTextureResource.cpp:1607
void ResetJustInTimeRenderParams()
Definition MediaTextureResource.cpp:829
void CreateIntermediateRenderTarget(FRHICommandListImmediate &RHICmdList, const FIntPoint &InDim, EPixelFormat InPixelFormat, bool bInSRGB, const FLinearColor &InClearColor, uint8 InNumMips, bool bNeedsUAVSupport)
Definition MediaTextureResource.cpp:1625
virtual ~FMediaTextureResource()
Definition MediaTextureResource.h:80
virtual FString GetFriendlyName() const override
Definition MediaTextureResource.cpp:735
void CacheNextAvailableSampleTime(const TSharedPtr< FMediaTextureSampleSource, ESPMode::ThreadSafe > &InSampleQueue) const
Definition MediaTextureResource.cpp:1679
virtual uint32 GetSizeY() const override
Definition MediaTextureResource.cpp:747
virtual void InitRHI(FRHICommandListBase &RHICmdList) override
Definition MediaTextureResource.cpp:777
void ConvertTextureToOutput(FRHICommandListImmediate &RHICmdList, FRHITexture *InputTexture, const TSharedPtr< IMediaTextureSample, ESPMode::ThreadSafe > &Sample)
Definition MediaTextureResource.cpp:1079
void FlushPendingData()
Definition MediaTextureResource.cpp:396
virtual uint32 GetSizeX() const override
Definition MediaTextureResource.cpp:741
virtual void ReleaseRHI() override
Definition MediaTextureResource.cpp:802
void SetJustInTimeRenderParams(const FRenderParams &InJustInTimeRenderParams)
Definition MediaTextureResource.cpp:821
void SetupSampler()
Definition MediaTextureResource.cpp:753
void GetColorSpaceConversionMatrixForSample(const TSharedPtr< IMediaTextureSample, ESPMode::ThreadSafe > Sample, FMatrix44f &ColorSpaceMtx)
Definition MediaTextureResource.cpp:1057
virtual FIntPoint GetSizeXY() const override
Definition MediaTextureResource.cpp:726
void CopyFromExternalTexture(FRHICommandListImmediate &RHICmdList, const TSharedPtr< IMediaTextureSample, ESPMode::ThreadSafe > &Sample, const FGuid &TextureGUID)
Definition MediaTextureResource.cpp:1520
bool RequiresConversion(const TSharedPtr< IMediaTextureSample, ESPMode::ThreadSafe > &Sample, uint8 InTargetNumMips) const
Definition MediaTextureResource.cpp:906
void UpdateResourceSize()
Definition MediaTextureResource.cpp:1584
void JustInTimeRender()
Definition MediaTextureResource.cpp:836
void ClearTexture(FRHICommandListImmediate &RHICmdList, const FLinearColor &ClearColor, bool SrgbOutput)
Definition MediaTextureResource.cpp:848
void CopySample(FRHICommandListImmediate &RHICmdList, const TSharedPtr< IMediaTextureSample, ESPMode::ThreadSafe > &Sample, const FLinearColor &ClearColor, uint8 InTargetNumMips, const FGuid &TextureGUID)
Definition MediaTextureResource.cpp:1425
Definition IMediaTimeSource.h:28
Definition RHICommandList.h:455
Definition RHICommandList.h:4626
Definition RHIResources.h:2153
Definition UnrealClient.h:30
Definition TextureResource.h:103
Definition IMediaPlayer.h:35
Definition IMediaTextureSample.h:199
Definition SharedPointer.h:692
Definition SharedPointer.h:153
Definition UniquePtr.h:107
Definition SharedPointer.h:1295
Definition MediaTexture.h:42
EColorSpace
Definition ColorManagementDefines.h:46
Definition MediaTextureResource.cpp:53
uint8 ClampNumMips(uint8 InNumMips, const FIntPoint &InDim)
Definition MediaTextureResource.cpp:54
uint8 CalcGeneratedNumMips(const IMediaTextureSample &InSample, bool bInEnableGenMips)
Calculates the target number of generated mips for a given sample.
Definition MediaTextureResource.cpp:65
uint8 CalcTextureNumMips(const IMediaTextureSample &InSample, bool bInEnableGenMips)
Calculates the expected texture resource number of mips for the given sample. Sample source mips take...
Definition MediaTextureResource.cpp:75
Definition AdvancedWidgetsModule.cpp:13
@ false
Definition radaudio_common.h:23
Definition Guid.h:109
Definition Color.h:48
Definition MediaTextureResource.h:88
float Rate
Definition MediaTextureResource.h:110
PRAGMA_DISABLE_DEPRECATION_WARNINGS FRenderParams()=default
PRAGMA_ENABLE_DEPRECATION_WARNINGS bool CanClear
Definition MediaTextureResource.h:98
TSharedPtr< IMediaTextureSample, ESPMode::ThreadSafe > TextureSample
Definition MediaTextureResource.h:123
uint8 NumMips
Definition MediaTextureResource.h:117
FRenderParams & operator=(FRenderParams &&)=default
FRenderParams(FRenderParams &&InOther)=default
FRenderParams(const FRenderParams &InOther)=default
FLinearColor ClearColor
Definition MediaTextureResource.h:101
FGuid CurrentGuid
Definition MediaTextureResource.h:104
FMediaTimeStamp Time
Definition MediaTextureResource.h:120
FGuid PreviousGuid
Definition MediaTextureResource.h:107
TWeakPtr< FMediaTextureSampleSource, ESPMode::ThreadSafe > SampleSource
Definition MediaTextureResource.h:113
FRenderParams & operator=(const FRenderParams &)=default
Definition MediaTextureResource.cpp:179
Definition RendererInterface.h:494
Definition IntPoint.h:25