mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-26 15:00:10 +01:00
gallium: Add header_flags to pipe_h2645_enc_picture_desc
Indicates what headers should be inserted. Move pipe_h265_enc_picture_desc metadata_flags into header_flags Reviewed-by: Ruijing Dong <ruijing.dong@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30585>
This commit is contained in:
parent
a43f18dd04
commit
f8dcf15ed2
4 changed files with 20 additions and 7 deletions
|
|
@ -689,12 +689,12 @@ static void radeon_vcn_enc_hevc_get_metadata(struct radeon_encoder *enc,
|
|||
{
|
||||
memset (&enc->enc_pic.enc_sei, 0, sizeof(rvcn_enc_seidata_t));
|
||||
|
||||
if (!pic->metadata_flags.value) {
|
||||
if (!pic->header_flags.value) {
|
||||
enc->enc_pic.enc_sei.flags.value = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if (pic->metadata_flags.hdr_cll) {
|
||||
if (pic->header_flags.hdr_cll) {
|
||||
enc->enc_pic.enc_sei.flags.hdr_cll = 1;
|
||||
enc->enc_pic.enc_sei.hdr_cll = (rvcn_enc_sei_hdr_cll_t) {
|
||||
.max_cll = pic->metadata_hdr_cll.max_cll,
|
||||
|
|
@ -702,7 +702,7 @@ static void radeon_vcn_enc_hevc_get_metadata(struct radeon_encoder *enc,
|
|||
};
|
||||
}
|
||||
|
||||
if (pic->metadata_flags.hdr_mdcv) {
|
||||
if (pic->header_flags.hdr_mdcv) {
|
||||
enc->enc_pic.enc_sei.flags.hdr_mdcv = 1;
|
||||
for (int32_t i = 0; i < 3; i++) {
|
||||
enc->enc_pic.enc_sei.hdr_mdcv.primary_chromaticity_x[i]
|
||||
|
|
|
|||
|
|
@ -148,7 +148,7 @@ vlVaBeginPicture(VADriverContextP ctx, VAContextID context_id, VASurfaceID rende
|
|||
context->desc.av1enc.metadata_flags.value = 0;
|
||||
break;
|
||||
case PIPE_VIDEO_FORMAT_HEVC:
|
||||
context->desc.h265enc.metadata_flags.value = 0;
|
||||
context->desc.h265enc.header_flags.value = 0;
|
||||
break;
|
||||
case PIPE_VIDEO_FORMAT_MPEG4_AVC:
|
||||
default:
|
||||
|
|
|
|||
|
|
@ -690,7 +690,7 @@ static void parseEncSeiPayloadH265(vlVaContext *context, struct vl_rbsp *rbsp, i
|
|||
{
|
||||
switch (payloadType) {
|
||||
case MASTERING_DISPLAY_COLOUR_VOLUME:
|
||||
context->desc.h265enc.metadata_flags.hdr_mdcv = 1;
|
||||
context->desc.h265enc.header_flags.hdr_mdcv = 1;
|
||||
for (int32_t i = 0; i < 3; i++) {
|
||||
context->desc.h265enc.metadata_hdr_mdcv.primary_chromaticity_x[i] = vl_rbsp_u(rbsp, 16);
|
||||
context->desc.h265enc.metadata_hdr_mdcv.primary_chromaticity_y[i] = vl_rbsp_u(rbsp, 16);
|
||||
|
|
@ -701,7 +701,7 @@ static void parseEncSeiPayloadH265(vlVaContext *context, struct vl_rbsp *rbsp, i
|
|||
context->desc.h265enc.metadata_hdr_mdcv.luminance_min = vl_rbsp_u(rbsp, 32);
|
||||
break;
|
||||
case CONTENT_LIGHT_LEVEL_INFO:
|
||||
context->desc.h265enc.metadata_flags.hdr_cll = 1;
|
||||
context->desc.h265enc.header_flags.hdr_cll = 1;
|
||||
context->desc.h265enc.metadata_hdr_cll.max_cll= vl_rbsp_u(rbsp, 16);
|
||||
context->desc.h265enc.metadata_hdr_cll.max_fall= vl_rbsp_u(rbsp, 16);
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -689,6 +689,15 @@ struct pipe_h264_enc_picture_desc
|
|||
bool insert_aud_nalu;
|
||||
enum pipe_video_feedback_metadata_type requested_metadata;
|
||||
bool renew_headers_on_idr;
|
||||
|
||||
union {
|
||||
struct {
|
||||
uint32_t sps:1;
|
||||
uint32_t pps:1;
|
||||
uint32_t aud:1;
|
||||
};
|
||||
uint32_t value;
|
||||
} header_flags;
|
||||
};
|
||||
|
||||
struct pipe_h265_st_ref_pic_set
|
||||
|
|
@ -892,11 +901,15 @@ struct pipe_h265_enc_picture_desc
|
|||
|
||||
union {
|
||||
struct {
|
||||
uint32_t vps:1;
|
||||
uint32_t sps:1;
|
||||
uint32_t pps:1;
|
||||
uint32_t aud:1;
|
||||
uint32_t hdr_cll:1;
|
||||
uint32_t hdr_mdcv:1;
|
||||
};
|
||||
uint32_t value;
|
||||
} metadata_flags;
|
||||
} header_flags;
|
||||
|
||||
struct pipe_enc_hdr_cll metadata_hdr_cll;
|
||||
struct pipe_enc_hdr_mdcv metadata_hdr_mdcv;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue