![]() |
UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
|
#include <AudioDecompress.h>
Inheritance diagram for IStreamedCompressedInfo:Protected Member Functions | |
| 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 uint8 * | GetLoadedChunk (const FSoundWaveProxyPtr &InSoundWave, uint32 ChunkIndex, uint32 &OutChunkSize) |
| void | RetainNextChunkInSequence (const FSoundWaveProxyPtr &InSoundWave, const uint32 InChunkIndex) |
| const FStreamedAudioChunkSeekTable & | GetCurrentSeekTable () const |
| FStreamedAudioChunkSeekTable & | GetCurrentSeekTable () |
Protected Member Functions inherited from ICompressedAudioInfo | |
| bool | WantsFilteredLogging () const |
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)
| IStreamedCompressedInfo::IStreamedCompressedInfo | ( | ) |
|
virtualdefault |
Create the compression format dependent decoder object.
Implemented in FPcmAudioInfoHybrid, FBinkAudioInfo, FOpusAudioInfo, and FRadAudioInfo.
|
pure virtual |
Decode the input compressed frame data into output PCMData buffer.
Implemented in FPcmAudioInfoHybrid, FBinkAudioInfo, FOpusAudioInfo, and FRadAudioInfo.
Decompresses a frame of data to PCM buffer
| FrameSize | Size of the frame in bytes |
Sets decode to half-rate
| HalfRate | Whether Half rate is enabled |
Implements ICompressedAudioInfo.
|
overridevirtual |
Decompress an entire data file to a TArray
Implements ICompressedAudioInfo.
Gets the chunk index that was last read from (for Streaming Manager requests)
Reimplemented from ICompressedAudioInfo.
Gets the offset into the chunk that was last read to (for Streaming Manager priority)
Reimplemented from ICompressedAudioInfo.
|
protected |
|
protected |
Gets the current chunks seektable instance (or creates one)
Return the size of the current compression frame
Implemented in FPcmAudioInfoHybrid, FBinkAudioInfo, FOpusAudioInfo, and FRadAudioInfo.
|
protected |
Helper function for getting a chunk of compressed audio.
| InSoundWave | Pointer to the soundwave to get compressed audio from. | |
| ChunkIndex | the index of the chunk to get from InSoundWave. | |
| [out] | OutChunkSize | the size of the chunk. |
The size of the decode PCM buffer size.
Implemented in FPcmAudioInfoHybrid, FBinkAudioInfo, FOpusAudioInfo, and FRadAudioInfo.
Gets the size of the source buffer originally passed to the info class (bytes)
Implements ICompressedAudioInfo.
|
inlineoverridevirtual |
Gets the preferred size for a streaming buffer for this decompression scheme
Implements ICompressedAudioInfo.
|
inline |
|
inline |
Adds to the count of samples that have currently been decoded
| NewSamples | How many samples have been decoded |
Returns whether this instance can be cast to a IStreamedCompressedInfo. Surprisingly SupportsStreaming doesn't work for this.
Reimplemented from ICompressedAudioInfo.
|
pure virtual |
Parse the header information from the input source buffer data. This is dependent on compression format.
Implemented in FPcmAudioInfoHybrid, FBinkAudioInfo, FOpusAudioInfo, and FRadAudioInfo.
Optional method to allow decoder to prepare to loop.
Reimplemented in FPcmAudioInfoHybrid, FOpusAudioInfo, and FRadAudioInfo.
Reads from the internal source audio buffer stream of the given data size.
|
overridevirtual |
Decompresses data to raw PCM data.
| Destination | where to place the decompressed sound |
| bLooping | whether to loop the sound by seeking to the start, or pad the buffer with zeroes |
| BufferSize | number of bytes of PCM data to create |
Implements ICompressedAudioInfo.
|
overridevirtual |
Reads the header information of a compressed format
| InSrcBufferData | Source compressed data |
| InSrcBufferDataSize | Size of compressed data |
| QualityInfo | Quality Info (to be filled out). This can be null in the case of most implementations of FSoundBuffer::ReadCompressedInfo |
Implements ICompressedAudioInfo.
|
protected |
Seeks to specific frame in the audio (Some formats might not be seekable)
Implements ICompressedAudioInfo.
Reimplemented in FPcmAudioInfoHybrid, FOpusAudioInfo, FBinkAudioInfo, and FRadAudioInfo.
Seeks to time (Some formats might not be seekable)
Implements ICompressedAudioInfo.
Reimplemented in FPcmAudioInfoHybrid, FOpusAudioInfo, FBinkAudioInfo, and FRadAudioInfo.
|
overridevirtual |
Decompresses streamed data to raw PCM data.
| Destination | where to place the decompressed sound |
| bLooping | whether to loop the sound by seeking to the start, or pad the buffer with zeros |
| BufferSize | number of bytes of PCM data to create |
Reimplemented from ICompressedAudioInfo.
|
overridevirtual |
Internal override implemented by subclasses.
Implements ICompressedAudioInfo.
Whether this decompression class supports streaming decompression
Reimplemented from ICompressedAudioInfo.
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
Implements ICompressedAudioInfo.
|
protected |
Writes data from decoded PCM buffer, taking into account whether some PCM has been written before
| Destination | Where to place the decoded sound |
| BufferSize | Size of the destination buffer in bytes |
Zeroes the contents of a buffer
| Destination | Buffer to zero |
| BufferSize | Size of the destination buffer in bytes |
|
protected |
The chunk index where the actual audio data starts.
|
protected |
Where the actual audio data starts in the current streamed chunk. Accounts for header offset.
|
protected |
bool set before ParseHeader. Whether we are streaming a file or not.
|
protected |
If we're currently reading the final buffer.
|
protected |
Chunk Handle to ensure that this chunk of streamed audio is not deleted while we are using it.
|
protected |
The current chunk index in the streamed chunks.
|
protected |
If there's a chunked seek-table present, this contains the current chunks portion.
|
protected |
How many samples we've currently read in the source file.
The decoded PCM byte array from the last decoded frame.
|
protected |
The amount of PCM data in bytes was decoded last.
|
protected |
The current offset in the last decoded PCM buffer.
|
protected |
The maximum number of samples per decode frame.
|
protected |
Handle to the next chunk in sequence. Added once we're playing, to prevent it being dropped before it's played.
|
protected |
Number of channels (left/right) in the source file.
|
protected |
The number of bytes per interleaved sample (NumChannels * sizeof(int16)).
|
protected |
Ptr to the current streamed chunk.
|
protected |
Size of the current streamed chunk.
|
protected |
What byte we're currently reading in the streamed chunk.
|
protected |
Number of bytes of padding used, overridden in some implementations. Defaults to 0.
|
protected |
When a streaming seek request comes down, this is the block we are going to. INDEX_NONE means no seek pending. When using the legacy streaming system this is read on a thread other than the decompression thread to prime the correct chunk, so it needs an atomic. It's only ever set on one thread, and the read has no timing restrictions, so no lock is necessary. Also the legacy streamer isn't used anymore anyway.
This and StreamSeekBlockOffset are expected to be set by the codec's SeekToTime() function.
|
protected |
When a streaming seek request comes down, this is the offset in to the block we want to start decoding from.
|
protected |
If using the Chunked seek-tables, we request the seek in samples so we can resolve after the chunk table loads.
|
protected |
The total sample count of the source file.