lkml.org 
[lkml]   [2021]   [Feb]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v1 08/18] media: hantro: Add HEVC structures
    Date
    Add structures and context for HEVC support

    Signed-off-by: Benjamin Gaignard <benjamin.gaignard@collabora.com>
    Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com>
    Signed-off-by: Adrian Ratiu <adrian.ratiu@collabora.com>
    ---
    drivers/staging/media/hantro/hantro.h | 3 ++
    drivers/staging/media/hantro/hantro_hw.h | 35 ++++++++++++++++++++++++
    2 files changed, 38 insertions(+)

    diff --git a/drivers/staging/media/hantro/hantro.h b/drivers/staging/media/hantro/hantro.h
    index 2a566dfc2fe3..8459643657ab 100644
    --- a/drivers/staging/media/hantro/hantro.h
    +++ b/drivers/staging/media/hantro/hantro.h
    @@ -34,6 +34,7 @@ struct hantro_codec_ops;
    #define HANTRO_MPEG2_DECODER BIT(16)
    #define HANTRO_VP8_DECODER BIT(17)
    #define HANTRO_H264_DECODER BIT(18)
    +#define HANTRO_HEVC_DECODER BIT(19)
    #define HANTRO_DECODERS 0xffff0000

    #define HANTRO_G1_REV 0x6731
    @@ -224,6 +225,7 @@ struct hantro_dev {
    * @jpeg_enc: JPEG-encoding context.
    * @mpeg2_dec: MPEG-2-decoding context.
    * @vp8_dec: VP8-decoding context.
    + * @hevc_dec: HEVC-decoding context.
    */
    struct hantro_ctx {
    struct hantro_dev *dev;
    @@ -250,6 +252,7 @@ struct hantro_ctx {
    struct hantro_jpeg_enc_hw_ctx jpeg_enc;
    struct hantro_mpeg2_dec_hw_ctx mpeg2_dec;
    struct hantro_vp8_dec_hw_ctx vp8_dec;
    + struct hantro_hevc_dec_hw_ctx hevc_dec;
    };
    };

    diff --git a/drivers/staging/media/hantro/hantro_hw.h b/drivers/staging/media/hantro/hantro_hw.h
    index 34c9e4649a25..191c5ba4a599 100644
    --- a/drivers/staging/media/hantro/hantro_hw.h
    +++ b/drivers/staging/media/hantro/hantro_hw.h
    @@ -90,6 +90,41 @@ struct hantro_h264_dec_hw_ctx {
    struct hantro_h264_dec_ctrls ctrls;
    };

    +/**
    + * struct hantro_hevc_dec_ctrls
    + * @scaling: Scaling info
    + * @decode_params: Decode params
    + * @sps: SPS info
    + * @pps: PPS info
    + */
    +struct hantro_hevc_dec_ctrls {
    + const struct v4l2_ctrl_hevc_scaling_matrix *scaling;
    + const struct v4l2_ctrl_hevc_decode_params *decode_params;
    + const struct v4l2_ctrl_hevc_sps *sps;
    + const struct v4l2_ctrl_hevc_pps *pps;
    +};
    +
    +/**
    + * struct hantro_hevc_dec_hw_ctx
    + * @scaling_lists: Scaling lists buffer
    + * @tile_sizes: Tile sizes buffer
    + * @tile_filter: Tile vertical filter buffer
    + * @tile_sao: Tile SAO buffer
    + * @tile_bsd: Tile BSD control buffer
    + * @dpb: DPB
    + * @reflists: P/B0/B1 reflists
    + * @ctrls: V4L2 controls attached to a run
    + */
    +struct hantro_hevc_dec_hw_ctx {
    + struct hantro_aux_buf scaling_lists;
    + struct hantro_aux_buf tile_sizes;
    + struct hantro_aux_buf tile_filter;
    + struct hantro_aux_buf tile_sao;
    + struct hantro_aux_buf tile_bsd;
    + struct hantro_hevc_dec_ctrls ctrls;
    + unsigned int num_tile_cols_allocated;
    +};
    +
    /**
    * struct hantro_mpeg2_dec_hw_ctx
    * @qtable: Quantization table
    --
    2.25.1
    \
     
     \ /
      Last update: 2021-02-17 11:39    [W:3.353 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site