[Libva] [PATCH 00/31] Encoder Architecture Changes (Primarily AVC)

Zhao Yakui yakui.zhao at intel.com
Thu Jan 12 01:40:12 UTC 2017


On 01/11/2017 07:37 AM, Sean V Kelley wrote:
> Encoder architecture restructuring for H.264 (with some impact to HEVC now) on HSW+
> * Improvements to the shaders
> * Improvements to the B frame efficiency
> * Improvements to the low bit rate mode
> * Improved features in two stage VME/PAK pipeline
>

After checking the code, it seems that assert is used widely.
But the assert is only for the debug purpose, which causes that the 
program will abort. This doesn't make sense. It will be better that the 
failure status is returned instead of crash program.

At the same time if the NDEBUG definition is added, the check is 
disabled. In such case the driver should handle the failure scenario and 
return the failure status to upper middleware.

That is to say: The assert had better be avoided and add more check to 
check the failure status.

Thanks.

>
> Pengfei Qu (31):
>    ENC: move gpe related function into src/i965_gpe_utils.h/c
>    ENC: add common structure for AVC/HEVC encoder
>    ENC:add context init function for AVC/HEVC encoder
>    ENC: add const data/table for AVC encoder
>    ENC: add AVC kernel binary on SKL
>    ENC: add AVC common structure and functions
>    ENC: add kernel related structure and define for AVC
>    ENC: add misc parameter check for AVC encoder
>    ENC: add resource and surface allocation and free function for AVC
>      encoder
>    ENC: add init table for frame/mb brc update
>    ENC: add resource/surface allocation/free function for AVC encoder
>    ENC: add kernel media object related functions for AVC encoder
>    ENC: add scaling kernel for AVC encoder
>    ENC: add const data/table init function for AVC RC logic
>    ENC: add BRC init/reset kernel for AVC RC logic
>    ENC: add BRC frame update kernel for AVC RC logic
>    ENC: add BRC MB level update kernel for AVC RC logic
>    ENC: add REF frame QA caculation and MB level const data init for AVC
>      MBenc stage
>    ENC: MBENC kernel for AVC encoder
>    ENC: ME kernel for AVC encoder
>    ENC: WP/SFD kernel for AVC encoder
>    ENC: kernel init/destroy function for AVC encoder
>    ENC: kernel related parameter check function for AVC encoder
>    ENC: VME pipeline init/prepare/run function for AVC encoder
>    ENC: add MFX command for AVC encoder
>    ENC: add MFX command for AVC encoder
>    ENC: add MFX Picture/slice level command init for AVC encoder
>    ENC: add MFX pipeline init/prepare/run for AVC encoder
>    ENC: add VME/MFX context init for AVC encoder
>    ENC: add Misc parameter check for AVC encoder
>    ENC:support more quality level and switch to new AVC encoder solution
>      on SKL
>
>   src/Makefile.am                |    11 +
>   src/gen9_avc_const_def.c       |  1090 ++++
>   src/gen9_avc_const_def.h       |   115 +
>   src/gen9_avc_encoder.c         |  7613 ++++++++++++++++++++++++
>   src/gen9_avc_encoder.h         |  2345 ++++++++
>   src/gen9_avc_encoder_kernels.c | 12081 +++++++++++++++++++++++++++++++++++++++
>   src/gen9_avc_encoder_kernels.h |    36 +
>   src/gen9_vp9_encoder.c         |   154 +-
>   src/gen9_vp9_encoder.h         |    10 -
>   src/i965_avc_encoder_common.c  |   319 ++
>   src/i965_avc_encoder_common.h  |   305 +
>   src/i965_drv_video.c           |     8 +-
>   src/i965_drv_video.h           |     2 +
>   src/i965_encoder.c             |    39 +-
>   src/i965_encoder_api.h         |    59 +
>   src/i965_encoder_common.c      |   124 +
>   src/i965_encoder_common.h      |   533 ++
>   src/i965_gpe_utils.c           |   265 +-
>   src/i965_gpe_utils.h           |    87 +
>   19 files changed, 25026 insertions(+), 170 deletions(-)
>   create mode 100755 src/gen9_avc_const_def.c
>   create mode 100755 src/gen9_avc_const_def.h
>   create mode 100755 src/gen9_avc_encoder.c
>   create mode 100755 src/gen9_avc_encoder.h
>   create mode 100755 src/gen9_avc_encoder_kernels.c
>   create mode 100755 src/gen9_avc_encoder_kernels.h
>   create mode 100755 src/i965_avc_encoder_common.c
>   create mode 100755 src/i965_avc_encoder_common.h
>   create mode 100755 src/i965_encoder_api.h
>   create mode 100755 src/i965_encoder_common.c
>   create mode 100755 src/i965_encoder_common.h
>



More information about the Libva mailing list