[Libva] [PATCH v1 7/9] ENC: add VME pipeline for AVC encoder

Mark Thompson sw at jkqxz.net
Sat Jan 21 23:47:51 UTC 2017


On 13/01/17 09:24, Pengfei Qu wrote:
> VME pipeline:
> add resource and surface allocation and free function
> add init table for frame mbbrc update
> add scaling kernel for AVC encoder
> add BRC init reset kernel for AVC RC logic
> add BRC frame update-kernel for AVC RC logic
> add BRC MB level update kernel for AVC RC logic
> add REF frame QA caculation and MB level const data
> add MBENC kernel for AVC encoder
> add ME kernel for AVC encoder
> add WP/SFD kernel for AVC encoder
> add kernel init/destroy function for AVC encoder
> add kernel related parameter check function for AVC
> add VME pipeline init prepare/run function for AVC encoder
> 
> Reviewed-by: Sean V Kelley<seanvk at posteo.de>
> Signed-off-by: Pengfei Qu <Pengfei.Qu at intel.com>
> ---
>  src/gen9_avc_encoder.c | 5745 ++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 5745 insertions(+)
>  create mode 100755 src/gen9_avc_encoder.c

This patch and the following one are confused about the meaning of generic_enc_codec_state.internal_rate_mode - it appears both as a VA_RC_* value (bitmask, values 0x01 to 0x20) and as an INTEL_BRC_* value (#defined like an enum, values 0-4).

It happens that both VA_RC_CBR and INTEL_BRC_CBR have the same value (2) which probably means that that mode is fine, but I think it may be having weird effects on other modes - particularly VBR because VA_RC_VBR == INTEL_BRC_AVBR (4).

- Mark


More information about the Libva mailing list