[FFmpeg-cvslog] libvpx: check if CQ level is in correct bounds
slhck
git at videolan.org
Mon Feb 25 20:51:20 CET 2013
ffmpeg | branch: master | slhck <werner.robitza at gmail.com> | Mon Feb 25 19:23:55 2013 +0100| [bfcc38ef4815229e0aa9d8417611e0f666bb4fc7] | committer: Michael Niedermayer
libvpx: check if CQ level is in correct bounds
Check whether CQ level is within qmin..qmax and abort on error. If this isn't properly
set, encoding will fail at the first frame.
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=bfcc38ef4815229e0aa9d8417611e0f666bb4fc7
---
libavcodec/libvpxenc.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/libavcodec/libvpxenc.c b/libavcodec/libvpxenc.c
index ed038ab..04ea031 100644
--- a/libavcodec/libvpxenc.c
+++ b/libavcodec/libvpxenc.c
@@ -289,6 +289,16 @@ static av_cold int vpx_init(AVCodecContext *avctx,
enccfg.rc_min_quantizer = avctx->qmin;
if (avctx->qmax > 0)
enccfg.rc_max_quantizer = avctx->qmax;
+
+ if (enccfg.rc_end_usage == VPX_CQ) {
+ if (ctx->crf < enccfg.rc_min_quantizer || ctx->crf > enccfg.rc_max_quantizer) {
+ av_log(avctx, AV_LOG_ERROR,
+ "CQ level must be between minimum and maximum quantizer value (%d-%d)\n",
+ enccfg.rc_min_quantizer, enccfg.rc_max_quantizer);
+ return AVERROR(EINVAL);
+ }
+ }
+
enccfg.rc_dropframe_thresh = avctx->frame_skip_threshold;
//0-100 (0 => CBR, 100 => VBR)
More information about the ffmpeg-cvslog
mailing list