mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-31 02:58:13 +02:00
pipe: Add pipe_h264_nal_unit_type and pipe_h265_nal_unit_type enums
This will also be useful for drivers. Reviewed-By: Sil Vilerino <sivileri@microsoft.com> Reviewed-by: Ruijing Dong <ruijing.dong@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30927>
This commit is contained in:
parent
6bf7b5bcd8
commit
20f9418478
3 changed files with 47 additions and 45 deletions
|
|
@ -31,14 +31,6 @@
|
|||
|
||||
#include "util/vl_rbsp.h"
|
||||
|
||||
enum H264NALUnitType {
|
||||
H264_NAL_SLICE = 1,
|
||||
H264_NAL_IDR_SLICE = 5,
|
||||
H264_NAL_SPS = 7,
|
||||
H264_NAL_PPS = 8,
|
||||
H264_NAL_AUD = 9,
|
||||
};
|
||||
|
||||
VAStatus
|
||||
vlVaHandleVAEncPictureParameterBufferTypeH264(vlVaDriver *drv, vlVaContext *context, vlVaBuffer *buf)
|
||||
{
|
||||
|
|
@ -511,7 +503,7 @@ static void parseEncSliceParamsH264(vlVaContext *context,
|
|||
}
|
||||
|
||||
if (nal_ref_idc != 0) {
|
||||
if (nal_unit_type == H264_NAL_IDR_SLICE) {
|
||||
if (nal_unit_type == PIPE_H264_NAL_IDR_SLICE) {
|
||||
slice->no_output_of_prior_pics_flag = vl_rbsp_u(rbsp, 1);
|
||||
slice->long_term_reference_flag = vl_rbsp_u(rbsp, 1);
|
||||
} else {
|
||||
|
|
@ -793,19 +785,19 @@ vlVaHandleVAEncPackedHeaderDataBufferTypeH264(vlVaContext *context, vlVaBuffer *
|
|||
vl_rbsp_init(&rbsp, &vlc, ~0, context->packed_header_emulation_bytes);
|
||||
|
||||
switch (nal_unit_type) {
|
||||
case H264_NAL_SLICE:
|
||||
case H264_NAL_IDR_SLICE:
|
||||
case PIPE_H264_NAL_SLICE:
|
||||
case PIPE_H264_NAL_IDR_SLICE:
|
||||
parseEncSliceParamsH264(context, &rbsp, nal_ref_idc, nal_unit_type);
|
||||
break;
|
||||
case H264_NAL_SPS:
|
||||
case PIPE_H264_NAL_SPS:
|
||||
parseEncSpsParamsH264(context, &rbsp);
|
||||
context->desc.h264enc.header_flags.sps = 1;
|
||||
break;
|
||||
case H264_NAL_PPS:
|
||||
case PIPE_H264_NAL_PPS:
|
||||
parseEncPpsParamsH264(context, &rbsp);
|
||||
context->desc.h264enc.header_flags.pps = 1;
|
||||
break;
|
||||
case H264_NAL_AUD:
|
||||
case PIPE_H264_NAL_AUD:
|
||||
context->desc.h264enc.header_flags.aud = 1;
|
||||
break;
|
||||
default:
|
||||
|
|
|
|||
|
|
@ -31,23 +31,6 @@
|
|||
|
||||
#include "util/vl_rbsp.h"
|
||||
|
||||
enum HEVCNALUnitType {
|
||||
HEVC_NAL_TRAIL_N = 0,
|
||||
HEVC_NAL_TRAIL_R = 1,
|
||||
HEVC_NAL_TSA_N = 2,
|
||||
HEVC_NAL_TSA_R = 3,
|
||||
HEVC_NAL_BLA_W_LP = 16,
|
||||
HEVC_NAL_IDR_W_RADL = 19,
|
||||
HEVC_NAL_IDR_N_LP = 20,
|
||||
HEVC_NAL_CRA_NUT = 21,
|
||||
HEVC_NAL_RSV_IRAP_VCL23 = 23,
|
||||
HEVC_NAL_VPS = 32,
|
||||
HEVC_NAL_SPS = 33,
|
||||
HEVC_NAL_PPS = 34,
|
||||
HEVC_NAL_AUD = 35,
|
||||
HEVC_NAL_PREFIX_SEI = 39,
|
||||
};
|
||||
|
||||
enum HEVCSEIPayloadType {
|
||||
MASTERING_DISPLAY_COLOUR_VOLUME = 137,
|
||||
CONTENT_LIGHT_LEVEL_INFO = 144,
|
||||
|
|
@ -655,7 +638,7 @@ static void parseEncSliceParamsH265(vlVaContext *context,
|
|||
pic->nal_unit_type = nal_unit_type;
|
||||
pic->temporal_id = temporal_id;
|
||||
|
||||
if (nal_unit_type >= HEVC_NAL_BLA_W_LP && nal_unit_type <= HEVC_NAL_RSV_IRAP_VCL23)
|
||||
if (nal_unit_type >= PIPE_H265_NAL_BLA_W_LP && nal_unit_type <= PIPE_H265_NAL_RSV_IRAP_VCL23)
|
||||
slice->no_output_of_prior_pics_flag = vl_rbsp_u(rbsp, 1);
|
||||
|
||||
vl_rbsp_ue(rbsp); /* slice_pic_parameter_set_id */
|
||||
|
|
@ -671,7 +654,7 @@ static void parseEncSliceParamsH265(vlVaContext *context,
|
|||
if (pic->output_flag_present_flag)
|
||||
slice->pic_output_flag = vl_rbsp_u(rbsp, 1);
|
||||
|
||||
if (nal_unit_type != HEVC_NAL_IDR_W_RADL && nal_unit_type != HEVC_NAL_IDR_N_LP) {
|
||||
if (nal_unit_type != PIPE_H265_NAL_IDR_W_RADL && nal_unit_type != PIPE_H265_NAL_IDR_N_LP) {
|
||||
slice->slice_pic_order_cnt_lsb = vl_rbsp_u(rbsp, seq->log2_max_pic_order_cnt_lsb_minus4 + 4);
|
||||
slice->short_term_ref_pic_set_sps_flag = vl_rbsp_u(rbsp, 1);
|
||||
if (!slice->short_term_ref_pic_set_sps_flag) {
|
||||
|
|
@ -1092,31 +1075,31 @@ vlVaHandleVAEncPackedHeaderDataBufferTypeHEVC(vlVaContext *context, vlVaBuffer *
|
|||
vl_rbsp_init(&rbsp, &vlc, ~0, context->packed_header_emulation_bytes);
|
||||
|
||||
switch (nal_unit_type) {
|
||||
case HEVC_NAL_TRAIL_N:
|
||||
case HEVC_NAL_TRAIL_R:
|
||||
case HEVC_NAL_TSA_N:
|
||||
case HEVC_NAL_TSA_R:
|
||||
case HEVC_NAL_IDR_W_RADL:
|
||||
case HEVC_NAL_IDR_N_LP:
|
||||
case HEVC_NAL_CRA_NUT:
|
||||
case PIPE_H265_NAL_TRAIL_N:
|
||||
case PIPE_H265_NAL_TRAIL_R:
|
||||
case PIPE_H265_NAL_TSA_N:
|
||||
case PIPE_H265_NAL_TSA_R:
|
||||
case PIPE_H265_NAL_IDR_W_RADL:
|
||||
case PIPE_H265_NAL_IDR_N_LP:
|
||||
case PIPE_H265_NAL_CRA_NUT:
|
||||
parseEncSliceParamsH265(context, &rbsp, nal_unit_type, temporal_id);
|
||||
break;
|
||||
case HEVC_NAL_VPS:
|
||||
case PIPE_H265_NAL_VPS:
|
||||
parseEncVpsParamsH265(context, &rbsp);
|
||||
context->desc.h265enc.header_flags.vps = 1;
|
||||
break;
|
||||
case HEVC_NAL_SPS:
|
||||
case PIPE_H265_NAL_SPS:
|
||||
parseEncSpsParamsH265(context, &rbsp);
|
||||
context->desc.h265enc.header_flags.sps = 1;
|
||||
break;
|
||||
case HEVC_NAL_PPS:
|
||||
case PIPE_H265_NAL_PPS:
|
||||
parseEncPpsParamsH265(context, &rbsp);
|
||||
context->desc.h265enc.header_flags.pps = 1;
|
||||
break;
|
||||
case HEVC_NAL_AUD:
|
||||
case PIPE_H265_NAL_AUD:
|
||||
context->desc.h265enc.header_flags.aud = 1;
|
||||
break;
|
||||
case HEVC_NAL_PREFIX_SEI:
|
||||
case PIPE_H265_NAL_PREFIX_SEI:
|
||||
parseEncSeiH265(context, &rbsp);
|
||||
break;
|
||||
default:
|
||||
|
|
|
|||
|
|
@ -126,6 +126,15 @@ enum pipe_mpeg12_field_select
|
|||
PIPE_MPEG12_FS_SECOND_BACKWARD = 0x08
|
||||
};
|
||||
|
||||
enum pipe_h264_nal_unit_type
|
||||
{
|
||||
PIPE_H264_NAL_SLICE = 1,
|
||||
PIPE_H264_NAL_IDR_SLICE= 5,
|
||||
PIPE_H264_NAL_SPS = 7,
|
||||
PIPE_H264_NAL_PPS = 8,
|
||||
PIPE_H264_NAL_AUD = 9,
|
||||
};
|
||||
|
||||
enum pipe_h264_slice_type
|
||||
{
|
||||
PIPE_H264_SLICE_TYPE_P = 0x0,
|
||||
|
|
@ -135,6 +144,24 @@ enum pipe_h264_slice_type
|
|||
PIPE_H264_SLICE_TYPE_SI = 0x4
|
||||
};
|
||||
|
||||
enum pipe_h265_nal_unit_type
|
||||
{
|
||||
PIPE_H265_NAL_TRAIL_N = 0,
|
||||
PIPE_H265_NAL_TRAIL_R = 1,
|
||||
PIPE_H265_NAL_TSA_N = 2,
|
||||
PIPE_H265_NAL_TSA_R = 3,
|
||||
PIPE_H265_NAL_BLA_W_LP = 16,
|
||||
PIPE_H265_NAL_IDR_W_RADL = 19,
|
||||
PIPE_H265_NAL_IDR_N_LP = 20,
|
||||
PIPE_H265_NAL_CRA_NUT = 21,
|
||||
PIPE_H265_NAL_RSV_IRAP_VCL23 = 23,
|
||||
PIPE_H265_NAL_VPS = 32,
|
||||
PIPE_H265_NAL_SPS = 33,
|
||||
PIPE_H265_NAL_PPS = 34,
|
||||
PIPE_H265_NAL_AUD = 35,
|
||||
PIPE_H265_NAL_PREFIX_SEI = 39,
|
||||
};
|
||||
|
||||
enum pipe_h265_slice_type
|
||||
{
|
||||
/* Values match Table 7-7 in HEVC spec
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue