diff --git a/libavresample/audio_mix.c b/libavresample/audio_mix.c
index 7ed32d80df387a125af6c882be47f99e0c5aff35..c701bf154be4a90c17d39d924f25296dd30e5220 100644
--- a/libavresample/audio_mix.c
+++ b/libavresample/audio_mix.c
@@ -284,11 +284,12 @@ static void mix_2_to_6_fltp_flt_c(float **samples, float **matrix, int len,
 
 static int mix_function_init(AudioMix *am)
 {
+    am->func_descr = am->func_descr_generic = "n/a";
+    am->mix = am->mix_generic = NULL;
+
     /* no need to set a mix function when we're skipping mixing */
-    if (!am->in_matrix_channels || !am->out_matrix_channels) {
-        am->func_descr = "n/a";
+    if (!am->in_matrix_channels || !am->out_matrix_channels)
         return 0;
-    }
 
     /* any-to-any C versions */