mirror of
https://github.com/alsa-project/alsa-lib.git
synced 2025-10-29 05:40:25 -04:00
dmix: rename mix_areas*
Rename all mix_areas* symbols so that they contain the sample width instead of some meaningless number.
This commit is contained in:
parent
de2b7a42d7
commit
79db4a6bfa
7 changed files with 159 additions and 144 deletions
|
|
@ -24,20 +24,20 @@
|
|||
#define DIRECT_IPC_SEMS 1
|
||||
#define DIRECT_IPC_SEM_CLIENT 0
|
||||
|
||||
typedef void (mix_areas1_t)(unsigned int size,
|
||||
volatile signed short *dst, signed short *src,
|
||||
volatile signed int *sum, size_t dst_step,
|
||||
size_t src_step, size_t sum_step);
|
||||
typedef void (mix_areas_16_t)(unsigned int size,
|
||||
volatile signed short *dst, signed short *src,
|
||||
volatile signed int *sum, size_t dst_step,
|
||||
size_t src_step, size_t sum_step);
|
||||
|
||||
typedef void (mix_areas2_t)(unsigned int size,
|
||||
volatile signed int *dst, signed int *src,
|
||||
volatile signed int *sum, size_t dst_step,
|
||||
size_t src_step, size_t sum_step);
|
||||
typedef void (mix_areas_32_t)(unsigned int size,
|
||||
volatile signed int *dst, signed int *src,
|
||||
volatile signed int *sum, size_t dst_step,
|
||||
size_t src_step, size_t sum_step);
|
||||
|
||||
typedef void (mix_areas3_t)(unsigned int size,
|
||||
volatile unsigned char *dst, unsigned char *src,
|
||||
volatile signed int *sum, size_t dst_step,
|
||||
size_t src_step, size_t sum_step);
|
||||
typedef void (mix_areas_24_t)(unsigned int size,
|
||||
volatile unsigned char *dst, unsigned char *src,
|
||||
volatile signed int *sum, size_t dst_step,
|
||||
size_t src_step, size_t sum_step);
|
||||
|
||||
struct slave_params {
|
||||
snd_pcm_format_t format;
|
||||
|
|
@ -148,9 +148,9 @@ struct snd_pcm_direct {
|
|||
struct {
|
||||
int shmid_sum; /* IPC global sum ring buffer memory identification */
|
||||
signed int *sum_buffer; /* shared sum buffer */
|
||||
mix_areas1_t *mix_areas1;
|
||||
mix_areas2_t *mix_areas2;
|
||||
mix_areas3_t *mix_areas3;
|
||||
mix_areas_16_t *mix_areas_16;
|
||||
mix_areas_32_t *mix_areas_32;
|
||||
mix_areas_24_t *mix_areas_24;
|
||||
} dmix;
|
||||
struct {
|
||||
} dsnoop;
|
||||
|
|
|
|||
|
|
@ -170,13 +170,13 @@ static void mix_areas(snd_pcm_direct_t *dmix,
|
|||
* process all areas in one loop
|
||||
* it optimizes the memory accesses for this case
|
||||
*/
|
||||
dmix->u.dmix.mix_areas1(size * channels,
|
||||
((signed short *)dst_areas[0].addr) + (dst_ofs * channels),
|
||||
((signed short *)src_areas[0].addr) + (src_ofs * channels),
|
||||
dmix->u.dmix.sum_buffer + (dst_ofs * channels),
|
||||
sizeof(signed short),
|
||||
sizeof(signed short),
|
||||
sizeof(signed int));
|
||||
dmix->u.dmix.mix_areas_16(size * channels,
|
||||
((signed short *)dst_areas[0].addr) + (dst_ofs * channels),
|
||||
((signed short *)src_areas[0].addr) + (src_ofs * channels),
|
||||
dmix->u.dmix.sum_buffer + (dst_ofs * channels),
|
||||
sizeof(signed short),
|
||||
sizeof(signed short),
|
||||
sizeof(signed int));
|
||||
return;
|
||||
}
|
||||
for (chn = 0; chn < channels; chn++) {
|
||||
|
|
@ -188,7 +188,7 @@ static void mix_areas(snd_pcm_direct_t *dmix,
|
|||
src = (signed short *)(((char *)src_areas[chn].addr + src_areas[chn].first / 8) + (src_ofs * src_step));
|
||||
dst = (signed short *)(((char *)dst_areas[dchn].addr + dst_areas[dchn].first / 8) + (dst_ofs * dst_step));
|
||||
sum = dmix->u.dmix.sum_buffer + channels * dst_ofs + chn;
|
||||
dmix->u.dmix.mix_areas1(size, dst, src, sum, dst_step, src_step, channels * sizeof(signed int));
|
||||
dmix->u.dmix.mix_areas_16(size, dst, src, sum, dst_step, src_step, channels * sizeof(signed int));
|
||||
}
|
||||
} else if (dmix->shmptr->s.format == SND_PCM_FORMAT_S32_LE ||
|
||||
dmix->shmptr->s.format == SND_PCM_FORMAT_S32_BE) {
|
||||
|
|
@ -199,13 +199,13 @@ static void mix_areas(snd_pcm_direct_t *dmix,
|
|||
* process all areas in one loop
|
||||
* it optimizes the memory accesses for this case
|
||||
*/
|
||||
dmix->u.dmix.mix_areas2(size * channels,
|
||||
((signed int *)dst_areas[0].addr) + (dst_ofs * channels),
|
||||
((signed int *)src_areas[0].addr) + (src_ofs * channels),
|
||||
dmix->u.dmix.sum_buffer + (dst_ofs * channels),
|
||||
sizeof(signed int),
|
||||
sizeof(signed int),
|
||||
sizeof(signed int));
|
||||
dmix->u.dmix.mix_areas_32(size * channels,
|
||||
((signed int *)dst_areas[0].addr) + (dst_ofs * channels),
|
||||
((signed int *)src_areas[0].addr) + (src_ofs * channels),
|
||||
dmix->u.dmix.sum_buffer + (dst_ofs * channels),
|
||||
sizeof(signed int),
|
||||
sizeof(signed int),
|
||||
sizeof(signed int));
|
||||
return;
|
||||
}
|
||||
for (chn = 0; chn < channels; chn++) {
|
||||
|
|
@ -217,7 +217,7 @@ static void mix_areas(snd_pcm_direct_t *dmix,
|
|||
src = (signed int *)(((char *)src_areas[chn].addr + src_areas[chn].first / 8) + (src_ofs * src_step));
|
||||
dst = (signed int *)(((char *)dst_areas[dchn].addr + dst_areas[dchn].first / 8) + (dst_ofs * dst_step));
|
||||
sum = dmix->u.dmix.sum_buffer + channels * dst_ofs + chn;
|
||||
dmix->u.dmix.mix_areas2(size, dst, src, sum, dst_step, src_step, channels * sizeof(signed int));
|
||||
dmix->u.dmix.mix_areas_32(size, dst, src, sum, dst_step, src_step, channels * sizeof(signed int));
|
||||
}
|
||||
} else { /* SND_PCM_FORMAT_S24_3LE */
|
||||
unsigned char *src;
|
||||
|
|
@ -227,11 +227,11 @@ static void mix_areas(snd_pcm_direct_t *dmix,
|
|||
* process all areas in one loop
|
||||
* it optimizes the memory accesses for this case
|
||||
*/
|
||||
dmix->u.dmix.mix_areas3(size * channels,
|
||||
((unsigned char *)dst_areas[0].addr) + 3 * dst_ofs * channels,
|
||||
((unsigned char *)src_areas[0].addr) + 3 * src_ofs * channels,
|
||||
dmix->u.dmix.sum_buffer + (dst_ofs * channels),
|
||||
3, 3, sizeof(signed int));
|
||||
dmix->u.dmix.mix_areas_24(size * channels,
|
||||
((unsigned char *)dst_areas[0].addr) + 3 * dst_ofs * channels,
|
||||
((unsigned char *)src_areas[0].addr) + 3 * src_ofs * channels,
|
||||
dmix->u.dmix.sum_buffer + (dst_ofs * channels),
|
||||
3, 3, sizeof(signed int));
|
||||
return;
|
||||
}
|
||||
for (chn = 0; chn < channels; chn++) {
|
||||
|
|
@ -243,7 +243,7 @@ static void mix_areas(snd_pcm_direct_t *dmix,
|
|||
src = (unsigned char *)(((char *)src_areas[chn].addr + src_areas[chn].first / 8) + (src_ofs * src_step));
|
||||
dst = (unsigned char *)(((char *)dst_areas[dchn].addr + dst_areas[dchn].first / 8) + (dst_ofs * dst_step));
|
||||
sum = dmix->u.dmix.sum_buffer + channels * dst_ofs + chn;
|
||||
dmix->u.dmix.mix_areas3(size, dst, src, sum, dst_step, src_step, channels * sizeof(signed int));
|
||||
dmix->u.dmix.mix_areas_24(size, dst, src, sum, dst_step, src_step, channels * sizeof(signed int));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -48,10 +48,10 @@ static inline unsigned long __cmpxchg(volatile void *ptr, unsigned long old,
|
|||
#endif
|
||||
|
||||
#if IS_CONCURRENT
|
||||
static void mix_areas1(unsigned int size,
|
||||
volatile signed short *dst, signed short *src,
|
||||
volatile signed int *sum, size_t dst_step,
|
||||
size_t src_step, size_t sum_step)
|
||||
static void mix_areas_16(unsigned int size,
|
||||
volatile signed short *dst, signed short *src,
|
||||
volatile signed int *sum, size_t dst_step,
|
||||
size_t src_step, size_t sum_step)
|
||||
{
|
||||
register signed int sample, old_sample;
|
||||
|
||||
|
|
@ -79,10 +79,10 @@ static void mix_areas1(unsigned int size,
|
|||
}
|
||||
}
|
||||
|
||||
static void mix_areas2(unsigned int size,
|
||||
volatile signed int *dst, signed int *src,
|
||||
volatile signed int *sum, size_t dst_step,
|
||||
size_t src_step, size_t sum_step)
|
||||
static void mix_areas_32(unsigned int size,
|
||||
volatile signed int *dst, signed int *src,
|
||||
volatile signed int *sum, size_t dst_step,
|
||||
size_t src_step, size_t sum_step)
|
||||
{
|
||||
register signed int sample, old_sample;
|
||||
|
||||
|
|
@ -112,8 +112,8 @@ static void mix_areas2(unsigned int size,
|
|||
|
||||
static void mix_select_callbacks(snd_pcm_direct_t *dmix)
|
||||
{
|
||||
dmix->u.dmix.mix_areas1 = mix_areas1;
|
||||
dmix->u.dmix.mix_areas2 = mix_areas2;
|
||||
dmix->u.dmix.mix_areas_16 = mix_areas_16;
|
||||
dmix->u.dmix.mix_areas_32 = mix_areas_32;
|
||||
}
|
||||
|
||||
#else
|
||||
|
|
@ -126,10 +126,13 @@ static void mix_select_callbacks(snd_pcm_direct_t *dmix)
|
|||
|
||||
#include <byteswap.h>
|
||||
|
||||
static void generic_mix_areas1_native(unsigned int size,
|
||||
volatile signed short *dst, signed short *src,
|
||||
volatile signed int *sum, size_t dst_step,
|
||||
size_t src_step, size_t sum_step)
|
||||
static void generic_mix_areas_16_native(unsigned int size,
|
||||
volatile signed short *dst,
|
||||
signed short *src,
|
||||
volatile signed int *sum,
|
||||
size_t dst_step,
|
||||
size_t src_step,
|
||||
size_t sum_step)
|
||||
{
|
||||
register signed int sample;
|
||||
|
||||
|
|
@ -155,10 +158,13 @@ static void generic_mix_areas1_native(unsigned int size,
|
|||
}
|
||||
}
|
||||
|
||||
static void generic_mix_areas2_native(unsigned int size,
|
||||
volatile signed int *dst, signed int *src,
|
||||
volatile signed int *sum, size_t dst_step,
|
||||
size_t src_step, size_t sum_step)
|
||||
static void generic_mix_areas_32_native(unsigned int size,
|
||||
volatile signed int *dst,
|
||||
signed int *src,
|
||||
volatile signed int *sum,
|
||||
size_t dst_step,
|
||||
size_t src_step,
|
||||
size_t sum_step)
|
||||
{
|
||||
register signed int sample;
|
||||
|
||||
|
|
@ -186,10 +192,13 @@ static void generic_mix_areas2_native(unsigned int size,
|
|||
}
|
||||
}
|
||||
|
||||
static void generic_mix_areas1_swap(unsigned int size,
|
||||
volatile signed short *dst, signed short *src,
|
||||
volatile signed int *sum, size_t dst_step,
|
||||
size_t src_step, size_t sum_step)
|
||||
static void generic_mix_areas_16_swap(unsigned int size,
|
||||
volatile signed short *dst,
|
||||
signed short *src,
|
||||
volatile signed int *sum,
|
||||
size_t dst_step,
|
||||
size_t src_step,
|
||||
size_t sum_step)
|
||||
{
|
||||
register signed int sample;
|
||||
|
||||
|
|
@ -215,10 +224,13 @@ static void generic_mix_areas1_swap(unsigned int size,
|
|||
}
|
||||
}
|
||||
|
||||
static void generic_mix_areas2_swap(unsigned int size,
|
||||
volatile signed int *dst, signed int *src,
|
||||
volatile signed int *sum, size_t dst_step,
|
||||
size_t src_step, size_t sum_step)
|
||||
static void generic_mix_areas_32_swap(unsigned int size,
|
||||
volatile signed int *dst,
|
||||
signed int *src,
|
||||
volatile signed int *sum,
|
||||
size_t dst_step,
|
||||
size_t src_step,
|
||||
size_t sum_step)
|
||||
{
|
||||
register signed int sample;
|
||||
|
||||
|
|
@ -247,10 +259,13 @@ static void generic_mix_areas2_swap(unsigned int size,
|
|||
}
|
||||
|
||||
/* always little endian */
|
||||
static void generic_mix_areas3(unsigned int size,
|
||||
volatile unsigned char *dst, unsigned char *src,
|
||||
volatile signed int *sum, size_t dst_step,
|
||||
size_t src_step, size_t sum_step)
|
||||
static void generic_mix_areas_24(unsigned int size,
|
||||
volatile unsigned char *dst,
|
||||
unsigned char *src,
|
||||
volatile signed int *sum,
|
||||
size_t dst_step,
|
||||
size_t src_step,
|
||||
size_t sum_step)
|
||||
{
|
||||
register signed int sample;
|
||||
|
||||
|
|
@ -281,13 +296,13 @@ static void generic_mix_areas3(unsigned int size,
|
|||
static void generic_mix_select_callbacks(snd_pcm_direct_t *dmix)
|
||||
{
|
||||
if (snd_pcm_format_cpu_endian(dmix->shmptr->s.format)) {
|
||||
dmix->u.dmix.mix_areas1 = generic_mix_areas1_native;
|
||||
dmix->u.dmix.mix_areas2 = generic_mix_areas2_native;
|
||||
dmix->u.dmix.mix_areas_16 = generic_mix_areas_16_native;
|
||||
dmix->u.dmix.mix_areas_32 = generic_mix_areas_32_native;
|
||||
} else {
|
||||
dmix->u.dmix.mix_areas1 = generic_mix_areas1_swap;
|
||||
dmix->u.dmix.mix_areas2 = generic_mix_areas2_swap;
|
||||
dmix->u.dmix.mix_areas_16 = generic_mix_areas_16_swap;
|
||||
dmix->u.dmix.mix_areas_32 = generic_mix_areas_32_swap;
|
||||
}
|
||||
dmix->u.dmix.mix_areas3 = generic_mix_areas3;
|
||||
dmix->u.dmix.mix_areas_24 = generic_mix_areas_24;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -2,32 +2,32 @@
|
|||
* optimized mixing code for i386
|
||||
*/
|
||||
|
||||
#define MIX_AREAS1 mix_areas1
|
||||
#define MIX_AREAS1_MMX mix_areas1_mmx
|
||||
#define MIX_AREAS2 mix_areas2
|
||||
#define MIX_AREAS3 mix_areas3
|
||||
#define MIX_AREAS3_CMOV mix_areas3_cmov
|
||||
#define MIX_AREAS_16 mix_areas_16
|
||||
#define MIX_AREAS_16_MMX mix_areas_16_mmx
|
||||
#define MIX_AREAS_32 mix_areas_32
|
||||
#define MIX_AREAS_24 mix_areas_24
|
||||
#define MIX_AREAS_24_CMOV mix_areas_24_cmov
|
||||
#define LOCK_PREFIX ""
|
||||
#include "pcm_dmix_i386.h"
|
||||
#undef MIX_AREAS1
|
||||
#undef MIX_AREAS1_MMX
|
||||
#undef MIX_AREAS2
|
||||
#undef MIX_AREAS3
|
||||
#undef MIX_AREAS3_CMOV
|
||||
#undef MIX_AREAS_16
|
||||
#undef MIX_AREAS_16_MMX
|
||||
#undef MIX_AREAS_32
|
||||
#undef MIX_AREAS_24
|
||||
#undef MIX_AREAS_24_CMOV
|
||||
#undef LOCK_PREFIX
|
||||
|
||||
#define MIX_AREAS1 mix_areas1_smp
|
||||
#define MIX_AREAS1_MMX mix_areas1_smp_mmx
|
||||
#define MIX_AREAS2 mix_areas2_smp
|
||||
#define MIX_AREAS3 mix_areas3_smp
|
||||
#define MIX_AREAS3_CMOV mix_areas3_smp_cmov
|
||||
#define MIX_AREAS_16 mix_areas_16_smp
|
||||
#define MIX_AREAS_16_MMX mix_areas_16_smp_mmx
|
||||
#define MIX_AREAS_32 mix_areas_32_smp
|
||||
#define MIX_AREAS_24 mix_areas_24_smp
|
||||
#define MIX_AREAS_24_CMOV mix_areas_24_smp_cmov
|
||||
#define LOCK_PREFIX "lock ; "
|
||||
#include "pcm_dmix_i386.h"
|
||||
#undef MIX_AREAS1
|
||||
#undef MIX_AREAS1_MMX
|
||||
#undef MIX_AREAS2
|
||||
#undef MIX_AREAS3
|
||||
#undef MIX_AREAS3_CMOV
|
||||
#undef MIX_AREAS_16
|
||||
#undef MIX_AREAS_16_MMX
|
||||
#undef MIX_AREAS_32
|
||||
#undef MIX_AREAS_24
|
||||
#undef MIX_AREAS_24_CMOV
|
||||
#undef LOCK_PREFIX
|
||||
|
||||
#define i386_dmix_supported_format \
|
||||
|
|
@ -70,14 +70,14 @@ static void mix_select_callbacks(snd_pcm_direct_t *dmix)
|
|||
}
|
||||
|
||||
if (mmx) {
|
||||
dmix->u.dmix.mix_areas1 = smp > 1 ? mix_areas1_smp_mmx : mix_areas1_mmx;
|
||||
dmix->u.dmix.mix_areas_16 = smp > 1 ? mix_areas_16_smp_mmx : mix_areas_16_mmx;
|
||||
} else {
|
||||
dmix->u.dmix.mix_areas1 = smp > 1 ? mix_areas1_smp : mix_areas1;
|
||||
dmix->u.dmix.mix_areas_16 = smp > 1 ? mix_areas_16_smp : mix_areas_16;
|
||||
}
|
||||
dmix->u.dmix.mix_areas2 = smp > 1 ? mix_areas2_smp : mix_areas2;
|
||||
dmix->u.dmix.mix_areas_32 = smp > 1 ? mix_areas_32_smp : mix_areas_32;
|
||||
if (cmov) {
|
||||
dmix->u.dmix.mix_areas3 = smp > 1 ? mix_areas3_smp_cmov : mix_areas3_cmov;
|
||||
dmix->u.dmix.mix_areas_24 = smp > 1 ? mix_areas_24_smp_cmov : mix_areas_24_cmov;
|
||||
} else {
|
||||
dmix->u.dmix.mix_areas3 = smp > 1 ? mix_areas3_smp: mix_areas3;
|
||||
dmix->u.dmix.mix_areas_24 = smp > 1 ? mix_areas_24_smp: mix_areas_24;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,10 +29,10 @@
|
|||
/*
|
||||
* for plain i386
|
||||
*/
|
||||
static void MIX_AREAS1(unsigned int size,
|
||||
volatile signed short *dst, signed short *src,
|
||||
volatile signed int *sum, size_t dst_step,
|
||||
size_t src_step, size_t sum_step)
|
||||
static void MIX_AREAS_16(unsigned int size,
|
||||
volatile signed short *dst, signed short *src,
|
||||
volatile signed int *sum, size_t dst_step,
|
||||
size_t src_step, size_t sum_step)
|
||||
{
|
||||
unsigned int old_ebx;
|
||||
|
||||
|
|
@ -153,10 +153,10 @@ static void MIX_AREAS1(unsigned int size,
|
|||
/*
|
||||
* MMX optimized
|
||||
*/
|
||||
static void MIX_AREAS1_MMX(unsigned int size,
|
||||
volatile signed short *dst, signed short *src,
|
||||
volatile signed int *sum, size_t dst_step,
|
||||
size_t src_step, size_t sum_step)
|
||||
static void MIX_AREAS_16_MMX(unsigned int size,
|
||||
volatile signed short *dst, signed short *src,
|
||||
volatile signed int *sum, size_t dst_step,
|
||||
size_t src_step, size_t sum_step)
|
||||
{
|
||||
unsigned int old_ebx;
|
||||
|
||||
|
|
@ -243,10 +243,10 @@ static void MIX_AREAS1_MMX(unsigned int size,
|
|||
/*
|
||||
* for plain i386, 32-bit version (24-bit resolution)
|
||||
*/
|
||||
static void MIX_AREAS2(unsigned int size,
|
||||
volatile signed int *dst, signed int *src,
|
||||
volatile signed int *sum, size_t dst_step,
|
||||
size_t src_step, size_t sum_step)
|
||||
static void MIX_AREAS_32(unsigned int size,
|
||||
volatile signed int *dst, signed int *src,
|
||||
volatile signed int *sum, size_t dst_step,
|
||||
size_t src_step, size_t sum_step)
|
||||
{
|
||||
unsigned int old_ebx;
|
||||
|
||||
|
|
@ -356,10 +356,10 @@ static void MIX_AREAS2(unsigned int size,
|
|||
/*
|
||||
* 24-bit version for plain i386
|
||||
*/
|
||||
static void MIX_AREAS3(unsigned int size,
|
||||
volatile unsigned char *dst, unsigned char *src,
|
||||
volatile signed int *sum, size_t dst_step,
|
||||
size_t src_step, size_t sum_step)
|
||||
static void MIX_AREAS_24(unsigned int size,
|
||||
volatile unsigned char *dst, unsigned char *src,
|
||||
volatile signed int *sum, size_t dst_step,
|
||||
size_t src_step, size_t sum_step)
|
||||
{
|
||||
unsigned int old_ebx;
|
||||
|
||||
|
|
@ -462,10 +462,10 @@ static void MIX_AREAS3(unsigned int size,
|
|||
/*
|
||||
* 24-bit version for Pentium Pro/II
|
||||
*/
|
||||
static void MIX_AREAS3_CMOV(unsigned int size,
|
||||
volatile unsigned char *dst, unsigned char *src,
|
||||
volatile signed int *sum, size_t dst_step,
|
||||
size_t src_step, size_t sum_step)
|
||||
static void MIX_AREAS_24_CMOV(unsigned int size,
|
||||
volatile unsigned char *dst, unsigned char *src,
|
||||
volatile signed int *sum, size_t dst_step,
|
||||
size_t src_step, size_t sum_step)
|
||||
{
|
||||
unsigned int old_ebx;
|
||||
|
||||
|
|
|
|||
|
|
@ -2,24 +2,24 @@
|
|||
* optimized mixing code for x86-64
|
||||
*/
|
||||
|
||||
#define MIX_AREAS1 mix_areas1
|
||||
#define MIX_AREAS2 mix_areas2
|
||||
#define MIX_AREAS3 mix_areas3
|
||||
#define MIX_AREAS_16 mix_areas_16
|
||||
#define MIX_AREAS_32 mix_areas_32
|
||||
#define MIX_AREAS_24 mix_areas_24
|
||||
#define LOCK_PREFIX ""
|
||||
#include "pcm_dmix_x86_64.h"
|
||||
#undef MIX_AREAS1
|
||||
#undef MIX_AREAS2
|
||||
#undef MIX_AREAS3
|
||||
#undef MIX_AREAS_16
|
||||
#undef MIX_AREAS_32
|
||||
#undef MIX_AREAS_24
|
||||
#undef LOCK_PREFIX
|
||||
|
||||
#define MIX_AREAS1 mix_areas1_smp
|
||||
#define MIX_AREAS2 mix_areas2_smp
|
||||
#define MIX_AREAS3 mix_areas3_smp
|
||||
#define MIX_AREAS_16 mix_areas_16_smp
|
||||
#define MIX_AREAS_32 mix_areas_32_smp
|
||||
#define MIX_AREAS_24 mix_areas_24_smp
|
||||
#define LOCK_PREFIX "lock ; "
|
||||
#include "pcm_dmix_x86_64.h"
|
||||
#undef MIX_AREAS1
|
||||
#undef MIX_AREAS2
|
||||
#undef MIX_AREAS3
|
||||
#undef MIX_AREAS_16
|
||||
#undef MIX_AREAS_32
|
||||
#undef MIX_AREAS_24
|
||||
#undef LOCK_PREFIX
|
||||
|
||||
#define x86_64_dmix_supported_format \
|
||||
|
|
@ -55,7 +55,7 @@ static void mix_select_callbacks(snd_pcm_direct_t *dmix)
|
|||
}
|
||||
}
|
||||
// printf("SMP: %i\n", smp);
|
||||
dmix->u.dmix.mix_areas1 = smp > 1 ? mix_areas1_smp : mix_areas1;
|
||||
dmix->u.dmix.mix_areas2 = smp > 1 ? mix_areas2_smp : mix_areas2;
|
||||
dmix->u.dmix.mix_areas3 = smp > 1 ? mix_areas3_smp : mix_areas3;
|
||||
dmix->u.dmix.mix_areas_16 = smp > 1 ? mix_areas_16_smp : mix_areas_16;
|
||||
dmix->u.dmix.mix_areas_32 = smp > 1 ? mix_areas_32_smp : mix_areas_32;
|
||||
dmix->u.dmix.mix_areas_24 = smp > 1 ? mix_areas_24_smp : mix_areas_24;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,10 +30,10 @@
|
|||
/*
|
||||
* MMX optimized
|
||||
*/
|
||||
static void MIX_AREAS1(unsigned int size,
|
||||
volatile signed short *dst, signed short *src,
|
||||
volatile signed int *sum, size_t dst_step,
|
||||
size_t src_step, size_t sum_step)
|
||||
static void MIX_AREAS_16(unsigned int size,
|
||||
volatile signed short *dst, signed short *src,
|
||||
volatile signed int *sum, size_t dst_step,
|
||||
size_t src_step, size_t sum_step)
|
||||
{
|
||||
unsigned long long old_rbx;
|
||||
|
||||
|
|
@ -125,10 +125,10 @@ static void MIX_AREAS1(unsigned int size,
|
|||
/*
|
||||
* 32-bit version (24-bit resolution)
|
||||
*/
|
||||
static void MIX_AREAS2(unsigned int size,
|
||||
volatile signed int *dst, signed int *src,
|
||||
volatile signed int *sum, size_t dst_step,
|
||||
size_t src_step, size_t sum_step)
|
||||
static void MIX_AREAS_32(unsigned int size,
|
||||
volatile signed int *dst, signed int *src,
|
||||
volatile signed int *sum, size_t dst_step,
|
||||
size_t src_step, size_t sum_step)
|
||||
{
|
||||
unsigned long long old_rbx;
|
||||
|
||||
|
|
@ -240,10 +240,10 @@ static void MIX_AREAS2(unsigned int size,
|
|||
/*
|
||||
* 24-bit version
|
||||
*/
|
||||
static void MIX_AREAS3(unsigned int size,
|
||||
volatile unsigned char *dst, unsigned char *src,
|
||||
volatile signed int *sum, size_t dst_step,
|
||||
size_t src_step, size_t sum_step)
|
||||
static void MIX_AREAS_24(unsigned int size,
|
||||
volatile unsigned char *dst, unsigned char *src,
|
||||
volatile signed int *sum, size_t dst_step,
|
||||
size_t src_step, size_t sum_step)
|
||||
{
|
||||
unsigned long long old_rbx;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue