]> granicus.if.org Git - handbrake/commitdiff
qsv: range as 0-63
authormaxd <maxim.d33@gmail.com>
Mon, 4 Dec 2017 18:21:03 +0000 (19:21 +0100)
committerScott <628593+sr55@users.noreply.github.com>
Mon, 4 Dec 2017 18:55:01 +0000 (18:55 +0000)
libhb/enc_qsv.c

index 228eb401c06931f3befd49c5435b631d3251f8a2..05771b7e5b5ce27a2470d8c71beec79230c63ceb 100644 (file)
@@ -980,18 +980,16 @@ int encqsvInit(hb_work_object_t *w, hb_job_t *job)
             // introduced in API 1.1
             // HEVC 10b has QP range as [-12;51] 
             // with shift +12 needed to be in QSV's U16 range
-            unsigned int low_limit = 0;
-            unsigned int shift     = 0;
+            unsigned int upper_limit = 51;
 
             if (pv->param.videoParam->mfx.CodecProfile == MFX_PROFILE_HEVC_MAIN10)
             {
-                low_limit = -12;
-                shift     = 12;
+                upper_limit = 63;
             }
             pv->param.videoParam->mfx.RateControlMethod = MFX_RATECONTROL_CQP;
-            pv->param.videoParam->mfx.QPI = HB_QSV_CLIP3(low_limit, 51, job->vquality + pv->param.rc.cqp_offsets[0]) + shift;
-            pv->param.videoParam->mfx.QPP = HB_QSV_CLIP3(low_limit, 51, job->vquality + pv->param.rc.cqp_offsets[1]) + shift;
-            pv->param.videoParam->mfx.QPB = HB_QSV_CLIP3(low_limit, 51, job->vquality + pv->param.rc.cqp_offsets[2]) + shift;
+            pv->param.videoParam->mfx.QPI = HB_QSV_CLIP3(0, upper_limit, job->vquality + pv->param.rc.cqp_offsets[0]);
+            pv->param.videoParam->mfx.QPP = HB_QSV_CLIP3(0, upper_limit, job->vquality + pv->param.rc.cqp_offsets[1]);
+            pv->param.videoParam->mfx.QPB = HB_QSV_CLIP3(0, upper_limit, job->vquality + pv->param.rc.cqp_offsets[2]);
 
             // CQP + ExtBRC can cause bad output
             pv->param.codingOption2.ExtBRC = MFX_CODINGOPTION_OFF;