[FFmpeg-devel] [PATCH 2/5] lavc: add avpriv_h264_get_profile
rcombs
rcombs at rcombs.me
Thu Jun 11 07:43:09 EEST 2020
---
libavcodec/h264_parse.c | 21 +++++++++++++++++----
libavcodec/h264_parse.h | 2 ++
libavcodec/version.h | 2 +-
3 files changed, 20 insertions(+), 5 deletions(-)
diff --git a/libavcodec/h264_parse.c b/libavcodec/h264_parse.c
index 352ffea948..3069579926 100644
--- a/libavcodec/h264_parse.c
+++ b/libavcodec/h264_parse.c
@@ -528,18 +528,31 @@ int ff_h264_decode_extradata(const uint8_t *data, int size, H264ParamSets *ps,
*/
int ff_h264_get_profile(const SPS *sps)
{
- int profile = sps->profile_idc;
+ return avpriv_h264_get_profile(sps->profile_idc, sps->constraint_set_flags);
+}
+
+/**
+ * Compute profile from profile_idc and constraint_set?_flags.
+ *
+ * @param profile_idc profile_idc field from SPS
+ * @param constraint_set_flags constraint_set_flags field from SPS
+ *
+ * @return profile as defined by FF_PROFILE_H264_*
+ */
+int avpriv_h264_get_profile(int profile_idc, int constraint_set_flags)
+{
+ int profile = profile_idc;
- switch (sps->profile_idc) {
+ switch (profile_idc) {
case FF_PROFILE_H264_BASELINE:
// constraint_set1_flag set to 1
- profile |= (sps->constraint_set_flags & 1 << 1) ? FF_PROFILE_H264_CONSTRAINED : 0;
+ profile |= (constraint_set_flags & 1 << 1) ? FF_PROFILE_H264_CONSTRAINED : 0;
break;
case FF_PROFILE_H264_HIGH_10:
case FF_PROFILE_H264_HIGH_422:
case FF_PROFILE_H264_HIGH_444_PREDICTIVE:
// constraint_set3_flag set to 1
- profile |= (sps->constraint_set_flags & 1 << 3) ? FF_PROFILE_H264_INTRA : 0;
+ profile |= (constraint_set_flags & 1 << 3) ? FF_PROFILE_H264_INTRA : 0;
break;
}
diff --git a/libavcodec/h264_parse.h b/libavcodec/h264_parse.h
index 4d01620125..a1462ad8fd 100644
--- a/libavcodec/h264_parse.h
+++ b/libavcodec/h264_parse.h
@@ -90,4 +90,6 @@ int ff_h264_decode_extradata(const uint8_t *data, int size, H264ParamSets *ps,
*/
int ff_h264_get_profile(const SPS *sps);
+int avpriv_h264_get_profile(int profile_idc, int constraint_set_flags);
+
#endif /* AVCODEC_H264_PARSE_H */
diff --git a/libavcodec/version.h b/libavcodec/version.h
index 60c0f2460d..03593026b3 100644
--- a/libavcodec/version.h
+++ b/libavcodec/version.h
@@ -28,7 +28,7 @@
#include "libavutil/version.h"
#define LIBAVCODEC_VERSION_MAJOR 58
-#define LIBAVCODEC_VERSION_MINOR 92
+#define LIBAVCODEC_VERSION_MINOR 93
#define LIBAVCODEC_VERSION_MICRO 100
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
--
2.26.2
More information about the ffmpeg-devel
mailing list