diff options
author | The Android Open Source Project <initial-contribution@android.com> | 2009-02-10 15:43:59 -0800 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2009-02-10 15:43:59 -0800 |
commit | c27f813900a3c114562efbb8df1065e94766fc48 (patch) | |
tree | d95919283707dcab61009e27007374a745c9541e /audio/mixeng.c | |
parent | 0852ad57fa372f9b2854e4df685eaba8d8ef6790 (diff) | |
download | external_qemu-c27f813900a3c114562efbb8df1065e94766fc48.zip external_qemu-c27f813900a3c114562efbb8df1065e94766fc48.tar.gz external_qemu-c27f813900a3c114562efbb8df1065e94766fc48.tar.bz2 |
auto import from //branches/cupcake/...@130745
Diffstat (limited to 'audio/mixeng.c')
-rw-r--r-- | audio/mixeng.c | 97 |
1 files changed, 78 insertions, 19 deletions
diff --git a/audio/mixeng.c b/audio/mixeng.c index 6308d41..34fc6df 100644 --- a/audio/mixeng.c +++ b/audio/mixeng.c @@ -22,7 +22,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -#include "vl.h" +#include "audio.h" #define AUDIO_CAP "mixeng" #include "audio_int.h" @@ -82,6 +82,7 @@ #undef IN_T #undef SHIFT +/* Unsigned 16 bit */ #define IN_T uint16_t #define IN_MIN 0 #define IN_MAX USHRT_MAX @@ -101,26 +102,72 @@ #undef IN_T #undef SHIFT -t_sample *mixeng_conv[2][2][2][2] = { +/* Signed 32 bit */ +#define IN_T int32_t +#define IN_MIN INT32_MIN +#define IN_MAX INT32_MAX +#define SIGNED +#define SHIFT 32 +#define ENDIAN_CONVERSION natural +#define ENDIAN_CONVERT(v) (v) +#include "mixeng_template.h" +#undef ENDIAN_CONVERT +#undef ENDIAN_CONVERSION +#define ENDIAN_CONVERSION swap +#define ENDIAN_CONVERT(v) bswap32 (v) +#include "mixeng_template.h" +#undef ENDIAN_CONVERT +#undef ENDIAN_CONVERSION +#undef SIGNED +#undef IN_MAX +#undef IN_MIN +#undef IN_T +#undef SHIFT + +/* Unsigned 16 bit */ +#define IN_T uint32_t +#define IN_MIN 0 +#define IN_MAX UINT32_MAX +#define SHIFT 32 +#define ENDIAN_CONVERSION natural +#define ENDIAN_CONVERT(v) (v) +#include "mixeng_template.h" +#undef ENDIAN_CONVERT +#undef ENDIAN_CONVERSION +#define ENDIAN_CONVERSION swap +#define ENDIAN_CONVERT(v) bswap32 (v) +#include "mixeng_template.h" +#undef ENDIAN_CONVERT +#undef ENDIAN_CONVERSION +#undef IN_MAX +#undef IN_MIN +#undef IN_T +#undef SHIFT + +t_sample *mixeng_conv[2][2][2][3] = { { { { conv_natural_uint8_t_to_mono, - conv_natural_uint16_t_to_mono + conv_natural_uint16_t_to_mono, + conv_natural_uint32_t_to_mono }, { conv_natural_uint8_t_to_mono, - conv_swap_uint16_t_to_mono + conv_swap_uint16_t_to_mono, + conv_swap_uint32_t_to_mono, } }, { { conv_natural_int8_t_to_mono, - conv_natural_int16_t_to_mono + conv_natural_int16_t_to_mono, + conv_natural_int32_t_to_mono }, { conv_natural_int8_t_to_mono, - conv_swap_int16_t_to_mono + conv_swap_int16_t_to_mono, + conv_swap_int32_t_to_mono } } }, @@ -128,46 +175,54 @@ t_sample *mixeng_conv[2][2][2][2] = { { { conv_natural_uint8_t_to_stereo, - conv_natural_uint16_t_to_stereo + conv_natural_uint16_t_to_stereo, + conv_natural_uint32_t_to_stereo }, { conv_natural_uint8_t_to_stereo, - conv_swap_uint16_t_to_stereo + conv_swap_uint16_t_to_stereo, + conv_swap_uint32_t_to_stereo } }, { { conv_natural_int8_t_to_stereo, - conv_natural_int16_t_to_stereo + conv_natural_int16_t_to_stereo, + conv_natural_int32_t_to_stereo }, { conv_natural_int8_t_to_stereo, - conv_swap_int16_t_to_stereo + conv_swap_int16_t_to_stereo, + conv_swap_int32_t_to_stereo, } } } }; -f_sample *mixeng_clip[2][2][2][2] = { +f_sample *mixeng_clip[2][2][2][3] = { { { { clip_natural_uint8_t_from_mono, - clip_natural_uint16_t_from_mono + clip_natural_uint16_t_from_mono, + clip_natural_uint32_t_from_mono }, { clip_natural_uint8_t_from_mono, - clip_swap_uint16_t_from_mono + clip_swap_uint16_t_from_mono, + clip_swap_uint32_t_from_mono } }, { { clip_natural_int8_t_from_mono, - clip_natural_int16_t_from_mono + clip_natural_int16_t_from_mono, + clip_natural_int32_t_from_mono }, { clip_natural_int8_t_from_mono, - clip_swap_int16_t_from_mono + clip_swap_int16_t_from_mono, + clip_swap_int32_t_from_mono } } }, @@ -175,21 +230,25 @@ f_sample *mixeng_clip[2][2][2][2] = { { { clip_natural_uint8_t_from_stereo, - clip_natural_uint16_t_from_stereo + clip_natural_uint16_t_from_stereo, + clip_natural_uint32_t_from_stereo }, { clip_natural_uint8_t_from_stereo, - clip_swap_uint16_t_from_stereo + clip_swap_uint16_t_from_stereo, + clip_swap_uint32_t_from_stereo } }, { { clip_natural_int8_t_from_stereo, - clip_natural_int16_t_from_stereo + clip_natural_int16_t_from_stereo, + clip_natural_int32_t_from_stereo }, { clip_natural_int8_t_from_stereo, - clip_swap_int16_t_from_stereo + clip_swap_int16_t_from_stereo, + clip_swap_int32_t_from_stereo } } } |