summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorxinfengz <carl.zhang@intel.com>2017-08-10 23:50:20 +0800
committerXiang, Haihao <haihao.xiang@intel.com>2017-11-21 23:27:31 -0800
commit84d4c89ed747b2647b670abf7c438e5f4ad9f3f2 (patch)
treee2e763aa092197866cc2b029f404b9dda7433c7f
parent79c0dd4dffde822ab53ffbb7d1843fbf793dc196 (diff)
downloadlibva-84d4c89ed747b2647b670abf7c438e5f4ad9f3f2.tar.gz
slide window support
slide window can reduce bit tolerance. also include encode tile support attrib Signed-off-by: Carl.Zhang <carl.zhang@intel.com>
-rw-r--r--va/va.h33
-rw-r--r--va/va_str.c2
2 files changed, 32 insertions, 3 deletions
diff --git a/va/va.h b/va/va.h
index c2ec57b..1ea9d9c 100644
--- a/va/va.h
+++ b/va/va.h
@@ -656,7 +656,12 @@ typedef enum
* If it is supported,for VP9, suggested frame resolution can be retrieved from VACodedBufferVP9Status.
*/
VAConfigAttribEncDynamicScaling = 30,
- /**
+ /**
+ * \brief frame size tolerance support
+ * it indicates the tolerance of frame size
+ */
+ VAConfigAttribFrameSizeToleranceSupport = 31,
+ /**
* \brief Encode function type for FEI.
*
* This attribute conveys whether the driver supports different function types for encode.
@@ -664,7 +669,7 @@ typedef enum
* it is for FEI entry point only.
* Default is VA_FEI_FUNCTION_ENC_PAK.
*/
- VAConfigAttribFEIFunctionType = 32,
+ VAConfigAttribFEIFunctionType = 32,
/**
* \brief Maximum number of FEI MV predictors. Read-only.
*
@@ -673,6 +678,14 @@ typedef enum
* Currently it is for FEI entry point only.
*/
VAConfigAttribFEIMVPredictors = 33,
+ /**
+ * \brief Tile Support Attribute. Read-only.
+ *
+ * This attribute conveys whether encoder is capable to support tiles.
+ * If not supported, the tile related parameters sent to encoder, such as
+ * tiling structure, should be ignored. 0 - unsupported, 1 - supported.
+ */
+ VAConfigAttribEncTileSupport = 35,
/**@}*/
VAConfigAttribTypeMax
} VAConfigAttribType;
@@ -1736,7 +1749,21 @@ typedef struct _VAEncMiscParameterRateControl
uint32_t cfs_I_frames : 1; /* I frame also follows CFS */
uint32_t enable_parallel_brc : 1;
uint32_t enable_dynamic_scaling : 1;
- uint32_t reserved : 14;
+ /** \brief Frame Tolerance Mode
+ * Indicates the tolerance the application has to variations in the frame size.
+ * For example, wireless display scenarios may require very steady bit rate to
+ * reduce buffering time. It affects the rate control algorithm used,
+ * but may or may not have an effect based on the combination of other BRC
+ * parameters. Only valid when the driver reports support for
+ * #VAConfigAttribFrameSizeToleranceSupport.
+ *
+ * equals 0 -- normal mode;
+ * equals 1 -- maps to sliding window;
+ * equals 2 -- maps to low delay mode;
+ * other -- invalid.
+ */
+ uint32_t frame_tolerance_mode : 2;
+ uint32_t reserved : 12;
} bits;
uint32_t value;
} rc_flags;
diff --git a/va/va_str.c b/va/va_str.c
index 1173bfa..17463be 100644
--- a/va/va_str.c
+++ b/va/va_str.c
@@ -108,6 +108,8 @@ const char *vaConfigAttribTypeStr(VAConfigAttribType configAttribType)
TOSTR(VAConfigAttribEncParallelRateControl);
TOSTR(VAConfigAttribEncDynamicScaling);
TOSTR(VAConfigAttribDecProcessing);
+ TOSTR(VAConfigAttribFrameSizeToleranceSupport);
+ TOSTR(VAConfigAttribEncTileSupport);
case VAConfigAttribTypeMax: break;
}
return "<unknown config attribute type>";