Files
UnrealEngine/Engine/Plugins/MetaHuman/MetaHumanLiveLink/Source/MetaHumanLocalLiveLinkSource/Public/MetaHumanAudioBaseLiveLinkSubject.h
Brandyn / Techy fcc1b09210 init
2026-04-04 15:40:51 -05:00

48 lines
1.3 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "MetaHumanMediaSamplerLiveLinkSubject.h"
#include "MetaHumanAudioBaseLiveLinkSubjectSettings.h"
namespace UE::MetaHuman::Pipeline
{
class FAudioSourceNode;
class FRealtimeSpeechToAnimNode;
}
class METAHUMANLOCALLIVELINKSOURCE_API FMetaHumanAudioBaseLiveLinkSubject : public FMetaHumanMediaSamplerLiveLinkSubject
{
public:
FMetaHumanAudioBaseLiveLinkSubject(ILiveLinkClient* InLiveLinkClient, const FGuid& InSourceGuid, const FName& InSubjectName, UMetaHumanAudioBaseLiveLinkSubjectSettings* InSettings);
void SetMood(const EAudioDrivenAnimationMood& InMood, float InMoodIntensity);
void SetLookahead(int32 InLookahead);
protected:
class FAudioSample
{
public:
int32 NumChannels = -1;
int32 SampleRate = -1;
int32 NumSamples = -1;
TArray<float> Data;
FQualifiedFrameTime Time;
ETimeSource TimeSource = ETimeSource::NotSet;
int32 NumDropped = 0;
};
void AddAudioSample(FAudioSample&& InAudioSample);
void SetError(const FString& InErrorMessage);
virtual void ExtractPipelineData(TSharedPtr<UE::MetaHuman::Pipeline::FPipelineData> InPipelineData) override;
private:
TSharedPtr<UE::MetaHuman::Pipeline::FAudioSourceNode> AudioSource;
TSharedPtr<UE::MetaHuman::Pipeline::FRealtimeSpeechToAnimNode> RealtimeAudioSolver;
};