diff mbox series

[FFmpeg-devel,1/3] Provided support for MPEG-5 EVC (Essential Video Coding) codec

Message ID 00ba01d88604$24d5c450$6e814cf0$@samsung.com
State New
Headers show
Series [FFmpeg-devel,1/3] Provided support for MPEG-5 EVC (Essential Video Coding) codec | expand

Checks

Context Check Description
yinshiyou/configure_loongarch64 warning Failed to apply patch
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

Dawid Kozinski June 22, 2022, 6:48 a.m. UTC
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@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(-)

Comments

Anton Khirnov July 1, 2022, 8:57 a.m. UTC | #1
Quoting Dawid Kozinski (2022-06-22 08:48:55)
> 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@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)

These should be added in the commits that are actually adding the
feature in question.

>  
>  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)"),

Your mailer broke the long line here, so the patch cannot be applied.
You must send patches in a way that does not mangle them, such as
attaching them or using git send-email.

> +        .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"                  },

Those profiles are not actually added in this patch, so this will fail
to build.
Dawid Kozinski Aug. 1, 2022, 10:03 a.m. UTC | #2
I've just created two new patches and sent them to the mailing list. 
All your comments and hints have been taken into account.

-----Original Message-----
From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of Anton Khirnov
Sent: Friday, July 1, 2022 10:57 AM
To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
Subject: Re: [FFmpeg-devel] [PATCH 1/3] Provided support for MPEG-5 EVC (Essential Video Coding) codec

Quoting Dawid Kozinski (2022-06-22 08:48:55)
> 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@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)

These should be added in the commits that are actually adding the
feature in question.

>  
>  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)"),

Your mailer broke the long line here, so the patch cannot be applied.
You must send patches in a way that does not mangle them, such as
attaching them or using git send-email.

> +        .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"                  },

Those profiles are not actually added in this patch, so this will fail
to build.
diff mbox series

Patch

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, \