summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRodeo <[email protected]>2013-09-24 23:49:44 +0000
committerRodeo <[email protected]>2013-09-24 23:49:44 +0000
commitd9897313ea70197e7c5fd8c247436839d013e087 (patch)
treee291608453349a959eb3962a269a4d7d1f13847a
parent12cceb5288f4f8179c5d18b3e97ba6eb01a01ffe (diff)
QSV: miscellaneous option-related improvements.
All user-controlled settings except GOP-related ones now have an explicit default value (it's never "unknown"). git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5812 b64f7644-9d1e-0410-96f1-a4d463321fa5
-rw-r--r--libhb/enc_qsv.c3
-rw-r--r--libhb/qsv_common.c14
2 files changed, 11 insertions, 6 deletions
diff --git a/libhb/enc_qsv.c b/libhb/enc_qsv.c
index 3b599e084..b04be1590 100644
--- a/libhb/enc_qsv.c
+++ b/libhb/enc_qsv.c
@@ -951,9 +951,10 @@ int encqsvInit(hb_work_object_t *w, hb_job_t *job)
}
switch (videoParam.mfx.FrameInfo.PicStruct)
{
+ // quiet, most people don't care
case MFX_PICSTRUCT_PROGRESSIVE:
- hb_log("encqsvInit: PicStruct progressive");
break;
+ // interlaced encoding is intended for advanced users only, who do care
case MFX_PICSTRUCT_FIELD_TFF:
hb_log("encqsvInit: PicStruct top field first");
break;
diff --git a/libhb/qsv_common.c b/libhb/qsv_common.c
index 1683264dc..eade262d9 100644
--- a/libhb/qsv_common.c
+++ b/libhb/qsv_common.c
@@ -445,18 +445,22 @@ int hb_qsv_param_parse(hb_qsv_param_t *param,
param->rc.vbv_max_bitrate = HB_QSV_CLIP3(0, UINT16_MAX, ivalue);
}
}
- else if (!strcasecmp(key, "cabac"))
+ else if (!strcasecmp(key, "cavlc") || !strcasecmp(key, "cabac"))
{
switch (vcodec)
{
case HB_VCODEC_QSV_H264:
- ivalue = !hb_qsv_atobool(value, &error);
+ ivalue = hb_qsv_atobool(value, &error);
break;
default:
return HB_QSV_PARAM_UNSUPPORTED;
}
if (!error)
{
+ if (!strcasecmp(key, "cabac"))
+ {
+ ivalue = !ivalue;
+ }
param->codingOption.CAVLC = hb_qsv_codingoption_xlat(ivalue);
}
}
@@ -577,7 +581,7 @@ int hb_qsv_param_parse(hb_qsv_param_t *param,
{
if (hb_qsv_info->capabilities & HB_QSV_CAP_OPTION2_MBBRC)
{
- ivalue = hb_qsv_atoi(value, &error);
+ ivalue = hb_qsv_atobool(value, &error);
if (!error)
{
param->codingOption2.MBBRC = hb_qsv_codingoption_xlat(ivalue);
@@ -592,7 +596,7 @@ int hb_qsv_param_parse(hb_qsv_param_t *param,
{
if (hb_qsv_info->capabilities & HB_QSV_CAP_OPTION2_EXTBRC)
{
- ivalue = hb_qsv_atoi(value, &error);
+ ivalue = hb_qsv_atobool(value, &error);
if (!error)
{
param->codingOption2.ExtBRC = hb_qsv_codingoption_xlat(ivalue);
@@ -785,7 +789,6 @@ int hb_qsv_param_default(hb_qsv_param_t *param, mfxVideoParam *videoParam)
param->codingOption.MVPrecision = 0; // reserved, must be 0
param->codingOption.EndOfSequence = MFX_CODINGOPTION_UNKNOWN;
param->codingOption.RateDistortionOpt = MFX_CODINGOPTION_UNKNOWN;
- param->codingOption.CAVLC = MFX_CODINGOPTION_UNKNOWN;
param->codingOption.ResetRefList = MFX_CODINGOPTION_UNKNOWN;
param->codingOption.MaxDecFrameBuffering = 0; // unspecified
param->codingOption.AUDelimiter = MFX_CODINGOPTION_OFF;
@@ -793,6 +796,7 @@ int hb_qsv_param_default(hb_qsv_param_t *param, mfxVideoParam *videoParam)
param->codingOption.PicTimingSEI = MFX_CODINGOPTION_OFF;
param->codingOption.VuiNalHrdParameters = MFX_CODINGOPTION_UNKNOWN;
param->codingOption.FramePicture = MFX_CODINGOPTION_UNKNOWN;
+ param->codingOption.CAVLC = MFX_CODINGOPTION_OFF;
// introduced in API 1.3
param->codingOption.RefPicMarkRep = MFX_CODINGOPTION_UNKNOWN;
param->codingOption.FieldOutput = MFX_CODINGOPTION_UNKNOWN;