From e9d8bf75321a1f58157f1ed040f51bee0735cec7 Mon Sep 17 00:00:00 2001 From: Seungha Yang Date: Thu, 11 May 2023 04:53:24 +0900 Subject: h264parser: Define level enum values ... and stop duplicating it Part-of: --- .../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/subprojects/gst-plugins-bad/gst-libs/gst/codecparsers/gsth264parser.h b/subprojects/gst-plugins-bad/gst-libs/gst/codecparsers/gsth264parser.h index 895733afc7..08b8ebe610 100644 --- a/subprojects/gst-plugins-bad/gst-libs/gst/codecparsers/gsth264parser.h +++ b/subprojects/gst-plugins-bad/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/subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.c b/subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.c index 07224fd9fc..8d752bde41 100644 --- a/subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.c +++ b/subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.c @@ -2218,33 +2218,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; @@ -2276,7 +2252,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++) { @@ -2395,7 +2371,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/subprojects/gst-plugins-bad/gst/codectimestamper/gsth264timestamper.c b/subprojects/gst-plugins-bad/gst/codectimestamper/gsth264timestamper.c index 0b1f553971..22a5c8e048 100644 --- a/subprojects/gst-plugins-bad/gst/codectimestamper/gsth264timestamper.c +++ b/subprojects/gst-plugins-bad/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/subprojects/gst-plugins-bad/gst/videoparsers/gsth264parse.c b/subprojects/gst-plugins-bad/gst/videoparsers/gsth264parse.c index bdb2c5ccdd..fb0145bbcb 100644 --- a/subprojects/gst-plugins-bad/gst/videoparsers/gsth264parse.c +++ b/subprojects/gst-plugins-bad/gst/videoparsers/gsth264parse.c @@ -2042,30 +2042,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; -- cgit v1.2.1