UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
radaudio_decoder.c File Reference
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "radaudio_decoder.h"
#include "radaudio_decoder_sse2.h"
#include "radaudio_decoder_sse4.h"
#include "radaudio_decoder_avx2.h"
#include "radaudio_decoder_neon.h"
#include "radaudio_decoder_internal.h"
#include "radaudio_common.h"
#include "radaudio_mdct.h"
#include "rrCore.h"
#include "rrbits.h"
#include "radaudio_common.inl"

Classes

struct  RadAudioDecoder
 
struct  rada_bit_decoder
 
struct  huff3_decoder
 
struct  rada_internal_huff_state
 

Macros

#define RADAUDIO_AT_EOF   RADAUDIO_DECODER_AT_EOF
 
#define RADAUDIO_INCOMPLETE_DATA   RADAUDIO_DECODER_INCOMPLETE_DATA
 
#define RADAUDIO_INVALID_DATA   RADAUDIO_DECODER_INVALID_DATA
 
#define RADAUDIO_START_OF_STREAM   RADAUDIO_DECODER_START_OF_STREAM
 
#define RADAUDIO_INTERNAL_ERROR   RADAUDIO_DECODER_INTERNAL_ERROR
 
#define HUFFMAN_DECODE
 
#define PROF_BEGIN(var)
 
#define PROF_END(var)
 
#define PROF_total_count   1
 
#define RANDVAL(r, i)   (r)
 
#define NEWLZ_HUFF_CODELEN_LIMIT   11
 
#define NEWLZ_HUFF_DECODE_TABLE_MASK   2047u
 
#define HUFF32LENMASK   31
 
#define DECONE(strm)
 
#define DECTHREE()
 
#define N_DECS_PER_REFILL   2
 
#define TRIPLE_DECS_PER_REFILL   (3*N_DECS_PER_REFILL)
 
#define FAST_FLOAT_TO_INT
 
#define MAGIC(SHIFT)   (1.5f * (1 << (23-SHIFT)) + 0.5f/(1 << SHIFT))
 
#define ADDEND(SHIFT)   (((150-SHIFT) << 23) + (1 << 22))
 
#define FAST_SCALED_FLOAT_TO_INT(temp, x, s)   (temp.f = (x) + MAGIC(s), temp.i - ADDEND(s))
 
#define runlen_value_sentinel_size   2
 
#define runlen_read_sentinel_size   16
 
#define nonzero_coefficients_padding   32
 
#define coeff_pair_padding   16
 
#define runlen_pad   (runlen_value_sentinel_size + runlen_read_sentinel_size)
 
#define max_runlength_data   1025
 

Typedefs

typedef struct RadAudioDecoder radaudio_decoder_state
 

Functions

 RR_COMPILER_ASSERT (COMMON_INVALID_DATA==RADAUDIO_INVALID_DATA)
 
 RR_COMPILER_ASSERT (COMMON_INCOMPLETE_DATA==RADAUDIO_INCOMPLETE_DATA)
 
 RR_COMPILER_ASSERT (RADAUDIO_STREAM_HEADER_SIZE==sizeof(radaudio_stream_header))
 
size_t RadAudioDecoderMemoryRequired (U8 *raw_header, size_t raw_header_size)
 
RadAudioDecoderRadAudioDecoderOpen (U8 *raw_header, size_t raw_header_size, void *vmem, size_t memsize, size_t *header_read)
 
void RadAudioDecoderGetInfo (const RadAudioDecoder *hradaud, RadAudioInfo *out_info)
 
size_t RadAudioDecoderGetInfoHeader (U8 *raw_header, size_t raw_header_size, RadAudioInfo *out_info)
 
RADDEFFUNC void RadAudioDecoderDidSeek (RadAudioDecoder *radaudio_decomp)
 
int RadAudioDecoderGetChunkLength (RadAudioDecoder *radaudio_decomp, const U8 *data, size_t data_avail)
 
int RadAudioDecoderDecodeChunk (RadAudioDecoder *radaudio_decomp, const U8 *mem, size_t memavail, size_t *memconsumed, F32 *output_samples[2], size_t max_samples_per_channel)
 
int RadAudioDecoderGetProfileData (RadAudioDecoder *hradaud, radaudio_profile_value *profile, int num_profile)
 

Macro Definition Documentation

◆ ADDEND

#define ADDEND (   SHIFT)    (((150-SHIFT) << 23) + (1 << 22))

◆ coeff_pair_padding

#define coeff_pair_padding   16

◆ DECONE

#define DECONE (   strm)
Value:
cl = huff->decode[peek].length; \
sym = huff->decode[peek].symbol; \
bits##strm >>= cl & HUFF32LENMASK; bitc##strm -= cl; \
*decodeptr++ = (U8) sym
RAD_U8 U8
Definition egttypes.h:481
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define NEWLZ_HUFF_DECODE_TABLE_MASK
Definition radaudio_decoder.c:231
#define HUFF32LENMASK
Definition radaudio_decoder.c:240

◆ DECTHREE

#define DECTHREE ( )
Value:
DECONE(0); \
#define DECONE(strm)

◆ FAST_FLOAT_TO_INT

#define FAST_FLOAT_TO_INT

◆ FAST_SCALED_FLOAT_TO_INT

#define FAST_SCALED_FLOAT_TO_INT (   temp,
  x,
 
)    (temp.f = (x) + MAGIC(s), temp.i - ADDEND(s))

◆ HUFF32LENMASK

#define HUFF32LENMASK   31

◆ HUFFMAN_DECODE

#define HUFFMAN_DECODE

◆ MAGIC

#define MAGIC (   SHIFT)    (1.5f * (1 << (23-SHIFT)) + 0.5f/(1 << SHIFT))

◆ max_runlength_data

#define max_runlength_data   1025

◆ N_DECS_PER_REFILL

#define N_DECS_PER_REFILL   2

◆ NEWLZ_HUFF_CODELEN_LIMIT

#define NEWLZ_HUFF_CODELEN_LIMIT   11

◆ NEWLZ_HUFF_DECODE_TABLE_MASK

#define NEWLZ_HUFF_DECODE_TABLE_MASK   2047u

◆ nonzero_coefficients_padding

#define nonzero_coefficients_padding   32

◆ PROF_BEGIN

#define PROF_BEGIN (   var)

◆ PROF_END

#define PROF_END (   var)

◆ PROF_total_count

#define PROF_total_count   1

◆ RADAUDIO_AT_EOF

#define RADAUDIO_AT_EOF   RADAUDIO_DECODER_AT_EOF

◆ RADAUDIO_INCOMPLETE_DATA

#define RADAUDIO_INCOMPLETE_DATA   RADAUDIO_DECODER_INCOMPLETE_DATA

◆ RADAUDIO_INTERNAL_ERROR

#define RADAUDIO_INTERNAL_ERROR   RADAUDIO_DECODER_INTERNAL_ERROR

◆ RADAUDIO_INVALID_DATA

#define RADAUDIO_INVALID_DATA   RADAUDIO_DECODER_INVALID_DATA

◆ RADAUDIO_START_OF_STREAM

#define RADAUDIO_START_OF_STREAM   RADAUDIO_DECODER_START_OF_STREAM

◆ RANDVAL

#define RANDVAL (   r,
 
)    (r)

◆ runlen_pad

◆ runlen_read_sentinel_size

#define runlen_read_sentinel_size   16

◆ runlen_value_sentinel_size

#define runlen_value_sentinel_size   2

◆ TRIPLE_DECS_PER_REFILL

#define TRIPLE_DECS_PER_REFILL   (3*N_DECS_PER_REFILL)

Typedef Documentation

◆ radaudio_decoder_state

Function Documentation

◆ RadAudioDecoderDecodeChunk()

int RadAudioDecoderDecodeChunk ( RadAudioDecoder radaudio_decomp,
const U8 mem,
size_t  memavail,
size_t memconsumed,
F32 output_samples[2],
size_t  max_samples_per_channel 
)

◆ RadAudioDecoderDidSeek()

RADDEFFUNC void RadAudioDecoderDidSeek ( RadAudioDecoder radaudio_decomp)

◆ RadAudioDecoderGetChunkLength()

int RadAudioDecoderGetChunkLength ( RadAudioDecoder radaudio_decomp,
const U8 data,
size_t  data_avail 
)

◆ RadAudioDecoderGetInfo()

void RadAudioDecoderGetInfo ( const RadAudioDecoder hradaud,
RadAudioInfo out_info 
)

◆ RadAudioDecoderGetInfoHeader()

size_t RadAudioDecoderGetInfoHeader ( U8 raw_header,
size_t  raw_header_size,
RadAudioInfo out_info 
)

◆ RadAudioDecoderGetProfileData()

int RadAudioDecoderGetProfileData ( RadAudioDecoder hradaud,
radaudio_profile_value profile,
int  num_profile 
)

◆ RadAudioDecoderMemoryRequired()

size_t RadAudioDecoderMemoryRequired ( U8 raw_header,
size_t  raw_header_size 
)

◆ RadAudioDecoderOpen()

RadAudioDecoder * RadAudioDecoderOpen ( U8 raw_header,
size_t  raw_header_size,
void vmem,
size_t  memsize,
size_t header_read 
)

◆ RR_COMPILER_ASSERT() [1/3]

◆ RR_COMPILER_ASSERT() [2/3]

RR_COMPILER_ASSERT ( COMMON_INVALID_DATA  = =RADAUDIO_INVALID_DATA)

◆ RR_COMPILER_ASSERT() [3/3]