summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSeungha Yang <seungha@centricular.com>2023-05-11 04:53:24 +0900
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>2023-05-17 21:29:25 +0000
commite9d8bf75321a1f58157f1ed040f51bee0735cec7 (patch)
tree0708dcb78d3bb624b909beeee44b0a1acb9a4a78
parent783ebbeecbfc578feb18b0bbed287685abb9662c (diff)
downloadgstreamer-e9d8bf75321a1f58157f1ed040f51bee0735cec7.tar.gz
h264parser: Define level enum values
... and stop duplicating it Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4595>
-rw-r--r--subprojects/gst-plugins-bad/gst-libs/gst/codecparsers/gsth264parser.h31
-rw-r--r--subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.c30
-rw-r--r--subprojects/gst-plugins-bad/gst/codectimestamper/gsth264timestamper.c30
-rw-r--r--subprojects/gst-plugins-bad/gst/videoparsers/gsth264parse.c24
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;