diff --git a/libswresample/rematrix.c b/libswresample/rematrix.c index 3784111854..9c7a6fa340 100644 --- a/libswresample/rematrix.c +++ b/libswresample/rematrix.c @@ -308,9 +308,9 @@ int swri_rematrix_init(SwrContext *s){ for (j = 0; j < nb_in; j++) ((int*)s->native_matrix)[i * nb_in + j] = lrintf(s->matrix[i][j] * 32768); *((int*)s->native_one) = 32768; - s->mix_1_1_f = copy_s16; - s->mix_2_1_f = sum2_s16; - s->mix_any_f = get_mix_any_func_s16(s); + s->mix_1_1_f = (mix_1_1_func_type*)copy_s16; + s->mix_2_1_f = (mix_2_1_func_type*)sum2_s16; + s->mix_any_f = (mix_any_func_type*)get_mix_any_func_s16(s); }else if(s->midbuf.fmt == AV_SAMPLE_FMT_FLTP){ s->native_matrix = av_mallocz(nb_in * nb_out * sizeof(float)); s->native_one = av_mallocz(sizeof(float)); @@ -318,9 +318,9 @@ int swri_rematrix_init(SwrContext *s){ for (j = 0; j < nb_in; j++) ((float*)s->native_matrix)[i * nb_in + j] = s->matrix[i][j]; *((float*)s->native_one) = 1.0; - s->mix_1_1_f = copy_float; - s->mix_2_1_f = sum2_float; - s->mix_any_f = get_mix_any_func_float(s); + s->mix_1_1_f = (mix_1_1_func_type*)copy_float; + s->mix_2_1_f = (mix_2_1_func_type*)sum2_float; + s->mix_any_f = (mix_any_func_type*)get_mix_any_func_float(s); }else if(s->midbuf.fmt == AV_SAMPLE_FMT_DBLP){ s->native_matrix = av_mallocz(nb_in * nb_out * sizeof(double)); s->native_one = av_mallocz(sizeof(double)); @@ -328,9 +328,9 @@ int swri_rematrix_init(SwrContext *s){ for (j = 0; j < nb_in; j++) ((double*)s->native_matrix)[i * nb_in + j] = s->matrix[i][j]; *((double*)s->native_one) = 1.0; - s->mix_1_1_f = copy_double; - s->mix_2_1_f = sum2_double; - s->mix_any_f = get_mix_any_func_double(s); + s->mix_1_1_f = (mix_1_1_func_type*)copy_double; + s->mix_2_1_f = (mix_2_1_func_type*)sum2_double; + s->mix_any_f = (mix_any_func_type*)get_mix_any_func_double(s); }else av_assert0(0); //FIXME quantize for integeres diff --git a/libswresample/rematrix_template.c b/libswresample/rematrix_template.c index f83825d5ec..b3ed87e65f 100644 --- a/libswresample/rematrix_template.c +++ b/libswresample/rematrix_template.c @@ -18,6 +18,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +typedef void (RENAME(mix_any_func_type))(SAMPLE **out, const SAMPLE **in1, COEFF *coeffp, int len); static void RENAME(sum2)(SAMPLE *out, const SAMPLE *in1, const SAMPLE *in2, COEFF *coeffp, int index1, int index2, int len){ int i; @@ -55,7 +56,7 @@ static void RENAME(mix8to2)(SAMPLE **out, const SAMPLE **in, COEFF *coeffp, int } } -static mix_any_func_type *RENAME(get_mix_any_func)(SwrContext *s){ +static RENAME(mix_any_func_type) *RENAME(get_mix_any_func)(SwrContext *s){ if( s->out_ch_layout == AV_CH_LAYOUT_STEREO && (s->in_ch_layout == AV_CH_LAYOUT_5POINT1 || s->in_ch_layout == AV_CH_LAYOUT_5POINT1_BACK) && s->matrix[0][2] == s->matrix[1][2] && s->matrix[0][3] == s->matrix[1][3] && !s->matrix[0][1] && !s->matrix[0][5] && !s->matrix[1][0] && !s->matrix[1][4]