diff options
-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>"; |