From 84c6ccec2bb77d3cbc9440191fd24c1e858d99f9 Mon Sep 17 00:00:00 2001 From: Rodeo Date: Tue, 24 Sep 2013 11:53:29 +0000 Subject: 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 --- libhb/enc_qsv.c | 12 ++++++++---- libhb/qsv_common.c | 7 ++++--- libhb/qsv_common.h | 7 ++++--- 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; } -- cgit v1.2.3