diff --git a/spa/plugins/audioconvert/channelmix-ops.c b/spa/plugins/audioconvert/channelmix-ops.c index c669c58b0..4e74f8099 100644 --- a/spa/plugins/audioconvert/channelmix-ops.c +++ b/spa/plugins/audioconvert/channelmix-ops.c @@ -58,46 +58,47 @@ static const struct channelmix_info { channelmix_func_t process; uint32_t cpu_flags; + const char *name; } channelmix_table[] = { #if defined (HAVE_SSE) - { 2, MASK_MONO, 2, MASK_MONO, channelmix_copy_sse, SPA_CPU_FLAG_SSE }, - { 2, MASK_STEREO, 2, MASK_STEREO, channelmix_copy_sse, SPA_CPU_FLAG_SSE }, - { EQ, 0, EQ, 0, channelmix_copy_sse, SPA_CPU_FLAG_SSE }, + { 2, MASK_MONO, 2, MASK_MONO, channelmix_copy_sse, SPA_CPU_FLAG_SSE, "copy_sse" }, + { 2, MASK_STEREO, 2, MASK_STEREO, channelmix_copy_sse, SPA_CPU_FLAG_SSE, "copy_sse" }, + { EQ, 0, EQ, 0, channelmix_copy_sse, SPA_CPU_FLAG_SSE, "copy_sse" }, #endif - { 2, MASK_MONO, 2, MASK_MONO, channelmix_copy_c, 0 }, - { 2, MASK_STEREO, 2, MASK_STEREO, channelmix_copy_c, 0 }, + { 2, MASK_MONO, 2, MASK_MONO, channelmix_copy_c, 0, "copy_c" }, + { 2, MASK_STEREO, 2, MASK_STEREO, channelmix_copy_c, 0, "copy_c" }, { EQ, 0, EQ, 0, channelmix_copy_c, 0 }, - { 1, MASK_MONO, 2, MASK_STEREO, channelmix_f32_1_2_c, 0 }, - { 2, MASK_STEREO, 1, MASK_MONO, channelmix_f32_2_1_c, 0 }, - { 4, MASK_QUAD, 1, MASK_MONO, channelmix_f32_4_1_c, 0 }, - { 4, MASK_3_1, 1, MASK_MONO, channelmix_f32_3p1_1_c, 0 }, + { 1, MASK_MONO, 2, MASK_STEREO, channelmix_f32_1_2_c, 0, "f32_1_2_c" }, + { 2, MASK_STEREO, 1, MASK_MONO, channelmix_f32_2_1_c, 0, "f32_2_1_c" }, + { 4, MASK_QUAD, 1, MASK_MONO, channelmix_f32_4_1_c, 0, "f32_4_1_c" }, + { 4, MASK_3_1, 1, MASK_MONO, channelmix_f32_3p1_1_c, 0, "f32_3p1_1_c" }, #if defined (HAVE_SSE) - { 2, MASK_STEREO, 4, MASK_QUAD, channelmix_f32_2_4_sse, SPA_CPU_FLAG_SSE }, + { 2, MASK_STEREO, 4, MASK_QUAD, channelmix_f32_2_4_sse, SPA_CPU_FLAG_SSE, "f32_2_4_sse" }, #endif - { 2, MASK_STEREO, 4, MASK_QUAD, channelmix_f32_2_4_c, 0 }, - { 2, MASK_STEREO, 4, MASK_3_1, channelmix_f32_2_3p1_c, 0 }, - { 2, MASK_STEREO, 6, MASK_5_1, channelmix_f32_2_5p1_c, 0 }, + { 2, MASK_STEREO, 4, MASK_QUAD, channelmix_f32_2_4_c, 0, "f32_2_4_c" }, + { 2, MASK_STEREO, 4, MASK_3_1, channelmix_f32_2_3p1_c, 0, "f32_2_3p1_c" }, + { 2, MASK_STEREO, 6, MASK_5_1, channelmix_f32_2_5p1_c, 0, "f32_2_5p1_c" }, #if defined (HAVE_SSE) - { 6, MASK_5_1, 2, MASK_STEREO, channelmix_f32_5p1_2_sse, SPA_CPU_FLAG_SSE }, + { 6, MASK_5_1, 2, MASK_STEREO, channelmix_f32_5p1_2_sse, SPA_CPU_FLAG_SSE, "f32_5p1_2_sse" }, #endif - { 6, MASK_5_1, 2, MASK_STEREO, channelmix_f32_5p1_2_c, 0 }, + { 6, MASK_5_1, 2, MASK_STEREO, channelmix_f32_5p1_2_c, 0, "f32_5p1_2_c" }, #if defined (HAVE_SSE) - { 6, MASK_5_1, 4, MASK_QUAD, channelmix_f32_5p1_4_sse, SPA_CPU_FLAG_SSE }, + { 6, MASK_5_1, 4, MASK_QUAD, channelmix_f32_5p1_4_sse, SPA_CPU_FLAG_SSE, "f32_5p1_4_sse" }, #endif - { 6, MASK_5_1, 4, MASK_QUAD, channelmix_f32_5p1_4_c, 0 }, + { 6, MASK_5_1, 4, MASK_QUAD, channelmix_f32_5p1_4_c, 0, "f32_5p1_4_c" }, #if defined (HAVE_SSE) - { 6, MASK_5_1, 4, MASK_3_1, channelmix_f32_5p1_3p1_sse, SPA_CPU_FLAG_SSE }, + { 6, MASK_5_1, 4, MASK_3_1, channelmix_f32_5p1_3p1_sse, SPA_CPU_FLAG_SSE, "f32_5p1_3p1_sse" }, #endif - { 6, MASK_5_1, 4, MASK_3_1, channelmix_f32_5p1_3p1_c, 0 }, + { 6, MASK_5_1, 4, MASK_3_1, channelmix_f32_5p1_3p1_c, 0, "f32_5p1_3p1_c" }, - { 8, MASK_7_1, 2, MASK_STEREO, channelmix_f32_7p1_2_c, 0 }, - { 8, MASK_7_1, 4, MASK_QUAD, channelmix_f32_7p1_4_c, 0 }, - { 8, MASK_7_1, 4, MASK_3_1, channelmix_f32_7p1_3p1_c, 0 }, + { 8, MASK_7_1, 2, MASK_STEREO, channelmix_f32_7p1_2_c, 0, "f32_7p1_2_c" }, + { 8, MASK_7_1, 4, MASK_QUAD, channelmix_f32_7p1_4_c, 0, "f32_7p1_4_c" }, + { 8, MASK_7_1, 4, MASK_3_1, channelmix_f32_7p1_3p1_c, 0, "f32_7p1_3p1_c" }, - { ANY, 0, ANY, 0, channelmix_f32_n_m_c, 0 }, + { ANY, 0, ANY, 0, channelmix_f32_n_m_c, 0, "f32_n_m_c" }, }; #define MATCH_CHAN(a,b) ((a) == ANY || (a) == (b)) @@ -509,6 +510,8 @@ int channelmix_init(struct channelmix *mix) if (info == NULL) return -ENOTSUP; + spa_log_debug(mix->log, "selected %s", info->name); + mix->free = impl_channelmix_free; mix->process = info->process; mix->set_volume = impl_channelmix_set_volume;