Make it possible to undo the effect of the private OPUS_SET_FORCE_MODE encoder ctl.
authorGregory Maxwell <greg@xiph.org>
Mon, 3 Oct 2011 00:04:28 +0000 (20:04 -0400)
committerGregory Maxwell <greg@xiph.org>
Mon, 3 Oct 2011 00:04:28 +0000 (20:04 -0400)
src/opus_encoder.c

index 5750f32..2338973 100644 (file)
@@ -1242,7 +1242,7 @@ int opus_encoder_ctl(OpusEncoder *st, int request, ...)
         case OPUS_SET_FORCE_MODE_REQUEST:
         {
             opus_int32 value = va_arg(ap, opus_int32);
-            if (value < MODE_SILK_ONLY || value > MODE_CELT_ONLY)
+            if ((value < MODE_SILK_ONLY || value > MODE_CELT_ONLY) && value != OPUS_AUTO)
                goto bad_arg;
             st->user_forced_mode = value;
         }