diff --git a/libavcodec/videotoolboxenc.c b/libavcodec/videotoolboxenc.c index c3704810d2..e423da6933 100644 --- a/libavcodec/videotoolboxenc.c +++ b/libavcodec/videotoolboxenc.c @@ -1245,8 +1245,10 @@ static int vtenc_create_encoder(AVCodecContext *avctx, return AVERROR_EXTERNAL; } - if (avctx->flags & AV_CODEC_FLAG_QSCALE) { - Float32 quality = fminf(avctx->global_quality / 100.0f / FF_QP2LAMBDA, 1.0f); + if (avctx->flags & AV_CODEC_FLAG_QSCALE || avctx->global_quality > 0) { + float factor = (avctx->flags & AV_CODEC_FLAG_QSCALE) ? + FF_QP2LAMBDA * 100.0f : 100.0f; + Float32 quality = fminf(avctx->global_quality / factor, 1.0f); CFNumberRef quality_num = CFNumberCreate(kCFAllocatorDefault, kCFNumberFloat32Type, &quality);