Navigation
API > API/Runtime > API/Runtime/Engine
Inheritance Hierarchy
- ICompressedAudioInfo
- IStreamedCompressedInfo
- FBinkAudioInfo
- FOpusAudioInfo
References
| Module | Engine |
| Header | /Engine/Source/Runtime/Engine/Public/AudioDecompress.h |
| Include | #include "AudioDecompress.h" |
Syntax
class IStreamedCompressedInfo : public ICompressedAudioInfo
Remarks
Default implementation of a streamed compressed audio format. Can be subclassed to support streaming of a specific asset format. Handles all the platform independent aspects of file format streaming for you (dealing with UE streamed assets)
Variables
| Type | Name | Description | |
|---|---|---|---|
| uint32 | AudioDataChunkIndex | The chunk index where the actual audio data starts. | |
| uint32 | AudioDataOffset | Where the actual audio data starts in the current streamed chunk. Accounts for header offset. | |
| bool | bIsStreaming | Bool set before ParseHeader. Whether we are streaming a file or not. | |
| bool | bPrintChunkFailMessage | Whether or not to print the chunk fail message. | |
| bool | bStoringEndOfFile | If we're currently reading the final buffer. | |
| FAudioChunkHandle | CurCompressedChunkHandle | Chunk Handle to ensure that this chunk of streamed audio is not deleted while we are using it. | |
| int32 | CurrentChunkIndex | The current chunk index in the streamed chunks. | |
| TPimplPtr< FStreamedAudioChunkSeekTable > | CurrentChunkSeekTable | If there's a chunked seek-table present, this contains the current chunks portion. | |
| uint32 | CurrentSampleCount | How many samples we've currently read in the source file. | |
| TArray< uint8 > | LastDecodedPCM | The decoded PCM byte array from the last decoded frame. | |
| uint32 | LastPCMByteSize | The amount of PCM data in bytes was decoded last. | |
| uint32 | LastPCMOffset | The current offset in the last decoded PCM buffer. | |
| uint32 | MaxFrameSizeSamples | The maximum number of samples per decode frame. | |
| uint8 | NumChannels | Number of channels (left/right) in the source file. | |
| uint32 | SampleStride | The number of bytes per interleaved sample (NumChannels * sizeof(int16)). | |
| const uint8 * | SrcBufferData | Ptr to the current streamed chunk. | |
| uint32 | SrcBufferDataSize | Size of the current streamed chunk. | |
| uint32 | SrcBufferOffset | What byte we're currently reading in the streamed chunk. | |
| uint32 | SrcBufferPadding | Number of bytes of padding used, overridden in some implementations. Defaults to 0. | |
| std::atomic< int32 > | StreamSeekBlockIndex | When a streaming seek request comes down, this is the block we are going to. | |
| int32 | StreamSeekBlockOffset | When a streaming seek request comes down, this is the offset in to the block we want to start decoding from. | |
| uint32 | StreamSeekToAudioFrames | If using the Chunked seek-tables, we request the seek in samples so we can resolve after the chunk table loads. | |
| uint32 | TrueSampleCount | The total sample count of the source file. |
Constructors
| Type | Name | Description | |
|---|---|---|---|
Destructors
| Type | Name | Description | |
|---|---|---|---|
Functions
| Type | Name | Description | |
|---|---|---|---|
| bool | Create the compression format dependent decoder object. | ||
| FDecodeResult | Decode
(
const uint8* CompressedData, |
Decode the input compressed frame data into output PCMData buffer. | |
| int32 | DecompressToPCMBuffer
(
uint16 FrameSize |
Decompresses a frame of data to PCM buffer | |
| const FStreamedAudioChunkSeekTable & | Gets the current chunks seektable instance (or creates one) | ||
| FStreamedAudioChunkSeekTable & | Gets the current chunks seektable instance (or creates one) | ||
| int32 | GetFrameSize () |
Return the size of the current compression frame | |
| const uint8 * | GetLoadedChunk
(
const FSoundWaveProxyPtr& InSoundWave, |
Helper function for getting a chunk of compressed audio. | |
| uint32 | The size of the decode PCM buffer size. | ||
| int32 | |||
| int32 | |||
| uint32 | IncrementCurrentSampleCount
(
uint32 NewSamples |
Adds to the count of samples that have currently been decoded | |
| bool | ParseHeader
(
const uint8* InSrcBufferData, |
Parse the header information from the input source buffer data. | |
| void | Optional method to allow decoder to prepare to loop. | ||
| uint32 | Read
(
void* Outbuffer, |
Reads from the internal source audio buffer stream of the given data size. | |
| uint32 | WriteFromDecodedPCM
(
uint8* Destination, |
Writes data from decoded PCM buffer, taking into account whether some PCM has been written before | |
| uint32 | ZeroBuffer
(
uint8* Destination, |
Zeroes the contents of a buffer |
Overridden from ICompressedAudioInfo
| Type | Name | Description | |
|---|---|---|---|
| void | EnableHalfRate
(
bool HalfRate |
Sets decode to half-rate | |
| void | ExpandFile
(
uint8* DstBuffer, |
Decompress an entire data file to a TArray | |
| int32 | Gets the chunk index that was last read from (for Streaming Manager requests) | ||
| int32 | Gets the offset into the chunk that was last read to (for Streaming Manager priority) | ||
| uint32 | Gets the size of the source buffer originally passed to the info class (bytes) | ||
| int | Gets the preferred size for a streaming buffer for this decompression scheme | ||
| bool | Returns whether this instance can be cast to a IStreamedCompressedInfo. | ||
| bool | ReadCompressedData
(
uint8* Destination, |
Decompresses data to raw PCM data. | |
| bool | ReadCompressedInfo
(
const uint8* InSrcBufferData, |
Reads the header information of a compressed format | |
| void | SeekToTime
(
const float SeekTime |
Seeks to time (Some formats might not be seekable) | |
| bool | StreamCompressedData
(
uint8* Destination, |
Decompresses streamed data to raw PCM data. | |
| bool | StreamCompressedInfoInternal
(
const FSoundWaveProxyPtr& InWaveProxy, |
Internal override implemented by subclasses. | |
| bool | Following functions are optional if streaming is supported //. | ||
| bool | Whether the decompressed audio will be arranged using Vorbis' channel ordering See http://www.xiph.org/vorbis/doc/Vorbis_I_spec.html#x1-800004.3.9 for details |