diff options
author | XinfengZhang <carl.zhang@intel.com> | 2018-06-16 00:05:48 +0800 |
---|---|---|
committer | XinfengZhang <carl.zhang@intel.com> | 2019-07-08 11:26:38 +0800 |
commit | f094de317b4f498b57d47d8b0823a2a24cb125e1 (patch) | |
tree | 4a7079d78a1c25eb90e02c2b0368fa00a61d551f | |
parent | 7bbddffddb4a15f0163f89d5d87860866e850cde (diff) | |
download | libva-f094de317b4f498b57d47d8b0823a2a24cb125e1.tar.gz |
add prediction direction caps report
report which prediction direction is supported by driver
Signed-off-by: XinfengZhang <carl.zhang@intel.com>
-rwxr-xr-x | va/va.h | 25 | ||||
-rw-r--r-- | va/va_str.c | 1 |
2 files changed, 26 insertions, 0 deletions
@@ -761,6 +761,18 @@ typedef enum * attribute value \c VAConfigAttribValMaxFrameSize represent max frame size support */ VAConfigAttribMaxFrameSize = 38, + /** \brief inter frame prediction directrion attribute. Read-only. + * this attribute conveys the prediction direction (backward or forword) for specific config + * the value could be VA_PREDICTION_DIRECTION_XXXX. it can be combined with VAConfigAttribEncMaxRefFrames + * to describe reference list , and the prediction direction. if this attrib is not present,both direction + * should be supported, no restriction. + * for example: normal HEVC encoding , maximum reference frame number in reflist 0 and reflist 1 is deduced + * by VAConfigAttribEncMaxRefFrames. so there are typical P frame, B frame, + * if VAConfigAttribPredictionDirection is also present. it will stipulate prediction direction in both + * reference list. if only one prediction direction present(such as PREVIOUS),all reference frame should be + * previous frame (PoC < current). + */ + VAConfigAttribPredictionDirection = 39, /**@}*/ VAConfigAttribTypeMax } VAConfigAttribType; @@ -990,6 +1002,19 @@ typedef union _VAConfigAttribValEncJPEG { #define VA_ENC_QUANTIZATION_TRELLIS_SUPPORTED 0x00000001 /**@}*/ +/** @name Attribute values for VAConfigAttribPredictionDirection */ +/**@{*/ +/** \brief Driver support forward reference frame (inter frame for vpx, P frame for H26x MPEG) + * can work with the VAConfigAttribEncMaxRefFrames. for example: low delay B frame of HEVC. + * these value can be OR'd together. typical value should be VA_PREDICTION_DIRECTION_PREVIOUS + * or VA_PREDICTION_DIRECTION_PREVIOUS | VA_PREDICTION_DIRECTION_FUTURE, theoretically, there + * are no stream only include future reference frame. + */ +#define VA_PREDICTION_DIRECTION_PREVIOUS 0x00000001 +/** \brief Driver support backward prediction frame/slice */ +#define VA_PREDICTION_DIRECTION_FUTURE 0x00000002 +/**@}*/ + /** @name Attribute values for VAConfigAttribEncIntraRefresh */ /**@{*/ /** \brief Driver does not support intra refresh */ diff --git a/va/va_str.c b/va/va_str.c index 4ce1ea1..ffffc6a 100644 --- a/va/va_str.c +++ b/va/va_str.c @@ -124,6 +124,7 @@ const char *vaConfigAttribTypeStr(VAConfigAttribType configAttribType) TOSTR(VAConfigAttribQPBlockSize); TOSTR(VAConfigAttribStats); TOSTR(VAConfigAttribMaxFrameSize); + TOSTR(VAConfigAttribPredictionDirection); case VAConfigAttribTypeMax: break; } return "<unknown config attribute type>"; |