UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
OpusAudioInfo.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3/*=============================================================================
4 OpusAudioInfo.h: Unreal audio opus decompression interface object.
5=============================================================================*/
6
7#pragma once
8
9#include "CoreMinimal.h"
10#include "AudioDecompress.h"
11
14
19{
20public:
23 //~ Begin IStreamedCompressedInfo Interface
25 int32 GetFrameSize() override;
26 uint32 GetMaxFrameSizeSamples() const override;
27 bool CreateDecoder() override;
28 FDecodeResult Decode(const uint8* CompressedData, const int32 CompressedDataSize, uint8* OutPCMData, const int32 OutputPCMDataSize) override;
29 void PrepareToLoop() override;
30 void SeekToTime(const float SeekTime) override;
31 void SeekToFrame(const uint32 SeekFrame) override;
32 //~ End IStreamedCompressedInfo Interface
33 struct FHeader
34 {
35 char Identifier[8];
45
59
60 static inline const char OPUS_ID[8] {'U','E','O','P','U','S','\0','\0'};
61 static constexpr int32 HeaderSize()
62 {
63 return
64 sizeof(char)*8 // Identifier
65 + sizeof(uint8) // Version
66 + sizeof(uint8) // NumChannels
67 + sizeof(uint32) // SampleRate
68 + sizeof(uint32) // EncodedSampleRate
69 + sizeof(uint64) // ActiveSampleCount
70 + sizeof(uint32) // NumEncodedFrames
71 + sizeof(int32) // NumPreSkipSamples
72 + sizeof(int32) // NumSilentSamplesAtBeginning
73 + sizeof(int32); // NumSilentSamplesAtEnd
74 }
75 };
77protected:
80
83
86
89};
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition OpusAudioInfo.h:19
void SeekToFrame(const uint32 SeekFrame) override
Definition OpusAudioInfo.cpp:357
void PrepareToLoop() override
Definition OpusAudioInfo.cpp:332
OPUSAUDIODECODER_API FOpusAudioInfo()
Definition OpusAudioInfo.cpp:84
int32 NumRemainingSamplesToSkip
Definition OpusAudioInfo.h:85
FHeader Header
Definition OpusAudioInfo.h:82
int32 GetFrameSize() override
Definition OpusAudioInfo.cpp:179
FOpusDecoderWrapper * OpusDecoderWrapper
Definition OpusAudioInfo.h:79
void SeekToTime(const float SeekTime) override
Definition OpusAudioInfo.cpp:339
FDecodeResult Decode(const uint8 *CompressedData, const int32 CompressedDataSize, uint8 *OutPCMData, const int32 OutputPCMDataSize) override
Definition OpusAudioInfo.cpp:196
bool ParseHeader(const uint8 *InSrcBufferData, uint32 InSrcBufferDataSize, FSoundQualityInfo *QualityInfo) override
Definition OpusAudioInfo.cpp:132
bool CreateDecoder() override
Definition OpusAudioInfo.cpp:163
TArray< uint8 > PreviousDecodedUnusedSamples
Definition OpusAudioInfo.h:88
virtual OPUSAUDIODECODER_API ~FOpusAudioInfo()
Definition OpusAudioInfo.cpp:89
uint32 GetMaxFrameSizeSamples() const override
Definition OpusAudioInfo.cpp:188
Definition AudioDecompress.h:211
Definition Array.h:670
Definition AudioDecompress.h:190
static UE_FORCEINLINE_HINT void * Memzero(void *Dest, SIZE_T Count)
Definition UnrealMemory.h:131
Definition OpusAudioInfo.h:34
uint8 Version
Definition OpusAudioInfo.h:36
int32 NumSilentSamplesAtEnd
Definition OpusAudioInfo.h:44
uint32 NumEncodedFrames
Definition OpusAudioInfo.h:41
uint32 EncodedSampleRate
Definition OpusAudioInfo.h:39
int32 NumSilentSamplesAtBeginning
Definition OpusAudioInfo.h:43
void Reset()
Definition OpusAudioInfo.h:46
uint8 NumChannels
Definition OpusAudioInfo.h:37
uint32 SampleRate
Definition OpusAudioInfo.h:38
char Identifier[8]
Definition OpusAudioInfo.h:35
uint64 ActiveSampleCount
Definition OpusAudioInfo.h:40
static const char OPUS_ID[8]
Definition OpusAudioInfo.h:60
static constexpr int32 HeaderSize()
Definition OpusAudioInfo.h:61
int32 NumPreSkipSamples
Definition OpusAudioInfo.h:42
Definition OpusAudioInfo.cpp:43