Files
UnrealEngineUWP/Engine/Source/Runtime/SignalProcessing/Public/DSP/Encoders/OggVorbisEncoder.h
ryan durand 0f0464a30e Updating copyright for Engine Runtime.
#rnx
#rb none


#ROBOMERGE-OWNER: ryan.durand
#ROBOMERGE-AUTHOR: ryan.durand
#ROBOMERGE-SOURCE: CL 10869210 via CL 10869511 via CL 10869900
#ROBOMERGE-BOT: (v613-10869866)

[CL 10870549 by ryan durand in Main branch]
2019-12-26 14:45:42 -05:00

38 lines
1.1 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "DSP/Encoders/IAudioEncoder.h"
#if !PLATFORM_TVOS
struct FOggVorbisEncoderPrivateState;
class SIGNALPROCESSING_API FOggVorbisEncoder : public Audio::IAudioEncoder
{
public:
FOggVorbisEncoder(const FSoundQualityInfo& InInfo, int32 AverageBufferCallbackSize);
// From IAudioEncoder: returns 0, since Ogg Vorbis is not built for networked streaming.
virtual int32 GetCompressedPacketSize() const override;
protected:
// From IAudioEncoder:
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:
FOggVorbisEncoder();
int32 NumChannels;
// Private, uniquely owned state.
// This must be a raw pointer because it has a non-default destructor that isn't public.
FOggVorbisEncoderPrivateState* PrivateState;
};
#endif // !PLATFORM_TVOS