mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-05 13:29:57 -05:00
resampler-test: add tests for 24bit sample formats
This commit is contained in:
parent
76caa270ce
commit
5caf09d4ea
1 changed files with 62 additions and 3 deletions
|
|
@ -48,7 +48,7 @@ static void dump_block(const pa_sample_spec *ss, const pa_memchunk *chunk) {
|
|||
uint8_t *u = d;
|
||||
|
||||
for (i = 0; i < chunk->length / pa_frame_size(ss); i++)
|
||||
printf("0x%02x ", *(u++));
|
||||
printf(" 0x%02x ", *(u++));
|
||||
|
||||
break;
|
||||
}
|
||||
|
|
@ -58,7 +58,7 @@ static void dump_block(const pa_sample_spec *ss, const pa_memchunk *chunk) {
|
|||
uint16_t *u = d;
|
||||
|
||||
for (i = 0; i < chunk->length / pa_frame_size(ss); i++)
|
||||
printf("0x%04x ", *(u++));
|
||||
printf(" 0x%04x ", *(u++));
|
||||
|
||||
break;
|
||||
}
|
||||
|
|
@ -73,6 +73,16 @@ static void dump_block(const pa_sample_spec *ss, const pa_memchunk *chunk) {
|
|||
break;
|
||||
}
|
||||
|
||||
case PA_SAMPLE_S24_32NE:
|
||||
case PA_SAMPLE_S24_32RE: {
|
||||
uint32_t *u = d;
|
||||
|
||||
for (i = 0; i < chunk->length / pa_frame_size(ss); i++)
|
||||
printf("0x%08x ", *(u++));
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case PA_SAMPLE_FLOAT32NE:
|
||||
case PA_SAMPLE_FLOAT32RE: {
|
||||
float *u = d;
|
||||
|
|
@ -85,6 +95,18 @@ static void dump_block(const pa_sample_spec *ss, const pa_memchunk *chunk) {
|
|||
break;
|
||||
}
|
||||
|
||||
case PA_SAMPLE_S24LE:
|
||||
case PA_SAMPLE_S24BE: {
|
||||
uint8_t *u = d;
|
||||
|
||||
for (i = 0; i < chunk->length / pa_frame_size(ss); i++) {
|
||||
printf(" 0x%06x ", PA_READ24NE(u));
|
||||
u += pa_frame_size(ss);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
pa_assert_not_reached();
|
||||
}
|
||||
|
|
@ -156,6 +178,23 @@ static pa_memblock* generate_block(pa_mempool *pool, const pa_sample_spec *ss) {
|
|||
break;
|
||||
}
|
||||
|
||||
case PA_SAMPLE_S24_32NE:
|
||||
case PA_SAMPLE_S24_32RE: {
|
||||
uint32_t *u = d;
|
||||
|
||||
u[0] = 0x000001;
|
||||
u[1] = 0xFF0002;
|
||||
u[2] = 0x7F0003;
|
||||
u[3] = 0x800004;
|
||||
u[4] = 0x9f0005;
|
||||
u[5] = 0x3f0006;
|
||||
u[6] = 0x107;
|
||||
u[7] = 0xF00008;
|
||||
u[8] = 0x2009;
|
||||
u[9] = 0x210A;
|
||||
break;
|
||||
}
|
||||
|
||||
case PA_SAMPLE_FLOAT32NE:
|
||||
case PA_SAMPLE_FLOAT32RE: {
|
||||
float *u = d;
|
||||
|
|
@ -178,6 +217,23 @@ static pa_memblock* generate_block(pa_mempool *pool, const pa_sample_spec *ss) {
|
|||
break;
|
||||
}
|
||||
|
||||
case PA_SAMPLE_S24NE:
|
||||
case PA_SAMPLE_S24RE: {
|
||||
uint8_t *u = d;
|
||||
|
||||
PA_WRITE24NE(u, 0x000001);
|
||||
PA_WRITE24NE(u+3, 0xFF0002);
|
||||
PA_WRITE24NE(u+6, 0x7F0003);
|
||||
PA_WRITE24NE(u+9, 0x800004);
|
||||
PA_WRITE24NE(u+12, 0x9f0005);
|
||||
PA_WRITE24NE(u+15, 0x3f0006);
|
||||
PA_WRITE24NE(u+18, 0x107);
|
||||
PA_WRITE24NE(u+21, 0xF00008);
|
||||
PA_WRITE24NE(u+24, 0x2009);
|
||||
PA_WRITE24NE(u+27, 0x210A);
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
pa_assert_not_reached();
|
||||
}
|
||||
|
|
@ -205,7 +261,6 @@ int main(int argc, char *argv[]) {
|
|||
|
||||
for (a.format = 0; a.format < PA_SAMPLE_MAX; a.format ++) {
|
||||
for (b.format = 0; b.format < PA_SAMPLE_MAX; b.format ++) {
|
||||
|
||||
pa_resampler *forth, *back;
|
||||
pa_memchunk i, j, k;
|
||||
|
||||
|
|
@ -223,14 +278,18 @@ int main(int argc, char *argv[]) {
|
|||
pa_resampler_run(forth, &i, &j);
|
||||
pa_resampler_run(back, &j, &k);
|
||||
|
||||
printf("before: ");
|
||||
dump_block(&a, &i);
|
||||
printf("after : ");
|
||||
dump_block(&b, &j);
|
||||
printf("reverse: ");
|
||||
dump_block(&a, &k);
|
||||
|
||||
pa_memblock_unref(j.memblock);
|
||||
pa_memblock_unref(k.memblock);
|
||||
|
||||
pa_volume_memchunk(&i, &a, &v);
|
||||
printf("volume: ");
|
||||
dump_block(&a, &i);
|
||||
|
||||
pa_memblock_unref(i.memblock);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue