D++ (DPP)
C++ Discord API Bot Library
dpp::audio_mixer Class Reference

A class for audio mixing operations using AVX instructions. More...

#include <isa_detection.h>

+ Collaboration diagram for dpp::audio_mixer:

Static Public Member Functions

static void collect_single_register (int32_t *data_in, int16_t *data_out, float current_gain, float increment)
 Collect a single register worth of data from data_in, apply gain and increment, and store the result in data_out. This version uses x64 instructions. More...
 
static void combine_samples (int32_t *up_sampled_vector, const int16_t *decoded_data)
 Combine a register worth of elements from decoded_data and store the result in up_sampled_vector. This version uses instructions. More...
 

Static Public Attributes

static constexpr int32_t byte_blocks_per_register { 2 }
 

Detailed Description

A class for audio mixing operations using AVX instructions.

Member Function Documentation

◆ collect_single_register()

static void dpp::audio_mixer::collect_single_register ( int32_t *  data_in,
int16_t *  data_out,
float  current_gain,
float  increment 
)
inlinestatic

Collect a single register worth of data from data_in, apply gain and increment, and store the result in data_out. This version uses x64 instructions.

Parameters
data_inPointer to the input array of int32_t values.
data_outPointer to the output array of int16_t values.
current_gainThe gain to be applied to the elements.
incrementThe increment value to be added to each element.

◆ combine_samples()

static void dpp::audio_mixer::combine_samples ( int32_t *  up_sampled_vector,
const int16_t *  decoded_data 
)
inlinestatic

Combine a register worth of elements from decoded_data and store the result in up_sampled_vector. This version uses instructions.

Parameters
up_sampled_vectorPointer to the array of int32_t values.
decoded_dataPointer to the array of int16_t values.

Member Data Documentation

◆ byte_blocks_per_register

constexpr int32_t dpp::audio_mixer::byte_blocks_per_register { 2 }
inlinestaticconstexpr
D++ Library version 10.0.35D++ Library version 10.0.34D++ Library version 10.0.33D++ Library version 10.0.32D++ Library version 10.0.31D++ Library version 10.0.30D++ Library version 10.0.29D++ Library version 10.0.28D++ Library version 10.0.27D++ Library version 10.0.26D++ Library version 10.0.25D++ Library version 10.0.24D++ Library version 10.0.23D++ Library version 10.0.22D++ Library version 10.0.21D++ Library version 10.0.20D++ Library version 10.0.19D++ Library version 10.0.18D++ Library version 10.0.17D++ Library version 10.0.16D++ Library version 10.0.15D++ Library version 10.0.14D++ Library version 10.0.13D++ Library version 10.0.12D++ Library version 10.0.11D++ Library version 10.0.10D++ Library version 10.0.9D++ Library version 10.0.8D++ Library version 10.0.7D++ Library version 10.0.6D++ Library version 10.0.5D++ Library version 10.0.4D++ Library version 10.0.3D++ Library version 10.0.2D++ Library version 10.0.1D++ Library version 10.0.0D++ Library version 9.0.19D++ Library version 9.0.18D++ Library version 9.0.17D++ Library version 9.0.16D++ Library version 9.0.15D++ Library version 9.0.14D++ Library version 9.0.13D++ Library version 9.0.12D++ Library version 9.0.11D++ Library version 9.0.10D++ Library version 9.0.9D++ Library version 9.0.8D++ Library version 9.0.7D++ Library version 9.0.6D++ Library version 9.0.5D++ Library version 9.0.4D++ Library version 9.0.3D++ Library version 9.0.2D++ Library version 9.0.1D++ Library version 9.0.0D++ Library version 1.0.2D++ Library version 1.0.1D++ Library version 1.0.0