2019-12-26 14:45:42 -05:00
|
|
|
// Copyright Epic Games, Inc. All Rights Reserved.
|
2019-01-24 20:58:09 -05:00
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include "CoreMinimal.h"
|
|
|
|
|
#include "DSP/Encoders/IAudioEncoder.h"
|
|
|
|
|
|
|
|
|
|
class FWavEncoder : public Audio::IAudioEncoder
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
FWavEncoder(const FSoundQualityInfo& InInfo, int32 AudioCallbackSize);
|
|
|
|
|
|
|
|
|
|
virtual int32 GetCompressedPacketSize() const override;
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
virtual int64 SamplesRequiredPerEncode() const override;
|
|
|
|
|
virtual bool StartFile(const FSoundQualityInfo& InQualityInfo, TArray<uint8>& OutFileStart) override;
|
|
|
|
|
virtual bool EncodeChunk(const TArray<float>& InAudio, TArray<uint8>& OutBytes) override;
|
|
|
|
|
virtual bool EndFile(TArray<uint8>& OutBytes) override;
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
int32 CallbackSize;
|
|
|
|
|
|
|
|
|
|
FWavEncoder();
|
|
|
|
|
|
|
|
|
|
};
|