pcm_utils: export pcm_range()
We are going to split the pcm_utils.c library, and pcm_range() will be useful for several sub libraries.
This commit is contained in:
parent
9cb76856c0
commit
e8c323ed7e
@ -41,20 +41,6 @@ pcm_dither(void)
|
||||
return (r & 511) - ((r >> 9) & 511);
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the value is within the range of the provided bit size,
|
||||
* and caps it if necessary.
|
||||
*/
|
||||
static int32_t
|
||||
pcm_range(int32_t sample, unsigned bits)
|
||||
{
|
||||
if (G_UNLIKELY(sample < (-1 << (bits - 1))))
|
||||
return -1 << (bits - 1);
|
||||
if (G_UNLIKELY(sample >= (1 << (bits - 1))))
|
||||
return (1 << (bits - 1)) - 1;
|
||||
return sample;
|
||||
}
|
||||
|
||||
static void
|
||||
pcm_volume_change_8(int8_t *buffer, unsigned num_samples, int volume)
|
||||
{
|
||||
|
@ -22,6 +22,8 @@
|
||||
#include "pcm_resample.h"
|
||||
#include "pcm_dither.h"
|
||||
|
||||
#include <glib.h>
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stddef.h>
|
||||
|
||||
@ -41,6 +43,20 @@ struct pcm_convert_state {
|
||||
int error;
|
||||
};
|
||||
|
||||
/**
|
||||
* Check if the value is within the range of the provided bit size,
|
||||
* and caps it if necessary.
|
||||
*/
|
||||
static inline int32_t
|
||||
pcm_range(int32_t sample, unsigned bits)
|
||||
{
|
||||
if (G_UNLIKELY(sample < (-1 << (bits - 1))))
|
||||
return -1 << (bits - 1);
|
||||
if (G_UNLIKELY(sample >= (1 << (bits - 1))))
|
||||
return (1 << (bits - 1)) - 1;
|
||||
return sample;
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts a float value (0.0 = silence, 1.0 = 100% volume) to an
|
||||
* integer volume value (1000 = 100%).
|
||||
|
Loading…
Reference in New Issue
Block a user