diff --git a/src/gallium/frontends/va/picture_h264_enc.c b/src/gallium/frontends/va/picture_h264_enc.c index 08404d2a060..4f8c43c5375 100644 --- a/src/gallium/frontends/va/picture_h264_enc.c +++ b/src/gallium/frontends/va/picture_h264_enc.c @@ -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: diff --git a/src/gallium/frontends/va/picture_hevc_enc.c b/src/gallium/frontends/va/picture_hevc_enc.c index cb477b93778..fbdc6a7da7b 100644 --- a/src/gallium/frontends/va/picture_hevc_enc.c +++ b/src/gallium/frontends/va/picture_hevc_enc.c @@ -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: diff --git a/src/gallium/include/pipe/p_video_state.h b/src/gallium/include/pipe/p_video_state.h index c36e4f65b3c..388de21dde4 100644 --- a/src/gallium/include/pipe/p_video_state.h +++ b/src/gallium/include/pipe/p_video_state.h @@ -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