h265decoder: Port to nal type classification macro
authorSeungha Yang <seungha.yang@navercorp.com>
Thu, 5 Mar 2020 08:23:34 +0000 (17:23 +0900)
committerSeungha Yang <seungha.yang@navercorp.com>
Thu, 5 Mar 2020 14:22:39 +0000 (23:22 +0900)
... and remove namespaceless macro methods from baseclass

gst-libs/gst/codecs/gsth265decoder.c
gst-libs/gst/codecs/gsth265decoder.h
sys/d3d11/gstd3d11h265dec.c

index 09ca56a..560b82d 100644 (file)
@@ -340,7 +340,7 @@ gst_h265_decoder_preprocess_slice (GstH265Decoder * self, GstH265Slice * slice)
     return FALSE;
   }
 
-  if (IS_IDR (nalu->type)) {
+  if (GST_H265_IS_NAL_TYPE_IDR (nalu->type)) {
     GST_DEBUG_OBJECT (self, "IDR nalu, clear dpb");
     gst_h265_decoder_drain (GST_VIDEO_DECODER (self));
   }
@@ -708,17 +708,20 @@ gst_h265_decoder_fill_picture_from_slice (GstH265Decoder * self,
    * 4) first picture that follows an end of sequence NAL unit in decoding order
    * 5) has HandleCraAsBlaFlag == 1 (set by external means, so not considering )
    */
-  if (IS_IDR (nalu->type) || IS_BLA (nalu->type) ||
-      (IS_CRA (nalu->type) && priv->new_bitstream) || priv->prev_nal_is_eos) {
+  if (GST_H265_IS_NAL_TYPE_IDR (nalu->type) ||
+      GST_H265_IS_NAL_TYPE_BLA (nalu->type) ||
+      (GST_H265_IS_NAL_TYPE_CRA (nalu->type) && priv->new_bitstream) ||
+      priv->prev_nal_is_eos) {
     picture->NoRaslOutputFlag = TRUE;
   }
 
-  if (IS_IRAP (nalu->type)) {
+  if (GST_H265_IS_NAL_TYPE_IRAP (nalu->type)) {
     picture->IntraPicFlag = TRUE;
     priv->associated_irap_NoRaslOutputFlag = picture->NoRaslOutputFlag;
   }
 
-  if (IS_RASL (nalu->type) && priv->associated_irap_NoRaslOutputFlag) {
+  if (GST_H265_IS_NAL_TYPE_RASL (nalu->type) &&
+      priv->associated_irap_NoRaslOutputFlag) {
     picture->output_flag = FALSE;
   } else {
     picture->output_flag = slice_hdr->pic_output_flag;
@@ -762,21 +765,24 @@ gst_h265_decoder_calculate_poc (GstH265Decoder * self,
   const GstH265NalUnit *nalu = &slice->nalu;
   const GstH265SPS *sps = priv->active_sps;
   gint32 MaxPicOrderCntLsb = 1 << (sps->log2_max_pic_order_cnt_lsb_minus4 + 4);
+  gboolean is_irap;
 
   GST_DEBUG_OBJECT (self, "decode PicOrderCntVal");
 
   priv->prev_poc_lsb = priv->poc_lsb;
   priv->prev_poc_msb = priv->poc_msb;
 
-  if (!(IS_IRAP (nalu->type) && picture->NoRaslOutputFlag)) {
+  is_irap = GST_H265_IS_NAL_TYPE_IRAP (nalu->type);
+
+  if (!(is_irap && picture->NoRaslOutputFlag)) {
     priv->prev_poc_lsb = priv->prev_tid0pic_poc_lsb;
     priv->prev_poc_msb = priv->prev_tid0pic_poc_msb;
   }
 
   /* Finding PicOrderCntMsb */
-  if (IS_IRAP (nalu->type) && picture->NoRaslOutputFlag)
+  if (is_irap && picture->NoRaslOutputFlag) {
     priv->poc_msb = 0;
-  else {
+  else {
     /* (8-1) */
     if ((slice_hdr->pic_order_cnt_lsb < priv->prev_poc_lsb) &&
         ((priv->prev_poc_lsb - slice_hdr->pic_order_cnt_lsb) >=
@@ -797,7 +803,7 @@ gst_h265_decoder_calculate_poc (GstH265Decoder * self,
       priv->poc_msb + slice_hdr->pic_order_cnt_lsb;
   priv->poc_lsb = picture->pic_order_cnt_lsb = slice_hdr->pic_order_cnt_lsb;
 
-  if (IS_IDR (nalu->type)) {
+  if (GST_H265_IS_NAL_TYPE_IDR (nalu->type)) {
     picture->pic_order_cnt = 0;
     picture->pic_order_cnt_lsb = 0;
     priv->poc_lsb = 0;
@@ -812,8 +818,8 @@ gst_h265_decoder_calculate_poc (GstH265Decoder * self,
       "PicOrderCntVal %d, (lsb %d)", picture->pic_order_cnt,
       picture->pic_order_cnt_lsb);
 
-  if (nalu->temporal_id_plus1 == 1 && !IS_RASL (nalu->type) &&
-      !IS_RADL (nalu->type) && nal_is_ref (nalu->type)) {
+  if (nalu->temporal_id_plus1 == 1 && !GST_H265_IS_NAL_TYPE_RASL (nalu->type) &&
+      !GST_H265_IS_NAL_TYPE_RADL (nalu->type) && nal_is_ref (nalu->type)) {
     priv->prev_tid0pic_poc_lsb = slice_hdr->pic_order_cnt_lsb;
     priv->prev_tid0pic_poc_msb = priv->poc_msb;
   }
@@ -962,13 +968,13 @@ gst_h265_decoder_prepare_rps (GstH265Decoder * self, const GstH265Slice * slice,
   gint i, j, k;
 
   /* if it is an irap pic, set all ref pics in dpb as unused for ref */
-  if (IS_IRAP (nalu->type) && picture->NoRaslOutputFlag) {
+  if (GST_H265_IS_NAL_TYPE_IRAP (nalu->type) && picture->NoRaslOutputFlag) {
     GST_DEBUG_OBJECT (self, "Mark all pictures in DPB as non-ref");
     gst_h265_dpb_mark_all_non_ref (priv->dpb);
   }
 
   /* Reset everything for IDR */
-  if (IS_IDR (nalu->type)) {
+  if (GST_H265_IS_NAL_TYPE_IDR (nalu->type)) {
     memset (priv->PocStCurrBefore, 0, sizeof (priv->PocStCurrBefore));
     memset (priv->PocStCurrAfter, 0, sizeof (priv->PocStCurrAfter));
     memset (priv->PocStFoll, 0, sizeof (priv->PocStFoll));
@@ -1150,7 +1156,8 @@ gst_h265_decoder_dpb_init (GstH265Decoder * self, const GstH265Slice * slice,
   const GstH265SliceHdr *slice_hdr = &slice->header;
   const GstH265NalUnit *nalu = &slice->nalu;
 
-  if (IS_IRAP (nalu->type) && picture->NoRaslOutputFlag && !priv->new_bitstream) {
+  if (GST_H265_IS_NAL_TYPE_IRAP (nalu->type) && picture->NoRaslOutputFlag
+      && !priv->new_bitstream) {
     if (nalu->type == GST_H265_NAL_SLICE_CRA_NUT)
       picture->NoOutputOfPriorPicsFlag = TRUE;
     else
@@ -1182,7 +1189,7 @@ gst_h265_decoder_start_current_picture (GstH265Decoder * self)
 
   /* Drop all RASL pictures having NoRaslOutputFlag is TRUE for the
    * associated IRAP picture */
-  if (IS_RASL (priv->current_slice.nalu.type) &&
+  if (GST_H265_IS_NAL_TYPE_RASL (priv->current_slice.nalu.type) &&
       priv->associated_irap_NoRaslOutputFlag) {
     GST_DEBUG_OBJECT (self, "Drop current picture");
     gst_h265_picture_replace (&priv->current_picture, NULL);
index 4999a0d..7c2e8d7 100644 (file)
@@ -40,24 +40,6 @@ typedef struct _GstH265Decoder GstH265Decoder;
 typedef struct _GstH265DecoderClass GstH265DecoderClass;
 typedef struct _GstH265DecoderPrivate GstH265DecoderPrivate;
 
-#define IS_IDR(nal_type) \
-  ((nal_type) == GST_H265_NAL_SLICE_IDR_W_RADL || (nal_type) == GST_H265_NAL_SLICE_IDR_N_LP)
-
-#define IS_IRAP(nal_type) \
-  ((nal_type) >= GST_H265_NAL_SLICE_BLA_W_LP && (nal_type) <= RESERVED_IRAP_NAL_TYPE_MAX)
-
-#define IS_BLA(nal_type) \
-  ((nal_type) >= GST_H265_NAL_SLICE_BLA_W_LP && (nal_type) <= GST_H265_NAL_SLICE_BLA_N_LP)
-
-#define IS_CRA(nal_type) \
-  ((nal_type) == GST_H265_NAL_SLICE_CRA_NUT)
-
-#define IS_RADL(nal_type) \
-  ((nal_type) >= GST_H265_NAL_SLICE_RADL_N && (nal_type) <= GST_H265_NAL_SLICE_RADL_R)
-
-#define IS_RASL(nal_type) \
-  ((nal_type) >= GST_H265_NAL_SLICE_RASL_N && (nal_type) <= GST_H265_NAL_SLICE_RASL_R)
-
 /**
  * GstH265Decoder:
  *
index 3adf085..1372b0e 100644 (file)
@@ -1260,9 +1260,9 @@ gst_d3d11_h265_dec_decode_slice (GstH265Decoder * decoder,
   gst_d3d11_h265_dec_fill_picture_params (self, &slice->header, &pic_params);
 
   pic_params.CurrPic.Index7Bits = view->view_id;
-  pic_params.IrapPicFlag = IS_IRAP (slice->nalu.type);
-  pic_params.IdrPicFlag = IS_IDR (slice->nalu.type);
-  pic_params.IntraPicFlag = IS_IRAP (slice->nalu.type);
+  pic_params.IrapPicFlag = GST_H265_IS_NAL_TYPE_IRAP (slice->nalu.type);
+  pic_params.IdrPicFlag = GST_H265_IS_NAL_TYPE_IDR (slice->nalu.type);
+  pic_params.IntraPicFlag = GST_H265_IS_NAL_TYPE_IRAP (slice->nalu.type);
   pic_params.CurrPicOrderCntVal = picture->pic_order_cnt;
 
   memcpy (pic_params.RefPicList, self->ref_pic_list,