diff --git a/cmdutils.c b/cmdutils.c
index 448edf53bf87e308ca64cad63e1bad59bd2b77ba..f0f1464ffa96b0b0d3061c480411b1764f5e5b07 100644
--- a/cmdutils.c
+++ b/cmdutils.c
@@ -311,7 +311,7 @@ int opt_default(const char *opt, const char *arg)
     const AVOption *oc, *of, *os;
     char opt_stripped[128];
     const char *p;
-    const AVClass *cc = avcodec_get_class(), *fc = avformat_get_class();
+    const AVClass *cc = avcodec_get_class(), *fc = avformat_get_class(), *sc;
 
     if (!(p = strchr(opt, ':')))
         p = opt + strlen(opt);
@@ -324,8 +324,8 @@ int opt_default(const char *opt, const char *arg)
     if ((of = av_opt_find(&fc, opt, NULL, 0, AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ)))
         av_dict_set(&format_opts, opt, arg, FLAGS(of));
 #if CONFIG_SWSCALE
+    sc = sws_get_class();
     if ((os = av_opt_find(&sc, opt, NULL, 0, AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ))) {
-        const AVClass *sc = sws_get_class();
         // XXX we only support sws_flags, not arbitrary sws options
         int ret = av_set_string3(sws_opts, opt, arg, 1, NULL);
         if (ret < 0) {