foobar2000 SDK  2015-01-14
Namespaces | Functions
audio_math.cpp File Reference

Go to the source code of this file.

Namespaces

 audio_math
 

Functions

void SHARED_EXPORT audio_math::add_offset (audio_sample *p_buffer, audio_sample p_delta, t_size p_count)
 
audio_sample SHARED_EXPORT audio_math::calculate_peak (const audio_sample *p_source, t_size p_count)
 
void SHARED_EXPORT audio_math::convert_from_int16 (const t_int16 *p_source, t_size p_count, audio_sample *p_output, audio_sample p_scale)
 
void SHARED_EXPORT audio_math::convert_from_int32 (const t_int32 *p_source, t_size p_count, audio_sample *p_output, audio_sample p_scale)
 
void SHARED_EXPORT audio_math::convert_to_int16 (const audio_sample *p_source, t_size p_count, t_int16 *p_output, audio_sample p_scale)
 
audio_sample SHARED_EXPORT audio_math::convert_to_int16_calculate_peak (const audio_sample *p_source, t_size p_count, t_int16 *p_output, audio_sample p_scale)
 
void SHARED_EXPORT audio_math::convert_to_int32 (const audio_sample *p_source, t_size p_count, t_int32 *p_output, audio_sample p_scale)
 
audio_sample SHARED_EXPORT audio_math::convert_to_int32_calculate_peak (const audio_sample *p_source, t_size p_count, t_int32 *p_output, audio_sample p_scale)
 
void audio_math::kill_denormal (audio_sample *p_buffer, t_size p_count)
 
static audio_sample noopt_calculate_peak (const audio_sample *p_src, t_size p_num)
 
static void noopt_convert_from_int16 (const t_int16 *p_source, t_size p_count, audio_sample *p_output, float p_scale)
 
static void noopt_convert_from_int32 (const t_int32 *p_source, t_size p_count, audio_sample *p_output, float p_scale)
 
static void noopt_convert_to_16bit (const audio_sample *p_source, t_size p_count, t_int16 *p_output, float p_scale)
 
static void noopt_convert_to_32bit (const audio_sample *p_source, t_size p_count, t_int32 *p_output, float p_scale)
 
static void noopt_scale (const audio_sample *p_source, t_size p_count, audio_sample *p_output, audio_sample p_scale)
 
void SHARED_EXPORT audio_math::scale (const audio_sample *p_source, t_size p_count, audio_sample *p_output, audio_sample p_scale)
 

Function Documentation

static audio_sample noopt_calculate_peak ( const audio_sample p_src,
t_size  p_num 
)
static

Definition at line 5 of file audio_math.cpp.

6 {
7  audio_sample peak = 0;
8  t_size num = p_num;
9  for(;num;num--)
10  {
11  audio_sample temp = (audio_sample)fabs(*(p_src++));
12  if (temp>peak) peak = temp;
13  }
14  return peak;
15 }
size_t t_size
Definition: int_types.h:48
float audio_sample
Definition: audio_sample.h:6
static void noopt_convert_from_int16 ( const t_int16 p_source,
t_size  p_count,
audio_sample p_output,
float  p_scale 
)
inlinestatic

Definition at line 38 of file audio_math.cpp.

39 {
40  t_size num = p_count;
41  for(;num;num--)
42  *(p_output++) = (audio_sample)*(p_source++) * p_scale;
43 }
size_t t_size
Definition: int_types.h:48
float audio_sample
Definition: audio_sample.h:6
static void noopt_convert_from_int32 ( const t_int32 p_source,
t_size  p_count,
audio_sample p_output,
float  p_scale 
)
inlinestatic

Definition at line 47 of file audio_math.cpp.

48 {
49  t_size num = p_count;
50  for(;num;num--)
51  *(p_output++) = (audio_sample)*(p_source++) * p_scale;
52 }
size_t t_size
Definition: int_types.h:48
float audio_sample
Definition: audio_sample.h:6
static void noopt_convert_to_16bit ( const audio_sample p_source,
t_size  p_count,
t_int16 p_output,
float  p_scale 
)
inlinestatic

Definition at line 32 of file audio_math.cpp.

32  {
33  for(t_size n=0;n<p_count;n++) {
34  *(p_output++) = (t_int16) pfc::clip_t(audio_math::rint32(*(p_source++)*p_scale),-0x8000,0x7FFF);
35  }
36 }
int16_t t_int16
Definition: int_types.h:6
size_t t_size
Definition: int_types.h:48
T clip_t(const T &p_item, const T &p_min, const T &p_max)
Definition: primitives.h:565
static t_int32 rint32(audio_sample val)
Definition: audio_sample.h:52
static void noopt_convert_to_32bit ( const audio_sample p_source,
t_size  p_count,
t_int32 p_output,
float  p_scale 
)
static

Definition at line 20 of file audio_math.cpp.

21 {
22  t_size num = p_count;
23  for(;num;--num)
24  {
25  t_int64 val = audio_math::rint64( *(p_source++) * p_scale );
26  if (val < -(t_int64)0x80000000) val = -(t_int64)0x80000000;
27  else if (val > 0x7FFFFFFF) val = 0x7FFFFFFF;
28  *(p_output++) = (t_int32) val;
29  }
30 }
int32_t t_int32
Definition: int_types.h:4
static t_int64 rint64(audio_sample val)
Definition: audio_sample.h:44
size_t t_size
Definition: int_types.h:48
int64_t t_int64
Definition: int_types.h:2
static void noopt_scale ( const audio_sample p_source,
t_size  p_count,
audio_sample p_output,
audio_sample  p_scale 
)
inlinestatic

Definition at line 54 of file audio_math.cpp.

55 {
56  for(t_size n=0;n<p_count;n++)
57  p_output[n] = p_source[n] * p_scale;
58 }
size_t t_size
Definition: int_types.h:48