// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreTypes.h" #include "IElectraDecoderResourceDelegate.h" #include "MediaRendererBase.h" #include "ParameterDictionary.h" #include "MediaVideoDecoderOutput.h" class IElectraPlayerAdapterDelegate; class IElectraDecoderVideoOutput; namespace Electra { class IVideoDecoderResourceDelegate; } class FElectraPlayerDecoderResourceManager { public: ELECTRAPLAYERRUNTIME_API static TSharedPtr GetDelegate(); ELECTRAPLAYERRUNTIME_API static TSharedPtr CreatePlatformVideoDecoderResourceDelegate(TSharedPtr InElectraPlayerAdapterDelegate); ELECTRAPLAYERRUNTIME_API static bool SetupRenderBufferFromDecoderOutput(FString& OutErrorMessage, Electra::IMediaRenderer::IBuffer* InOutBufferToSetup, TSharedPtr InOutBufferPropertes, TSharedPtr InDecoderOutput, IElectraDecoderResourceDelegateBase::IDecoderPlatformResource* InPlatformSpecificResource); class FVideo { public: ELECTRAPLAYERRUNTIME_API static FVideoDecoderOutput* Create(); }; };