diff --git a/libavfilter/af_channelmap.c b/libavfilter/af_channelmap.c
index 71d51e75945b6676e795db797facd4cf6a2e59b4..3e5cc3d7e47200a435d61390eb36fde29971cb16 100644
--- a/libavfilter/af_channelmap.c
+++ b/libavfilter/af_channelmap.c
@@ -188,7 +188,7 @@ static av_cold int channelmap_init(AVFilterContext *ctx)
             s->map[i].out_channel_idx = i;
             break;
         case MAP_ONE_STR:
-            if (!get_channel(&mapping, &in_ch, separator)) {
+            if (get_channel(&mapping, &in_ch, separator) < 0) {
                 av_log(ctx, AV_LOG_ERROR, err);
                 return AVERROR(EINVAL);
             }