summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRodeo <[email protected]>2013-09-24 11:53:29 +0000
committerRodeo <[email protected]>2013-09-24 11:53:29 +0000
commit84c6ccec2bb77d3cbc9440191fd24c1e858d99f9 (patch)
tree0a9e1c0ca8032c59c4a3cb235f0125c76f27efbf
parent102c5428b559d967ea6531e9202b5931401679bd (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.c12
-rw-r--r--libhb/qsv_common.c7
-rw-r--r--libhb/qsv_common.h7
-rw-r--r--test/test.c3
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;
}