[x264-devel] Fix possible issues with out-of-spec QP values
Anton Mitrofanov
git at videolan.org
Thu Nov 8 23:43:32 CET 2012
x264 | branch: master | Anton Mitrofanov <BugMaster at narod.ru> | Fri Nov 9 02:31:10 2012 +0400| [1cffe9f406cc54f4759fc9eeb85598fb8cae66c7] | committer: Jason Garrett-Glaser
Fix possible issues with out-of-spec QP values
Fixes a possible regression in r2228.
> http://git.videolan.org/gitweb.cgi/x264.git/?a=commit;h=1cffe9f406cc54f4759fc9eeb85598fb8cae66c7
---
common/set.c | 2 +-
encoder/analyse.c | 2 +-
encoder/encoder.c | 1 +
3 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/common/set.c b/common/set.c
index 56da025..da25bcb 100644
--- a/common/set.c
+++ b/common/set.c
@@ -241,7 +241,7 @@ int x264_cqm_init( x264_t *h )
if( !h->mb.b_lossless )
{
- while( h->chroma_qp_table[h->param.rc.i_qp_min] <= max_chroma_qp_err )
+ while( h->chroma_qp_table[SPEC_QP(h->param.rc.i_qp_min)] <= max_chroma_qp_err )
h->param.rc.i_qp_min++;
if( min_qp_err <= h->param.rc.i_qp_max )
h->param.rc.i_qp_max = min_qp_err-1;
diff --git a/encoder/analyse.c b/encoder/analyse.c
index 0577b7a..52f1940 100644
--- a/encoder/analyse.c
+++ b/encoder/analyse.c
@@ -2922,7 +2922,7 @@ static inline void x264_mb_analyse_qp_rd( x264_t *h, x264_mb_analysis_t *a )
{
if( !origcbp )
{
- h->mb.i_qp = X264_MAX( h->mb.i_qp - threshold - 1, h->param.rc.i_qp_min );
+ h->mb.i_qp = X264_MAX( h->mb.i_qp - threshold - 1, SPEC_QP( h->param.rc.i_qp_min ) );
h->mb.i_chroma_qp = h->chroma_qp_table[h->mb.i_qp];
already_checked_cost = x264_rd_cost_mb( h, a->i_lambda2 );
if( !h->mb.cbp[h->mb.i_mb_xy] )
diff --git a/encoder/encoder.c b/encoder/encoder.c
index 8ec9260..c8460d2 100644
--- a/encoder/encoder.c
+++ b/encoder/encoder.c
@@ -2239,6 +2239,7 @@ static int x264_slice_write( x264_t *h )
/* Set the QP equal to the first QP in the slice for more accurate CABAC initialization. */
h->mb.i_mb_xy = h->sh.i_first_mb;
h->sh.i_qp = x264_ratecontrol_mb_qp( h );
+ h->sh.i_qp = SPEC_QP( h->sh.i_qp );
h->sh.i_qp_delta = h->sh.i_qp - h->pps->i_pic_init_qp;
x264_slice_header_write( &h->out.bs, &h->sh, h->i_nal_ref_idc );
More information about the x264-devel
mailing list