Skip to content

Pass more information to VP9decoder subclasses

VA-API implementation requires a bit more of information from base decoder class:

    codecs: vp9decoder: Pass parser as new_sequence() parameter.
    
    In order to know the chroma format, besides profile, subsampling_x and
    subsampling_y are needed (Spec 7.2.2 Color config semantics). These values are
    in GstVp9Parser but not in  GstVp9Framehdr.
    
    Also, bit_depth is available in parser but not frame header. Evenmore, those
    values are copied to picture structure later.
    
    In case of VA-API, to configure the pipeline, it is require to know the chroma
    format and depth.
    
    It is possible to know chroma and depth through caps coming from vp9parser, but
    it requires string parsing. It would be less error prone to get these values
    through the parser structure at new_sequence() virtual method.
    codecs: vp9decoder: Add segmentation to picture.
    
    VA-API needs AC and DC quant scales for both luma and chroma, and the loop
    filter level for current frame, but these values are not available outside
    the private GstVp9Parser structure. And these values may change from frame
    to frame, so they are picture specific.
    
    This patch add GstVp9Segmentation structure array to GstVp9Picture to expose
    it to derived classes. This approach is safer than passing the parser at
    picture handling flow.

CC: @seungha.yang, @ndufresne, @He_Junyan

Edited by Víctor Manuel Jáquez Leal

Merge request reports

Loading