UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
radaudio_encoder.c File Reference
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include "radaudio_encoder.h"
#include "radaudio_encoder_internal.h"
#include "radaudio_encoder_sse.h"
#include "radaudio_encoder_neon.h"
#include "radaudio_common.h"
#include "radaudio_mdct.h"
#include "rrCore.h"
#include "radaudio_common.inl"

Classes

struct  radaudio_bit_encoder
 
struct  huff3_encoder
 

Macros

#define ENCODER_VERSION   0x00000000
 
#define HUFFMAN_ENCODE
 
#define PROF_BEGIN(var)
 
#define PROF_END(var)
 
#define TRANSIENT_THRESHOLD   180
 
#define RADA_LERP(t, a, b)   ((a)+(t)*((b)-(a)))
 
#define TA_MAX(a, b)   ((a) > (b) ? (a) : (b))
 
#define MANTISSA_SCALE   1.00f
 
#define SUBBAND_PULSES_SCALE   1.0
 

Functions

 RR_COMPILER_ASSERT (sizeof(radaudio_encoder_state)<=sizeof(radaudio_encoder))
 
 RR_COMPILER_ASSERT (sizeof(radaudio_stream_header)<=RADAUDIO_STREAM_HEADER_MAX)
 
 RR_COMPILER_ASSERT (MAX_COEFF_PER_SUBBAND==32)
 
RADDEFFUNC int radaudio_determine_preferred_next_block_length (radaudio_encoder *rae, radaudio_blocktype firsttype, F32 *input, size_t input_len, size_t offset)
 
RADDEFFUNC radaudio_blocktype radaudio_determine_preferred_first_block_length (radaudio_encoder *rae, F32 *input, size_t input_len)
 
RADDEFFUNC int radaudio_encode_block (radaudio_encoder *rae, float *input, size_t input_len, size_t *poffset, U8 *encode_buffer, size_t encode_buffer_size)
 
int radaudio_encode_block_ext (radaudio_encoder *rae, F32 *input, size_t input_len, size_t *poffset, U8 *encode_buffer, size_t encode_buffer_max, radaudio_encode_info *info)
 
int transient_analysis (float *input, int N, int stride, float transient_threshold)
 
size_t radaudio_encode_create_internal (radaudio_encoder *rae, U8 header[RADAUDIO_STREAM_HEADER_MAX], int num_channels, int sample_rate, int qmode, float quality_pulse, U32 flags)
 
size_t radaudio_encode_create (radaudio_encoder *es, U8 header[RADAUDIO_STREAM_HEADER_MAX], int num_channels, int sample_rate, int quality, U32 flags)
 
int RadAudioCompressGetProfileData (radaudio_encoder *hradaud, radaudio_eprofile_value *profile, int num_profile)
 

Macro Definition Documentation

◆ ENCODER_VERSION

#define ENCODER_VERSION   0x00000000

◆ HUFFMAN_ENCODE

#define HUFFMAN_ENCODE

◆ MANTISSA_SCALE

#define MANTISSA_SCALE   1.00f

◆ PROF_BEGIN

#define PROF_BEGIN (   var)

◆ PROF_END

#define PROF_END (   var)

◆ RADA_LERP

#define RADA_LERP (   t,
  a,
 
)    ((a)+(t)*((b)-(a)))

◆ SUBBAND_PULSES_SCALE

#define SUBBAND_PULSES_SCALE   1.0

◆ TA_MAX

#define TA_MAX (   a,
 
)    ((a) > (b) ? (a) : (b))

◆ TRANSIENT_THRESHOLD

#define TRANSIENT_THRESHOLD   180

Function Documentation

◆ radaudio_determine_preferred_first_block_length()

RADDEFFUNC radaudio_blocktype radaudio_determine_preferred_first_block_length ( radaudio_encoder rae,
F32 input,
size_t  input_len 
)

◆ radaudio_determine_preferred_next_block_length()

RADDEFFUNC int radaudio_determine_preferred_next_block_length ( radaudio_encoder rae,
radaudio_blocktype  firsttype,
F32 input,
size_t  input_len,
size_t  offset 
)

◆ radaudio_encode_block()

RADDEFFUNC int radaudio_encode_block ( radaudio_encoder rae,
float input,
size_t  input_len,
size_t poffset,
U8 encode_buffer,
size_t  encode_buffer_size 
)

◆ radaudio_encode_block_ext()

int radaudio_encode_block_ext ( radaudio_encoder rae,
F32 input,
size_t  input_len,
size_t poffset,
U8 encode_buffer,
size_t  encode_buffer_max,
radaudio_encode_info info 
)

◆ radaudio_encode_create()

size_t radaudio_encode_create ( radaudio_encoder es,
U8  header[RADAUDIO_STREAM_HEADER_MAX],
int  num_channels,
int  sample_rate,
int  quality,
U32  flags 
)

◆ radaudio_encode_create_internal()

size_t radaudio_encode_create_internal ( radaudio_encoder rae,
U8  header[RADAUDIO_STREAM_HEADER_MAX],
int  num_channels,
int  sample_rate,
int  qmode,
float  quality_pulse,
U32  flags 
)

◆ RadAudioCompressGetProfileData()

int RadAudioCompressGetProfileData ( radaudio_encoder hradaud,
radaudio_eprofile_value profile,
int  num_profile 
)

◆ RR_COMPILER_ASSERT() [1/3]

RR_COMPILER_ASSERT ( MAX_COEFF_PER_SUBBAND  = =32)

◆ RR_COMPILER_ASSERT() [2/3]

◆ RR_COMPILER_ASSERT() [3/3]

RR_COMPILER_ASSERT ( sizeof(radaudio_stream_header)<=  RADAUDIO_STREAM_HEADER_MAX)

◆ transient_analysis()

int transient_analysis ( float input,
int  N,
int  stride,
float  transient_threshold 
)