diff options
author | Rodeo <[email protected]> | 2013-09-24 11:53:29 +0000 |
---|---|---|
committer | Rodeo <[email protected]> | 2013-09-24 11:53:29 +0000 |
commit | 84c6ccec2bb77d3cbc9440191fd24c1e858d99f9 (patch) | |
tree | 0a9e1c0ca8032c59c4a3cb235f0125c76f27efbf | |
parent | 102c5428b559d967ea6531e9202b5931401679bd (diff) |
QSV: MBBRC is actually Haswell-only.
This is confirmed by marketing material and testing with the 3257 driver on Ivy Bridge hardware.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5802 b64f7644-9d1e-0410-96f1-a4d463321fa5
-rw-r--r-- | libhb/enc_qsv.c | 12 | ||||
-rw-r--r-- | libhb/qsv_common.c | 7 | ||||
-rw-r--r-- | libhb/qsv_common.h | 7 | ||||
-rw-r--r-- | test/test.c | 3 |
4 files changed, 18 insertions, 11 deletions
diff --git a/libhb/enc_qsv.c b/libhb/enc_qsv.c index 57a5063ff..45fef910a 100644 --- a/libhb/enc_qsv.c +++ b/libhb/enc_qsv.c @@ -971,15 +971,19 @@ int encqsvInit(hb_work_object_t *w, hb_job_t *job) videoParam.mfx.FrameInfo.PicStruct); return -1; } - hb_log("encqsvInit: CAVLC %-3s RateDistortionOpt %-3s", + hb_log("encqsvInit: CAVLC %s RateDistortionOpt %s", hb_qsv_codingoption_get_name(option1->CAVLC), hb_qsv_codingoption_get_name(option1->RateDistortionOpt)); - if (hb_qsv_info->capabilities & HB_QSV_CAP_OPTION2_BRC) + if (hb_qsv_info->capabilities & HB_QSV_CAP_OPTION2_EXTBRC) { - hb_log("encqsvInit: MBBRC %-3s ExtBRC %-3s", - hb_qsv_codingoption_get_name(option2->MBBRC), + hb_log("encqsvInit: ExtBRC %s", hb_qsv_codingoption_get_name(option2->ExtBRC)); } + if (hb_qsv_info->capabilities & HB_QSV_CAP_OPTION2_MBBRC) + { + hb_log("encqsvInit: MBBRC %s", + hb_qsv_codingoption_get_name(option2->MBBRC)); + } if (hb_qsv_info->capabilities & HB_QSV_CAP_OPTION2_TRELLIS) { switch (option2->Trellis) diff --git a/libhb/qsv_common.c b/libhb/qsv_common.c index 3ea07df18..1b989c572 100644 --- a/libhb/qsv_common.c +++ b/libhb/qsv_common.c @@ -88,13 +88,14 @@ int hb_qsv_info_init() { if (HB_CHECK_MFX_VERSION(qsv_hardware_version, 1, 6)) { - hb_qsv_info->capabilities |= HB_QSV_CAP_OPTION2_BRC; hb_qsv_info->capabilities |= HB_QSV_CAP_MSDK_API_1_6; + hb_qsv_info->capabilities |= HB_QSV_CAP_OPTION2_EXTBRC; } if (hb_get_cpu_platform() == HB_CPU_PLATFORM_INTEL_HSW) { if (HB_CHECK_MFX_VERSION(qsv_hardware_version, 1, 7)) { + hb_qsv_info->capabilities |= HB_QSV_CAP_OPTION2_MBBRC; hb_qsv_info->capabilities |= HB_QSV_CAP_OPTION2_TRELLIS; hb_qsv_info->capabilities |= HB_QSV_CAP_OPTION2_LOOKAHEAD; } @@ -586,7 +587,7 @@ int hb_qsv_param_parse(hb_qsv_param_t *param, } else if (!strcasecmp(key, "mbbrc")) { - if (hb_qsv_info->capabilities & HB_QSV_CAP_OPTION2_BRC) + if (hb_qsv_info->capabilities & HB_QSV_CAP_OPTION2_MBBRC) { ivalue = hb_qsv_atoi(value, &error); if (!error) @@ -601,7 +602,7 @@ int hb_qsv_param_parse(hb_qsv_param_t *param, } else if (!strcasecmp(key, "extbrc")) { - if (hb_qsv_info->capabilities & HB_QSV_CAP_OPTION2_BRC) + if (hb_qsv_info->capabilities & HB_QSV_CAP_OPTION2_EXTBRC) { ivalue = hb_qsv_atoi(value, &error); if (!error) diff --git a/libhb/qsv_common.h b/libhb/qsv_common.h index d27e7241a..796d791b5 100644 --- a/libhb/qsv_common.h +++ b/libhb/qsv_common.h @@ -32,9 +32,10 @@ typedef struct hb_qsv_info_s int capabilities; #define HB_QSV_CAP_H264_BPYRAMID (1 << 0) // H.264: reference B-frames #define HB_QSV_CAP_MSDK_API_1_6 (1 << 1) // Support for API 1.6 or later -#define HB_QSV_CAP_OPTION2_BRC (1 << 2) // mfxExtCodingOption2: MBBRC/ExtBRC -#define HB_QSV_CAP_OPTION2_LOOKAHEAD (1 << 3) // mfxExtCodingOption2: LookAhead -#define HB_QSV_CAP_OPTION2_TRELLIS (1 << 4) // mfxExtCodingOption2: Trellis +#define HB_QSV_CAP_OPTION2_EXTBRC (1 << 2) // mfxExtCodingOption2: ExtBRC +#define HB_QSV_CAP_OPTION2_MBBRC (1 << 3) // mfxExtCodingOption2: MBBRC +#define HB_QSV_CAP_OPTION2_LOOKAHEAD (1 << 4) // mfxExtCodingOption2: LookAhead +#define HB_QSV_CAP_OPTION2_TRELLIS (1 << 5) // mfxExtCodingOption2: Trellis // TODO: add available decoders, filters, encoders, // maximum decode and encode resolution, etc. diff --git a/test/test.c b/test/test.c index 7de2561f3..b7f8e9ac2 100644 --- a/test/test.c +++ b/test/test.c @@ -4336,7 +4336,8 @@ static int ParseOptions( int argc, char ** argv ) { /* XXX: for testing workarounds */ hb_qsv_info->capabilities &= ~HB_QSV_CAP_MSDK_API_1_6; - hb_qsv_info->capabilities &= ~HB_QSV_CAP_OPTION2_BRC; + hb_qsv_info->capabilities &= ~HB_QSV_CAP_OPTION2_MBBRC; + hb_qsv_info->capabilities &= ~HB_QSV_CAP_OPTION2_EXTBRC; hb_qsv_info->capabilities &= ~HB_QSV_CAP_OPTION2_TRELLIS; hb_qsv_info->capabilities &= ~HB_QSV_CAP_OPTION2_LOOKAHEAD; } |