UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
radaudio_encoder_internal.h
Go to the documentation of this file.
1// Copyright Epic Games Tools, LLC. All Rights Reserved.
2#ifndef INCLUDE_RADAUDIO_ENCODER_INTERNAL_H
3#define INCLUDE_RADAUDIO_ENCODER_INTERNAL_H
4
5#include "radaudio_common.h"
6
7typedef struct
8{
9 size_t bit_allocation[8];
10 U32 block_events [16];
12
13enum
14{
23
25};
26
27enum
28{
41
43};
44
46{
47 // base calculation for number of pulses to use
49
50 // short block total pulses are reduced compared to long blocks
52
53 // weight coefficient pulse counts by band
54 float band_exponent_base [2]; // weight by pow(band_exp_base, band_energy )
55 float band_count_exponent[2]; // weight by pow(num_coeff , band_ecount_exp)
56 float quality_weight_low [2]; // weight by lerp(band_index, quality_weight_low, 1.0)
57
58 // coefficients in a subband get a boost depending on how many coefficients greatly exceed the median
61
62 // miscellany
65
78
82
83typedef struct
84{
86
90 int samprate_mode; // ba2r_bitrate_code
91
92 int band_mantissa_exp_scale, band_mantissa_band_decay;
94
95 int sample_rate; // implied by bitrate_mode
97 S8 subband_bias [MAX_BANDS] ;
98 U8 subband_predicted_sum [MAX_BANDS] ;
99 S8 mantissa_param [2][MAX_BANDS][2];
100 U8 subband_sum_adjusted [2][MAX_BANDS] ;
101 int subband_bias_adjusted [2][MAX_BANDS] ;
102
105
108 radaudio_rate_info * info[2]; // indexed by short/long
109
111 U8 nz_correlated_huffman_selectors[NUM_NZ_SELECTOR][NUM_SELECTOR_MODES];
112
114
119 U64 profile_times[32];
120
121 U8 buffer[5000];
123
125 unsigned char header[64], int num_channels,
126 int sample_rate, int quality,
127 float pulse_quality_override, // 0..100, replaces normal pulse quality values
128 U32 flags);
129
130typedef struct
131{
132 const char *name;
133 double time;
135
137
139
140#endif//INCLUDE_RADAUDIO_ENCODER_INTERNAL_H
OodleLZ_Profile profile
Definition oodle2.h:279
RAD_S8 S8
Definition egttypes.h:476
RAD_U32 U32
Definition egttypes.h:501
RAD_U8 U8
Definition egttypes.h:481
S32 rrbool
Definition egttypes.h:536
RAD_U64 U64
Definition egttypes.h:511
#define RADDEFFUNC
Definition egttypes.h:66
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define MAX_BANDS
Definition radaudio_common.h:29
#define NUM_NZ_SELECTOR
Definition radaudio_common.h:60
#define NUM_SELECTOR_MODES
Definition radaudio_common.h:59
#define radaudio_encode_create_internal
Definition radaudio_encoder.h:49
#define RadAudioCompressGetProfileData
Definition radaudio_encoder.h:50
RADDEFFUNC void radaudio_hack_encoder(int *data, U8 *small, U8 *large)
@ E_subband_nopredict
Definition radaudio_encoder_internal.h:32
@ E_toomany_big_coefficients
Definition radaudio_encoder_internal.h:36
@ E_predict_band_stereo
Definition radaudio_encoder_internal.h:29
@ E_nzmode2
Definition radaudio_encoder_internal.h:39
@ E_many_big_coefficients
Definition radaudio_encoder_internal.h:35
@ E_stereo_as_mono
Definition radaudio_encoder_internal.h:31
@ E_nzmode1
Definition radaudio_encoder_internal.h:38
@ E_nzmode0
Definition radaudio_encoder_internal.h:37
@ E_subband_renormalize
Definition radaudio_encoder_internal.h:33
@ E_coefficients_renormalize
Definition radaudio_encoder_internal.h:34
@ E_predict_subband_stereo
Definition radaudio_encoder_internal.h:30
@ E_nzmode3
Definition radaudio_encoder_internal.h:40
@ E_count
Definition radaudio_encoder_internal.h:42
@ S_header
Definition radaudio_encoder_internal.h:15
@ S_band_mantissa
Definition radaudio_encoder_internal.h:17
@ S_padding
Definition radaudio_encoder_internal.h:22
@ S_count
Definition radaudio_encoder_internal.h:24
@ S_coeff_value_large
Definition radaudio_encoder_internal.h:21
@ S_band_exponent
Definition radaudio_encoder_internal.h:16
@ S_coeff_value
Definition radaudio_encoder_internal.h:20
@ S_coeff_location
Definition radaudio_encoder_internal.h:19
@ S_subband
Definition radaudio_encoder_internal.h:18
Definition radaudio_encoder_internal.h:46
int mid_side_offset
Definition radaudio_encoder_internal.h:75
float expectation_scale
Definition radaudio_encoder_internal.h:64
float quality_weight_low[2]
Definition radaudio_encoder_internal.h:56
int side_exp_threshold_all
Definition radaudio_encoder_internal.h:66
int side_exp_end_all
Definition radaudio_encoder_internal.h:70
int side_exp_threshold
Definition radaudio_encoder_internal.h:69
int side_exp_start2_all
Definition radaudio_encoder_internal.h:67
float short_overlap_scale2
Definition radaudio_encoder_internal.h:80
int mid_side_max_bad_bands
Definition radaudio_encoder_internal.h:77
float short_block_pulse_scale
Definition radaudio_encoder_internal.h:51
float expectation_base
Definition radaudio_encoder_internal.h:63
float small_boost_median_test[2]
Definition radaudio_encoder_internal.h:60
int side_exp_start2
Definition radaudio_encoder_internal.h:68
int side_exp_start
Definition radaudio_encoder_internal.h:72
float short_overlap_scale1
Definition radaudio_encoder_internal.h:79
float large_boost_median_test[2]
Definition radaudio_encoder_internal.h:59
int mid_side_tiny
Definition radaudio_encoder_internal.h:74
float band_count_exponent[2]
Definition radaudio_encoder_internal.h:55
float band_exponent_base[2]
Definition radaudio_encoder_internal.h:54
int side_exp_start_all
Definition radaudio_encoder_internal.h:71
float pulse_quality
Definition radaudio_encoder_internal.h:48
int mid_side_threshold
Definition radaudio_encoder_internal.h:76
int side_exp_end
Definition radaudio_encoder_internal.h:73
Definition radaudio_encoder_internal.h:8
Definition radaudio_common.h:105
Definition radaudio_common.h:73
Definition radaudio_encoder_internal.h:84
rrbool prev_block_short
Definition radaudio_encoder_internal.h:88
encode_stats stats
Definition radaudio_encoder_internal.h:118
rrbool current_block_short
Definition radaudio_encoder_internal.h:87
U32 lastblock_vbstream0_length
Definition radaudio_encoder_internal.h:116
int sample_rate
Definition radaudio_encoder_internal.h:95
int band_mantissa_band_decay
Definition radaudio_encoder_internal.h:92
U32 block_number
Definition radaudio_encoder_internal.h:103
int samprate_mode
Definition radaudio_encoder_internal.h:90
radaudio_cpu_features cpu
Definition radaudio_encoder_internal.h:107
U64 samples_fully_coded
Definition radaudio_encoder_internal.h:104
rrbool allow_mid_side
Definition radaudio_encoder_internal.h:93
U32 lastblock_block_bytes
Definition radaudio_encoder_internal.h:115
int num_channels
Definition radaudio_encoder_internal.h:85
radaudio_block_header_biases biases
Definition radaudio_encoder_internal.h:106
int quality_mode
Definition radaudio_encoder_internal.h:96
U32 lastblock_num_runlength_array
Definition radaudio_encoder_internal.h:117
coefficient_encode_heuristics heur
Definition radaudio_encoder_internal.h:113
rrbool next_block_short
Definition radaudio_encoder_internal.h:89
Definition radaudio_encoder.h:18
Definition radaudio_encoder_internal.h:131
double time
Definition radaudio_encoder_internal.h:133
const char * name
Definition radaudio_encoder_internal.h:132
Definition radaudio_common.h:126
Definition radaudio_common.h:154