[Mesa-dev] [PATCH 11/18] radeon/vcn: add encode begin frame

Alex Deucher alexdeucher at gmail.com
Tue Nov 7 22:53:16 UTC 2017


On Tue, Nov 7, 2017 at 4:59 PM,  <boyuan.zhang at amd.com> wrote:
> From: Boyuan Zhang <boyuan.zhang at amd.com>

Same here :)
Add implementation for begin_frame interface for VCN encode.

Alex

>
> Signed-off-by: Boyuan Zhang <boyuan.zhang at amd.com>
> ---
>  src/gallium/drivers/radeon/radeon_vcn_enc.c | 23 ++++++++++++++++++++++-
>  1 file changed, 22 insertions(+), 1 deletion(-)
>
> diff --git a/src/gallium/drivers/radeon/radeon_vcn_enc.c b/src/gallium/drivers/radeon/radeon_vcn_enc.c
> index 437c2fc..51cef7f 100644
> --- a/src/gallium/drivers/radeon/radeon_vcn_enc.c
> +++ b/src/gallium/drivers/radeon/radeon_vcn_enc.c
> @@ -126,7 +126,28 @@ static void radeon_enc_begin_frame(struct pipe_video_codec *encoder,
>                                                          struct pipe_video_buffer *source,
>                                                          struct pipe_picture_desc *picture)
>  {
> -       /* TODO*/
> +       struct radeon_encoder *enc = (struct radeon_encoder*)encoder;
> +       struct vl_video_buffer *vid_buf = (struct vl_video_buffer *)source;
> +       struct pipe_h264_enc_picture_desc *pic = (struct pipe_h264_enc_picture_desc *)picture;
> +
> +       radeon_vcn_enc_get_param(enc, pic);
> +
> +       enc->get_buffer(vid_buf->resources[0], &enc->handle, &enc->luma);
> +       enc->get_buffer(vid_buf->resources[1], NULL, &enc->chroma);
> +
> +       enc->need_feedback = false;
> +
> +       if (!enc->stream_handle) {
> +               struct rvid_buffer fb;
> +               enc->stream_handle = si_vid_alloc_stream_handle();
> +               enc->si = CALLOC_STRUCT(rvid_buffer);
> +               si_vid_create_buffer(enc->screen, enc->si, 128 * 1024, PIPE_USAGE_STAGING);
> +               si_vid_create_buffer(enc->screen, &fb, 4096, PIPE_USAGE_STAGING);
> +               enc->fb = &fb;
> +               enc->begin(enc, pic);
> +               flush(enc);
> +               si_vid_destroy_buffer(&fb);
> +       }
>  }
>
>  static void radeon_enc_encode_bitstream(struct pipe_video_codec *encoder,
> --
> 2.7.4
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list