From 97575d37f6f584211553f5637b8b517762acb408 Mon Sep 17 00:00:00 2001 From: Seungha Yang Date: Thu, 11 May 2023 04:53:24 +0900 Subject: [PATCH 41/68] h264parser: Define level enum values ... and stop duplicating it Part-of: Upstream-Status: Backport --- gst-libs/gst/codecparsers/gsth264parser.h | 31 +++++++++++++++++++++++ gst-libs/gst/codecs/gsth264decoder.c | 30 +++------------------- gst/codectimestamper/gsth264timestamper.c | 30 +++------------------- gst/videoparsers/gsth264parse.c | 24 ------------------ 4 files changed, 37 insertions(+), 78 deletions(-) diff --git a/gst-libs/gst/codecparsers/gsth264parser.h b/gst-libs/gst/codecparsers/gsth264parser.h index eb99b6a..f18a1f0 100644 --- a/gst-libs/gst/codecparsers/gsth264parser.h +++ b/gst-libs/gst/codecparsers/gsth264parser.h @@ -352,6 +352,37 @@ typedef enum GST_H264_CT_TYPE_UNKNOWN = 2, } GstCtType; +/** + * GstH264Level: + * + * H.264 level + * + * Since: 1.24 + */ +typedef enum +{ + GST_H264_LEVEL_L1 = 10, + GST_H264_LEVEL_L1B = 9, + GST_H264_LEVEL_L1_1 = 11, + GST_H264_LEVEL_L1_2 = 12, + GST_H264_LEVEL_L1_3 = 13, + GST_H264_LEVEL_L2_0 = 20, + GST_H264_LEVEL_L2_1 = 21, + GST_H264_LEVEL_L2_2 = 22, + GST_H264_LEVEL_L3 = 30, + GST_H264_LEVEL_L3_1 = 31, + GST_H264_LEVEL_L3_2 = 32, + GST_H264_LEVEL_L4 = 40, + GST_H264_LEVEL_L4_1 = 41, + GST_H264_LEVEL_L4_2 = 42, + GST_H264_LEVEL_L5 = 50, + GST_H264_LEVEL_L5_1 = 51, + GST_H264_LEVEL_L5_2 = 52, + GST_H264_LEVEL_L6 = 60, + GST_H264_LEVEL_L6_1 = 61, + GST_H264_LEVEL_L6_2 = 62, +} GstH264Level; + typedef struct _GstH264NalParser GstH264NalParser; typedef struct _GstH264NalUnit GstH264NalUnit; diff --git a/gst-libs/gst/codecs/gsth264decoder.c b/gst-libs/gst/codecs/gsth264decoder.c index fc7d3a1..576e77c 100644 --- a/gst-libs/gst/codecs/gsth264decoder.c +++ b/gst-libs/gst/codecs/gsth264decoder.c @@ -2220,33 +2220,9 @@ gst_h264_decoder_get_max_num_reorder_frames (GstH264Decoder * self, return max_dpb_size; } -typedef enum -{ - GST_H264_LEVEL_L1 = 10, - GST_H264_LEVEL_L1B = 9, - GST_H264_LEVEL_L1_1 = 11, - GST_H264_LEVEL_L1_2 = 12, - GST_H264_LEVEL_L1_3 = 13, - GST_H264_LEVEL_L2_0 = 20, - GST_H264_LEVEL_L2_1 = 21, - GST_H264_LEVEL_L2_2 = 22, - GST_H264_LEVEL_L3 = 30, - GST_H264_LEVEL_L3_1 = 31, - GST_H264_LEVEL_L3_2 = 32, - GST_H264_LEVEL_L4 = 40, - GST_H264_LEVEL_L4_1 = 41, - GST_H264_LEVEL_L4_2 = 42, - GST_H264_LEVEL_L5 = 50, - GST_H264_LEVEL_L5_1 = 51, - GST_H264_LEVEL_L5_2 = 52, - GST_H264_LEVEL_L6 = 60, - GST_H264_LEVEL_L6_1 = 61, - GST_H264_LEVEL_L6_2 = 62, -} GstH264DecoderLevel; - typedef struct { - GstH264DecoderLevel level; + GstH264Level level; guint32 max_mbps; guint32 max_fs; @@ -2278,7 +2254,7 @@ static const LevelLimits level_limits_map[] = { }; static gint -h264_level_to_max_dpb_mbs (GstH264DecoderLevel level) +h264_level_to_max_dpb_mbs (GstH264Level level) { gint i; for (i = 0; i < G_N_ELEMENTS (level_limits_map); i++) { @@ -2397,7 +2373,7 @@ gst_h264_decoder_process_sps (GstH264Decoder * self, GstH264SPS * sps) level = 9; } - max_dpb_mbs = h264_level_to_max_dpb_mbs ((GstH264DecoderLevel) level); + max_dpb_mbs = h264_level_to_max_dpb_mbs ((GstH264Level) level); if (!max_dpb_mbs) return GST_FLOW_ERROR; diff --git a/gst/codectimestamper/gsth264timestamper.c b/gst/codectimestamper/gsth264timestamper.c index d4f136d..8e73dc2 100644 --- a/gst/codectimestamper/gsth264timestamper.c +++ b/gst/codectimestamper/gsth264timestamper.c @@ -194,33 +194,9 @@ gst_h264_timestamper_set_caps (GstCodecTimestamper * timestamper, return TRUE; } -typedef enum -{ - GST_H264_LEVEL_L1 = 10, - GST_H264_LEVEL_L1B = 9, - GST_H264_LEVEL_L1_1 = 11, - GST_H264_LEVEL_L1_2 = 12, - GST_H264_LEVEL_L1_3 = 13, - GST_H264_LEVEL_L2_0 = 20, - GST_H264_LEVEL_L2_1 = 21, - GST_H264_LEVEL_L2_2 = 22, - GST_H264_LEVEL_L3 = 30, - GST_H264_LEVEL_L3_1 = 31, - GST_H264_LEVEL_L3_2 = 32, - GST_H264_LEVEL_L4 = 40, - GST_H264_LEVEL_L4_1 = 41, - GST_H264_LEVEL_L4_2 = 42, - GST_H264_LEVEL_L5 = 50, - GST_H264_LEVEL_L5_1 = 51, - GST_H264_LEVEL_L5_2 = 52, - GST_H264_LEVEL_L6 = 60, - GST_H264_LEVEL_L6_1 = 61, - GST_H264_LEVEL_L6_2 = 62, -} GstH264DecoderLevel; - typedef struct { - GstH264DecoderLevel level; + GstH264Level level; guint32 max_mbps; guint32 max_fs; @@ -252,7 +228,7 @@ static const LevelLimits level_limits_map[] = { }; static guint -h264_level_to_max_dpb_mbs (GstH264DecoderLevel level) +h264_level_to_max_dpb_mbs (GstH264Level level) { gint i; for (i = 0; i < G_N_ELEMENTS (level_limits_map); i++) { @@ -283,7 +259,7 @@ gst_h264_timestamper_process_sps (GstH264Timestamper * self, GstH264SPS * sps) level = 9; } - max_dpb_mbs = h264_level_to_max_dpb_mbs ((GstH264DecoderLevel) level); + max_dpb_mbs = h264_level_to_max_dpb_mbs ((GstH264Level) level); if (sps->vui_parameters_present_flag && sps->vui_parameters.bitstream_restriction_flag) { max_dpb_frames = MAX (1, sps->vui_parameters.max_dec_frame_buffering); diff --git a/gst/videoparsers/gsth264parse.c b/gst/videoparsers/gsth264parse.c index 8bb47f9..f8b22df 100644 --- a/gst/videoparsers/gsth264parse.c +++ b/gst/videoparsers/gsth264parse.c @@ -2040,30 +2040,6 @@ get_level_string (GstH264SPS * sps) } } -typedef enum -{ - GST_H264_LEVEL_L1 = 10, - GST_H264_LEVEL_L1B = 9, - GST_H264_LEVEL_L1_1 = 11, - GST_H264_LEVEL_L1_2 = 12, - GST_H264_LEVEL_L1_3 = 13, - GST_H264_LEVEL_L2_0 = 20, - GST_H264_LEVEL_L2_1 = 21, - GST_H264_LEVEL_L2_2 = 22, - GST_H264_LEVEL_L3 = 30, - GST_H264_LEVEL_L3_1 = 31, - GST_H264_LEVEL_L3_2 = 32, - GST_H264_LEVEL_L4 = 40, - GST_H264_LEVEL_L4_1 = 41, - GST_H264_LEVEL_L4_2 = 42, - GST_H264_LEVEL_L5 = 50, - GST_H264_LEVEL_L5_1 = 51, - GST_H264_LEVEL_L5_2 = 52, - GST_H264_LEVEL_L6 = 60, - GST_H264_LEVEL_L6_1 = 61, - GST_H264_LEVEL_L6_2 = 62, -} GstH264Level; - typedef struct { GstH264Level level; -- 2.25.1