[FFmpeg-devel] [PATCH 1/3] Provided support for MPEG-5 EVC (Essential Video Coding) codec
Dawid Kozinski
d.kozinski at samsung.com
Wed Jun 22 09:48:55 EEST 2022
Prerequisites that must be met before adding new codec
- Added new entry to codec IDs list
- Added new entry to the codec descriptor list
- Bumped libavcodec minor version
- Changes in Changelog and MAINTAINERS files
Signed-off-by: Dawid Kozinski <d.kozinski at samsung.com>
---
Changelog | 3 ++-
MAINTAINERS | 2 ++
libavcodec/codec_desc.c | 8 ++++++++
libavcodec/codec_id.h | 1 +
libavcodec/profiles.c | 6 ++++++
libavcodec/profiles.h | 1 +
libavcodec/version.h | 2 +-
7 files changed, 21 insertions(+), 2 deletions(-)
diff --git a/Changelog b/Changelog
index ef589705c4..0d230bde91 100644
--- a/Changelog
+++ b/Changelog
@@ -67,7 +67,8 @@ version 5.0:
- VideoToolbox ProRes encoder
- anlmf audio filter
- IMF demuxer (experimental)
-
+- eXtra-fast Essential Video Encoder (XEVE)
+- eXtra-fast Essential Video Decoder (XEVD)
version 4.4:
- AudioToolbox output device
diff --git a/MAINTAINERS b/MAINTAINERS
index 274fc89203..4b33d3c1b2 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -205,6 +205,7 @@ Codecs:
libvpx* James Zern
libxavs.c Stefan Gehrer
libxavs2.c Huiwen Ren
+ libxev*.c, evc_parser.c Dawid Kozinski
libzvbi-teletextdec.c Marton Balint
lzo.h, lzo.c Reimar Doeffinger
mdec.c Michael Niedermayer
@@ -425,6 +426,7 @@ Muxers/Demuxers:
dv.c Roman Shaposhnik
electronicarts.c Peter Ross
epafdec.c Paul B Mahol
+ evcdec.c Dawid Kozinski
ffm* Baptiste Coudurier
flic.c Mike Melanson
flvdec.c Michael Niedermayer
diff --git a/libavcodec/codec_desc.c b/libavcodec/codec_desc.c
index e2c1c67f5e..ea6f65ee9c 100644
--- a/libavcodec/codec_desc.c
+++ b/libavcodec/codec_desc.c
@@ -1886,6 +1886,14 @@ static const AVCodecDescriptor codec_descriptors[] =
{
.long_name = NULL_IF_CONFIG_SMALL("QOI (Quite OK Image)"),
.props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
},
+ {
+ .id = AV_CODEC_ID_EVC,
+ .type = AVMEDIA_TYPE_VIDEO,
+ .name = "evc",
+ .long_name = NULL_IF_CONFIG_SMALL("MPEG-5 EVC (Essential Video
Coding)"),
+ .props = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_REORDER,
+ .profiles = NULL_IF_CONFIG_SMALL(ff_evc_profiles),
+ },
/* various PCM "codecs" */
{
diff --git a/libavcodec/codec_id.h b/libavcodec/codec_id.h
index 93856a16f2..7ed4aed861 100644
--- a/libavcodec/codec_id.h
+++ b/libavcodec/codec_id.h
@@ -311,6 +311,7 @@ enum AVCodecID {
AV_CODEC_ID_VBN,
AV_CODEC_ID_JPEGXL,
AV_CODEC_ID_QOI,
+ AV_CODEC_ID_EVC,
/* various PCM "codecs" */
AV_CODEC_ID_FIRST_AUDIO = 0x10000, ///< A dummy id pointing at the
start of audio codecs
diff --git a/libavcodec/profiles.c b/libavcodec/profiles.c
index 7af7fbeb13..a31244e0db 100644
--- a/libavcodec/profiles.c
+++ b/libavcodec/profiles.c
@@ -181,4 +181,10 @@ const AVProfile ff_arib_caption_profiles[] = {
{ FF_PROFILE_UNKNOWN }
};
+const AVProfile ff_evc_profiles[] = {
+ { FF_PROFILE_EVC_BASELINE, "Baseline" },
+ { FF_PROFILE_EVC_MAIN, "Main" },
+ { FF_PROFILE_UNKNOWN },
+};
+
#endif /* !CONFIG_SMALL */
diff --git a/libavcodec/profiles.h b/libavcodec/profiles.h
index 41a19aa9ad..cf92b5f126 100644
--- a/libavcodec/profiles.h
+++ b/libavcodec/profiles.h
@@ -72,5 +72,6 @@ extern const AVProfile ff_sbc_profiles[];
extern const AVProfile ff_prores_profiles[];
extern const AVProfile ff_mjpeg_profiles[];
extern const AVProfile ff_arib_caption_profiles[];
+extern const AVProfile ff_evc_profiles[];
#endif /* AVCODEC_PROFILES_H */
diff --git a/libavcodec/version.h b/libavcodec/version.h
index 2a08e42d7e..0ef6c991f3 100644
--- a/libavcodec/version.h
+++ b/libavcodec/version.h
@@ -29,7 +29,7 @@
#include "version_major.h"
-#define LIBAVCODEC_VERSION_MINOR 33
+#define LIBAVCODEC_VERSION_MINOR 34
#define LIBAVCODEC_VERSION_MICRO 100
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
--
2.17.1
More information about the ffmpeg-devel
mailing list