pipe: Add max_slice_bytes for H264, HEVC encoding

Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26223>
This commit is contained in:
Sil Vilerino 2023-11-09 18:57:55 -05:00 committed by Marge Bot
parent 6b4010b906
commit 9ce17de1fd
2 changed files with 24 additions and 0 deletions

View file

@ -285,6 +285,18 @@ enum pipe_video_enc_intra_refresh_mode
PIPE_VIDEO_ENC_INTRA_REFRESH_MULTI_REF = 0x40000,
};
enum pipe_video_slice_mode
{
/*
* Partitions the frame using block offsets and block numbers
*/
PIPE_VIDEO_SLICE_MODE_BLOCKS = 0,
/*
* Partitions the frame using max slice size per coded slice
*/
PIPE_VIDEO_SLICE_MODE_MAX_SLICE_SICE = 1,
};
enum pipe_video_entrypoint
{
PIPE_VIDEO_ENTRYPOINT_UNKNOWN,

View file

@ -627,9 +627,15 @@ struct pipe_h264_enc_picture_desc
bool enable_vui;
struct hash_table *frame_idx;
enum pipe_video_slice_mode slice_mode;
/* Use with PIPE_VIDEO_SLICE_MODE_BLOCKS */
unsigned num_slice_descriptors;
struct h264_slice_descriptor slices_descriptors[128];
/* Use with PIPE_VIDEO_SLICE_MODE_MAX_SLICE_SICE */
unsigned max_slice_bytes;
bool insert_aud_nalu;
enum pipe_video_feedback_metadata_type requested_metadata;
};
@ -814,8 +820,14 @@ struct pipe_h265_enc_picture_desc
bool not_referenced;
struct hash_table *frame_idx;
enum pipe_video_slice_mode slice_mode;
/* Use with PIPE_VIDEO_SLICE_MODE_BLOCKS */
unsigned num_slice_descriptors;
struct h265_slice_descriptor slices_descriptors[128];
/* Use with PIPE_VIDEO_SLICE_MODE_MAX_SLICE_SICE */
unsigned max_slice_bytes;
enum pipe_video_feedback_metadata_type requested_metadata;
};