On 12/21/2020 3:07 AM, Nuo Mi wrote:
---
libavcodec/avcodec.h | 2 ++
libavcodec/codec_desc.c | 8 ++++++++
libavcodec/codec_id.h | 2 ++
libavcodec/profiles.c | 5 +++++
libavcodec/profiles.h | 1 +
5 files changed, 18 insertions(+)
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index 1d3099d50a..f7ea4d5849 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -1961,6 +1961,8 @@ typedef struct AVCodecContext {
#define FF_PROFILE_HEVC_MAIN_STILL_PICTURE 3
#define FF_PROFILE_HEVC_REXT 4
+#define FF_PROFILE_H266_MAIN_10 1
We should decide first what we are going to use, if VVC or h266.
My suggestion was to use VVC for decoder, parser, demuxer and public
defines, which is what's exposed to the user, and h266 for CBS, which
makes things simpler to implement and is proper consider it's written
using the ITU spec.
+
#define FF_PROFILE_AV1_MAIN 0
#define FF_PROFILE_AV1_HIGH 1
#define FF_PROFILE_AV1_PROFESSIONAL 2
diff --git a/libavcodec/codec_desc.c b/libavcodec/codec_desc.c
index 404c460f8f..62fe0f453d 100644
--- a/libavcodec/codec_desc.c
+++ b/libavcodec/codec_desc.c
@@ -1426,6 +1426,14 @@ static const AVCodecDescriptor codec_descriptors[] = {
.long_name = NULL_IF_CONFIG_SMALL("Microsoft Paint (MSP) version 2"),
.props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
},
+ {
+ .id = AV_CODEC_ID_H266,
+ .type = AVMEDIA_TYPE_VIDEO,
+ .name = "h266",
Ditto.
+ .long_name = NULL_IF_CONFIG_SMALL("H.266 / VVC (Versatile Video
Coding)"),
+ .props = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_REORDER,
+ .profiles = NULL_IF_CONFIG_SMALL(ff_h266_profiles),
+ },
{
.id = AV_CODEC_ID_Y41P,
.type = AVMEDIA_TYPE_VIDEO,
diff --git a/libavcodec/codec_id.h b/libavcodec/codec_id.h
index 6133e03bb9..7a8a896bfe 100644
--- a/libavcodec/codec_id.h
+++ b/libavcodec/codec_id.h
@@ -244,6 +244,8 @@ enum AVCodecID {
AV_CODEC_ID_PGX,
AV_CODEC_ID_AVS3,
AV_CODEC_ID_MSP2,
+ AV_CODEC_ID_VVC,
+#define AV_CODEC_ID_H266 AV_CODEC_ID_VVC
This chunk is good as is.
AV_CODEC_ID_Y41P = 0x8000,
AV_CODEC_ID_AVRP,
diff --git a/libavcodec/profiles.c b/libavcodec/profiles.c
index e59a3a5c12..710f2c01e2 100644
--- a/libavcodec/profiles.c
+++ b/libavcodec/profiles.c
@@ -74,6 +74,11 @@ const AVProfile ff_h264_profiles[] = {
{ FF_PROFILE_UNKNOWN },
};
+const AVProfile ff_h266_profiles[] = {
+ { FF_PROFILE_H266_MAIN_10, "Main 10" },
+ { FF_PROFILE_UNKNOWN },
+};
+
const AVProfile ff_hevc_profiles[] = {
{ FF_PROFILE_HEVC_MAIN, "Main" },
{ FF_PROFILE_HEVC_MAIN_10, "Main 10" },
diff --git a/libavcodec/profiles.h b/libavcodec/profiles.h
index 6baaba5701..7a353dbf3d 100644
--- a/libavcodec/profiles.h
+++ b/libavcodec/profiles.h
@@ -60,6 +60,7 @@ extern const AVProfile ff_aac_profiles[];
extern const AVProfile ff_dca_profiles[];
extern const AVProfile ff_dnxhd_profiles[];
extern const AVProfile ff_h264_profiles[];
+extern const AVProfile ff_h266_profiles[];
extern const AVProfile ff_hevc_profiles[];
extern const AVProfile ff_jpeg2000_profiles[];
extern const AVProfile ff_mpeg2_video_profiles[];
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".