Currently -b_qfactor and -chromaoffset have no effect in libx264, the
attached patch is an attempt to fix the issue.
Move the corresponding lines after x264_param_default_preset() to
prevent them being overwritten by it, make the two parameters functional.
Also make b_qfactor changeable by x264's tunings after the move.
(feel free to edit the commit message as I am not a native English speaker.)
From d8597d3f708c21deae40b21754173763c5a13658 Mon Sep 17 00:00:00 2001
From: Hii <hiiragi...@gmail.com>
Date: Sat, 23 Aug 2014 17:08:02 +0800
Subject: [PATCH] libx264: fix -b_qfactor and -chromaoffset
---
libavcodec/libx264.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/libavcodec/libx264.c b/libavcodec/libx264.c
index 7793581..8aff14d 100644
--- a/libavcodec/libx264.c
+++ b/libavcodec/libx264.c
@@ -371,8 +371,6 @@ static av_cold int X264_init(AVCodecContext *avctx)
x4->params.b_deblocking_filter = avctx->flags &
CODEC_FLAG_LOOP_FILTER;
- x4->params.rc.f_pb_factor = avctx->b_quant_factor;
- x4->params.analyse.i_chroma_qp_offset = avctx->chromaoffset;
if (x4->preset || x4->tune)
if (x264_param_default_preset(&x4->params, x4->preset, x4->tune) < 0) {
int i;
@@ -430,6 +428,9 @@ static av_cold int X264_init(AVCodecContext *avctx)
if (avctx->i_quant_factor > 0)
x4->params.rc.f_ip_factor = 1 / fabs(avctx->i_quant_factor);
+ if (avctx->b_quant_factor > 0)
+ x4->params.rc.f_pb_factor = avctx->b_quant_factor;
+ x4->params.analyse.i_chroma_qp_offset = avctx->chromaoffset;
if (avctx->me_method == ME_EPZS)
x4->params.analyse.i_me_method = X264_ME_DIA;
@@ -827,6 +828,7 @@ static const AVCodecDefault x264_defaults[] = {
{ "flags2", "0" },
{ "g", "-1" },
{ "i_qfactor", "-1" },
+ { "b_qfactor", "-1" },
{ "qmin", "-1" },
{ "qmax", "-1" },
{ "qdiff", "-1" },
--
1.9.0.msysgit.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel