Files
UnrealEngine/Engine/Plugins/Media/ElectraPlayer/Source/ElectraPlayerRuntime/Public/IElectraPlayerDecoderResourceManager.h
2025-05-18 13:04:45 +08:00

31 lines
1.2 KiB
C++

// 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<IElectraDecoderResourceDelegate, ESPMode::ThreadSafe> GetDelegate();
ELECTRAPLAYERRUNTIME_API static TSharedPtr<Electra::IVideoDecoderResourceDelegate, ESPMode::ThreadSafe> CreatePlatformVideoDecoderResourceDelegate(TSharedPtr<IElectraPlayerAdapterDelegate, ESPMode::ThreadSafe> InElectraPlayerAdapterDelegate);
ELECTRAPLAYERRUNTIME_API static bool SetupRenderBufferFromDecoderOutput(FString& OutErrorMessage, Electra::IMediaRenderer::IBuffer* InOutBufferToSetup, TSharedPtr<Electra::FParamDict, ESPMode::ThreadSafe> InOutBufferPropertes, TSharedPtr<IElectraDecoderVideoOutput, ESPMode::ThreadSafe> InDecoderOutput, IElectraDecoderResourceDelegateBase::IDecoderPlatformResource* InPlatformSpecificResource);
class FVideo
{
public:
ELECTRAPLAYERRUNTIME_API static FVideoDecoderOutput* Create();
};
};