UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FOpusAudioInfo Class Reference

#include <OpusAudioInfo.h>

+ Inheritance diagram for FOpusAudioInfo:

Classes

struct  FHeader
 

Public Member Functions

OPUSAUDIODECODER_API FOpusAudioInfo ()
 
virtual OPUSAUDIODECODER_API ~FOpusAudioInfo ()
 
bool ParseHeader (const uint8 *InSrcBufferData, uint32 InSrcBufferDataSize, FSoundQualityInfo *QualityInfo) override
 
int32 GetFrameSize () override
 
uint32 GetMaxFrameSizeSamples () const override
 
bool CreateDecoder () override
 
FDecodeResult Decode (const uint8 *CompressedData, const int32 CompressedDataSize, uint8 *OutPCMData, const int32 OutputPCMDataSize) override
 
void PrepareToLoop () override
 
void SeekToTime (const float SeekTime) override
 
void SeekToFrame (const uint32 SeekFrame) override
 
- Public Member Functions inherited from IStreamedCompressedInfo
ENGINE_API IStreamedCompressedInfo ()
 
virtual ENGINE_API ~IStreamedCompressedInfo ()
 
virtual ENGINE_API bool ReadCompressedInfo (const uint8 *InSrcBufferData, uint32 InSrcBufferDataSize, FSoundQualityInfo *QualityInfo) override
 
virtual ENGINE_API bool ReadCompressedData (uint8 *Destination, bool bLooping, uint32 BufferSize) override
 
virtual ENGINE_API void ExpandFile (uint8 *DstBuffer, struct FSoundQualityInfo *QualityInfo) override
 
virtual void EnableHalfRate (bool HalfRate) override
 
virtual uint32 GetSourceBufferSize () const override
 
virtual bool UsesVorbisChannelOrdering () const override
 
virtual int GetStreamBufferSize () const override
 
virtual bool SupportsStreaming () const override
 
virtual ENGINE_API bool StreamCompressedInfoInternal (const FSoundWaveProxyPtr &InWaveProxy, FSoundQualityInfo *QualityInfo) override
 
virtual ENGINE_API bool StreamCompressedData (uint8 *Destination, bool bLooping, uint32 BufferSize, int32 &OutNumBytesStreamed) override
 
virtual int32 GetCurrentChunkIndex () const override
 
virtual int32 GetCurrentChunkOffset () const override
 
virtual bool IsStreamedCompressedInfo () const override
 
int32 GetStreamSeekBlockIndex () const
 
int32 GetStreamSeekBlockOffset () const
 
- Public Member Functions inherited from ICompressedAudioInfo
ENGINE_API ICompressedAudioInfo ()
 
virtual ENGINE_API ~ICompressedAudioInfo ()
 
virtual bool ReleaseStreamChunk (bool bBlockUntilReleased)
 
ENGINE_API bool StreamCompressedInfo (USoundWave *Wave, struct FSoundQualityInfo *QualityInfo)
 
ENGINE_API bool StreamCompressedInfo (const FSoundWaveProxyPtr &Wave, struct FSoundQualityInfo *QualityInfo)
 
virtual ENGINE_API bool HasError () const
 
virtual const FSoundWaveProxyPtrGetStreamingSoundWave () const
 

Static Public Member Functions

static OPUSAUDIODECODER_API bool ParseHeader (FHeader &OutHeader, uint32 &OutNumRead, const uint8 *InSrcBufferData, uint32 InSrcBufferDataSize)
 

Protected Attributes

FOpusDecoderWrapperOpusDecoderWrapper
 
FHeader Header
 
int32 NumRemainingSamplesToSkip = 0
 
TArray< uint8PreviousDecodedUnusedSamples
 
- Protected Attributes inherited from IStreamedCompressedInfo
bool bIsStreaming
 
const uint8SrcBufferData
 
uint32 SrcBufferDataSize
 
uint32 SrcBufferOffset
 
uint32 AudioDataOffset
 
uint32 AudioDataChunkIndex
 
uint32 TrueSampleCount
 
uint32 CurrentSampleCount
 
uint8 NumChannels
 
uint32 MaxFrameSizeSamples
 
uint32 SampleStride
 
TArray< uint8LastDecodedPCM
 
uint32 LastPCMByteSize
 
uint32 LastPCMOffset
 
bool bStoringEndOfFile
 
int32 CurrentChunkIndex
 
uint32 SrcBufferPadding
 
FAudioChunkHandle CurCompressedChunkHandle
 
FAudioChunkHandle NextPlayingChunkHandle
 
TPimplPtr< FStreamedAudioChunkSeekTableCurrentChunkSeekTable
 
std::atomic< int32StreamSeekBlockIndex
 
int32 StreamSeekBlockOffset
 
uint32 StreamSeekToAudioFrames = INDEX_NONE
 
- Protected Attributes inherited from ICompressedAudioInfo
bool bHasError = false
 
bool bWantsFilteredLogging = false
 
FSoundWaveProxyPtr StreamingSoundWave
 

Additional Inherited Members

- Protected Member Functions inherited from IStreamedCompressedInfo
ENGINE_API uint32 Read (void *Outbuffer, uint32 DataSize)
 
int32 DecompressToPCMBuffer (uint16 FrameSize)
 
uint32 IncrementCurrentSampleCount (uint32 NewSamples)
 
uint32 WriteFromDecodedPCM (uint8 *Destination, uint32 BufferSize)
 
uint32 ZeroBuffer (uint8 *Destination, uint32 BufferSize)
 
ENGINE_API const uint8GetLoadedChunk (const FSoundWaveProxyPtr &InSoundWave, uint32 ChunkIndex, uint32 &OutChunkSize)
 
void RetainNextChunkInSequence (const FSoundWaveProxyPtr &InSoundWave, const uint32 InChunkIndex)
 
const FStreamedAudioChunkSeekTableGetCurrentSeekTable () const
 
FStreamedAudioChunkSeekTableGetCurrentSeekTable ()
 
- Protected Member Functions inherited from ICompressedAudioInfo
bool WantsFilteredLogging () const
 

Detailed Description

Helper class to parse opus data

Constructor & Destructor Documentation

◆ FOpusAudioInfo()

FOpusAudioInfo::FOpusAudioInfo ( )

◆ ~FOpusAudioInfo()

FOpusAudioInfo::~FOpusAudioInfo ( )
virtual

Member Function Documentation

◆ CreateDecoder()

bool FOpusAudioInfo::CreateDecoder ( )
overridevirtual

Create the compression format dependent decoder object.

Implements IStreamedCompressedInfo.

◆ Decode()

FDecodeResult FOpusAudioInfo::Decode ( const uint8 CompressedData,
const int32  CompressedDataSize,
uint8 OutPCMData,
const int32  OutputPCMDataSize 
)
overridevirtual

Decode the input compressed frame data into output PCMData buffer.

Implements IStreamedCompressedInfo.

◆ GetFrameSize()

int32 FOpusAudioInfo::GetFrameSize ( )
overridevirtual

Return the size of the current compression frame

Implements IStreamedCompressedInfo.

◆ GetMaxFrameSizeSamples()

uint32 FOpusAudioInfo::GetMaxFrameSizeSamples ( ) const
overridevirtual

The size of the decode PCM buffer size.

Implements IStreamedCompressedInfo.

◆ ParseHeader() [1/2]

bool FOpusAudioInfo::ParseHeader ( const uint8 InSrcBufferData,
uint32  InSrcBufferDataSize,
FSoundQualityInfo QualityInfo 
)
overridevirtual

Parse the header information from the input source buffer data. This is dependent on compression format.

Implements IStreamedCompressedInfo.

◆ ParseHeader() [2/2]

bool FOpusAudioInfo::ParseHeader ( FHeader OutHeader,
uint32 OutNumRead,
const uint8 InSrcBufferData,
uint32  InSrcBufferDataSize 
)
static

◆ PrepareToLoop()

void FOpusAudioInfo::PrepareToLoop ( )
overridevirtual

Optional method to allow decoder to prepare to loop.

Reimplemented from IStreamedCompressedInfo.

◆ SeekToFrame()

void FOpusAudioInfo::SeekToFrame ( const uint32  Frame)
overridevirtual

Seeks to specific frame in the audio (Some formats might not be seekable)

Reimplemented from IStreamedCompressedInfo.

◆ SeekToTime()

void FOpusAudioInfo::SeekToTime ( const float  SeekTime)
overridevirtual

Seeks to time (Some formats might not be seekable)

Reimplemented from IStreamedCompressedInfo.

Member Data Documentation

◆ Header

FHeader FOpusAudioInfo::Header
protected

The currently active header.

◆ NumRemainingSamplesToSkip

int32 FOpusAudioInfo::NumRemainingSamplesToSkip = 0
protected

The number of decoded samples that need to be skipped over.

◆ OpusDecoderWrapper

FOpusDecoderWrapper* FOpusAudioInfo::OpusDecoderWrapper
protected

Wrapper around Opus-specific decoding state and APIs

◆ PreviousDecodedUnusedSamples

TArray<uint8> FOpusAudioInfo::PreviousDecodedUnusedSamples
protected

Samples that are left over from the previous Decode() call that did not fit into the receive buffer.


The documentation for this class was generated from the following files: