Sound related functions implemented as SIMD using SSE. More...

#include <sound_sse.h>

Static Public Member Functions

static void * aligned_alloc (int size)
 Allocates memory that is 16-byte memory aligned.
 
static void aligned_free (void *ptr)
 Free memory allocated with aligned_alloc.
 
static void copy_float (float *input, int size, float *output)
 Copy floats from one buffer to another.
 
static void mix_many_to_one (float **input, float *volume, int channels, int size, float *output)
 Mixes many float channels into one float channel with individual volumes for each channel.
 
static void mix_one_to_many (float *input, int size, float **output, float *volume, int channels)
 Mixes one float channel into many float channels with individual volumes for each channel.
 
static void mix_one_to_one (float *input, int size, float *output, float volume)
 Mixes one float channel with specified volume into another float channel.
 
static void multiply_float (float *channel, int size, float volume)
 Multiplies floats with a float.
 
static void pack_16bit_stereo (float *input[2], int size, short *output)
 Packs two float channels into a single 16 bit samples stream.
 
static void pack_float_stereo (float *input[2], int size, float *output)
 Packs two float channels into a single float samples stream.
 
static void set_float (float *channel, int size, float value)
 Sets floats to a specific value.
 
static void unpack_16bit_mono (short *input, int size, float *output)
 Unpacks 16 bit mono samples into a single float channel.
 
static void unpack_16bit_stereo (short *input, int size, float *output[2])
 Unpacks 16 bit stereo samples into separate float channels.
 
static void unpack_8bit_mono (unsigned char *input, int size, float *output)
 Unpacks 8 bit mono samples into a single float channel.
 
static void unpack_8bit_stereo (unsigned char *input, int size, float *output[2])
 Unpacks 8 bit stereo samples into separate float channels.
 
static void unpack_float_mono (float *input, int size, float *output)
 Unpacks float mono samples into a single float channel.
 
static void unpack_float_stereo (float *input, int size, float *output[2])
 Unpacks float stereo samples into separate float channels.
 

Detailed Description

Sound related functions implemented as SIMD using SSE.

Member Function Documentation

◆ aligned_alloc()

static void * clan::SoundSSE::aligned_alloc ( int size)
static

Allocates memory that is 16-byte memory aligned.

◆ aligned_free()

static void clan::SoundSSE::aligned_free ( void * ptr)
static

Free memory allocated with aligned_alloc.

◆ copy_float()

static void clan::SoundSSE::copy_float ( float * input,
int size,
float * output )
static

Copy floats from one buffer to another.

◆ mix_many_to_one()

static void clan::SoundSSE::mix_many_to_one ( float ** input,
float * volume,
int channels,
int size,
float * output )
static

Mixes many float channels into one float channel with individual volumes for each channel.

◆ mix_one_to_many()

static void clan::SoundSSE::mix_one_to_many ( float * input,
int size,
float ** output,
float * volume,
int channels )
static

Mixes one float channel into many float channels with individual volumes for each channel.

◆ mix_one_to_one()

static void clan::SoundSSE::mix_one_to_one ( float * input,
int size,
float * output,
float volume )
static

Mixes one float channel with specified volume into another float channel.

◆ multiply_float()

static void clan::SoundSSE::multiply_float ( float * channel,
int size,
float volume )
static

Multiplies floats with a float.

◆ pack_16bit_stereo()

static void clan::SoundSSE::pack_16bit_stereo ( float * input[2],
int size,
short * output )
static

Packs two float channels into a single 16 bit samples stream.

◆ pack_float_stereo()

static void clan::SoundSSE::pack_float_stereo ( float * input[2],
int size,
float * output )
static

Packs two float channels into a single float samples stream.

◆ set_float()

static void clan::SoundSSE::set_float ( float * channel,
int size,
float value )
static

Sets floats to a specific value.

◆ unpack_16bit_mono()

static void clan::SoundSSE::unpack_16bit_mono ( short * input,
int size,
float * output )
static

Unpacks 16 bit mono samples into a single float channel.

◆ unpack_16bit_stereo()

static void clan::SoundSSE::unpack_16bit_stereo ( short * input,
int size,
float * output[2] )
static

Unpacks 16 bit stereo samples into separate float channels.

◆ unpack_8bit_mono()

static void clan::SoundSSE::unpack_8bit_mono ( unsigned char * input,
int size,
float * output )
static

Unpacks 8 bit mono samples into a single float channel.

◆ unpack_8bit_stereo()

static void clan::SoundSSE::unpack_8bit_stereo ( unsigned char * input,
int size,
float * output[2] )
static

Unpacks 8 bit stereo samples into separate float channels.

◆ unpack_float_mono()

static void clan::SoundSSE::unpack_float_mono ( float * input,
int size,
float * output )
static

Unpacks float mono samples into a single float channel.

◆ unpack_float_stereo()

static void clan::SoundSSE::unpack_float_stereo ( float * input,
int size,
float * output[2] )
static

Unpacks float stereo samples into separate float channels.


The documentation for this class was generated from the following file: