mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 07:08:04 +02: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));
|
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;
|
enc->enc_pic.enc_sei.flags.value = 0;
|
||||||
return;
|
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.flags.hdr_cll = 1;
|
||||||
enc->enc_pic.enc_sei.hdr_cll = (rvcn_enc_sei_hdr_cll_t) {
|
enc->enc_pic.enc_sei.hdr_cll = (rvcn_enc_sei_hdr_cll_t) {
|
||||||
.max_cll = pic->metadata_hdr_cll.max_cll,
|
.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;
|
enc->enc_pic.enc_sei.flags.hdr_mdcv = 1;
|
||||||
for (int32_t i = 0; i < 3; i++) {
|
for (int32_t i = 0; i < 3; i++) {
|
||||||
enc->enc_pic.enc_sei.hdr_mdcv.primary_chromaticity_x[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;
|
context->desc.av1enc.metadata_flags.value = 0;
|
||||||
break;
|
break;
|
||||||
case PIPE_VIDEO_FORMAT_HEVC:
|
case PIPE_VIDEO_FORMAT_HEVC:
|
||||||
context->desc.h265enc.metadata_flags.value = 0;
|
context->desc.h265enc.header_flags.value = 0;
|
||||||
break;
|
break;
|
||||||
case PIPE_VIDEO_FORMAT_MPEG4_AVC:
|
case PIPE_VIDEO_FORMAT_MPEG4_AVC:
|
||||||
default:
|
default:
|
||||||
|
|
|
||||||
|
|
@ -690,7 +690,7 @@ static void parseEncSeiPayloadH265(vlVaContext *context, struct vl_rbsp *rbsp, i
|
||||||
{
|
{
|
||||||
switch (payloadType) {
|
switch (payloadType) {
|
||||||
case MASTERING_DISPLAY_COLOUR_VOLUME:
|
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++) {
|
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_x[i] = vl_rbsp_u(rbsp, 16);
|
||||||
context->desc.h265enc.metadata_hdr_mdcv.primary_chromaticity_y[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);
|
context->desc.h265enc.metadata_hdr_mdcv.luminance_min = vl_rbsp_u(rbsp, 32);
|
||||||
break;
|
break;
|
||||||
case CONTENT_LIGHT_LEVEL_INFO:
|
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_cll= vl_rbsp_u(rbsp, 16);
|
||||||
context->desc.h265enc.metadata_hdr_cll.max_fall= vl_rbsp_u(rbsp, 16);
|
context->desc.h265enc.metadata_hdr_cll.max_fall= vl_rbsp_u(rbsp, 16);
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
|
|
@ -689,6 +689,15 @@ struct pipe_h264_enc_picture_desc
|
||||||
bool insert_aud_nalu;
|
bool insert_aud_nalu;
|
||||||
enum pipe_video_feedback_metadata_type requested_metadata;
|
enum pipe_video_feedback_metadata_type requested_metadata;
|
||||||
bool renew_headers_on_idr;
|
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
|
struct pipe_h265_st_ref_pic_set
|
||||||
|
|
@ -892,11 +901,15 @@ struct pipe_h265_enc_picture_desc
|
||||||
|
|
||||||
union {
|
union {
|
||||||
struct {
|
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_cll:1;
|
||||||
uint32_t hdr_mdcv:1;
|
uint32_t hdr_mdcv:1;
|
||||||
};
|
};
|
||||||
uint32_t value;
|
uint32_t value;
|
||||||
} metadata_flags;
|
} header_flags;
|
||||||
|
|
||||||
struct pipe_enc_hdr_cll metadata_hdr_cll;
|
struct pipe_enc_hdr_cll metadata_hdr_cll;
|
||||||
struct pipe_enc_hdr_mdcv metadata_hdr_mdcv;
|
struct pipe_enc_hdr_mdcv metadata_hdr_mdcv;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue