Files
UnrealEngineUWP/Engine/Source/Runtime/AVEncoder/Public/AudioEncoder.h
Bryan sefcik b4a6e947d8 Ran IWYU on Public headers under Engine/Source/Runtime/...
Headers are updated to contain any missing #includes needed to compile and #includes are sorted.  Nothing is removed.

#ushell-cherrypick of 21065896 by bryan.sefcik
#preflight 62d4b1a5a6141b6adfb0c892
#jira

#ROBOMERGE-OWNER: Bryan.sefcik
#ROBOMERGE-AUTHOR: bryan.sefcik
#ROBOMERGE-SOURCE: CL 21150156 via CL 21151754 via CL 21154719
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v972-20964824)
#ROBOMERGE-CONFLICT from-shelf

[CL 21181076 by Bryan sefcik in ue5-main branch]
2022-07-20 11:31:36 -04:00

56 lines
1.2 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "Containers/Array.h"
#include "CoreMinimal.h"
#include "HAL/CriticalSection.h"
#include "HAL/Platform.h"
#include "MediaPacket.h"
#include "Misc/Timespan.h"
#include "SampleBuffer.h"
namespace AVEncoder
{
struct FAudioFrame
{
FTimespan Timestamp;
FTimespan Duration;
Audio::TSampleBuffer<float> Data;
};
class IAudioEncoderListener
{
public:
virtual void OnEncodedAudioFrame(const FMediaPacket& Packet) = 0;
};
class AVENCODER_API FAudioEncoder
{
public:
virtual ~FAudioEncoder() {}
virtual const TCHAR* GetName() const = 0;
virtual const TCHAR* GetType() const = 0;
virtual bool Initialize(const FAudioConfig& Config) = 0;
/**
* Shutdown MUST be called before destruction
*/
virtual void Shutdown() = 0;
virtual void Encode(const FAudioFrame& Frame) = 0;
virtual FAudioConfig GetConfig() const = 0;
virtual void RegisterListener(IAudioEncoderListener& Listener);
virtual void UnregisterListener(IAudioEncoderListener& Listener);
protected:
void OnEncodedAudioFrame(const FMediaPacket& Packet);
private:
FCriticalSection ListenersMutex;
TArray<IAudioEncoderListener*> Listeners;
};
}