mbox series

[FFmpeg-devel,v1,0/5] Add support for H266/VVC encoding

Message ID 20231103095720.32426-1-thomas.ff@spin-digital.com
Headers show
Series Add support for H266/VVC encoding | expand

Message

Thomas Siedel Nov. 3, 2023, 9:57 a.m. UTC
This patch set adds H266/VVC encoding and muxing support. 
Encoding is done using the external library VVenC
(https://github.com/fraunhoferhhi/vvenc.git) and can be enabled with
--enable-libvvenc.

As the counterpart to the encoder, decoding support via the external library
VVdeC (https://github.com/fraunhoferhhi/vvdec.git) is also added in the
last patch of the patch set. It can be enabled with --enable-libvvdec.
Although a native VVC decoder is in development, this additional VVdeC
decoder can be useful for streams with VVC tools that are not supported
by the native decoder yet. 

Thomas Siedel (5):
  avcodec: add external encoder libvvenc for H266/VVC
  avformat: add muxer support for H266/VVC
  avformat: add ts stream types for H266/VVC
  avcodec: increase minor version for H266/VVC
  avcodec: add external decoder libvvdec for H266/VVC

 configure                        |   11 +-
 fftools/ffmpeg_dec.c             |    3 +-
 libavcodec/Makefile              |    2 +
 libavcodec/allcodecs.c           |    2 +
 libavcodec/libvvdec.c            |  567 +++++++++++++++++
 libavcodec/libvvenc.c            |  500 +++++++++++++++
 libavcodec/version.h             |    2 +-
 libavcodec/vvc_paramset.c        | 1005 ++++++++++++++++++++++++++++++
 libavcodec/vvc_paramset.h        |  307 +++++++++
 libavcodec/vvc_parse_extradata.c |  246 ++++++++
 libavcodec/vvc_parse_extradata.h |   36 ++
 libavformat/Makefile             |    6 +-
 libavformat/isom.c               |    1 +
 libavformat/isom_tags.c          |    3 +
 libavformat/mov.c                |    6 +
 libavformat/movenc.c             |   41 +-
 libavformat/mpeg.c               |    3 +
 libavformat/mpeg.h               |    1 +
 libavformat/mpegts.c             |    2 +
 libavformat/mpegts.h             |    1 +
 libavformat/mpegtsenc.c          |   65 ++
 libavformat/vvc.c                |  998 +++++++++++++++++++++++++++++
 libavformat/vvc.h                |   99 +++
 23 files changed, 3900 insertions(+), 7 deletions(-)
 create mode 100644 libavcodec/libvvdec.c
 create mode 100644 libavcodec/libvvenc.c
 create mode 100644 libavcodec/vvc_paramset.c
 create mode 100644 libavcodec/vvc_paramset.h
 create mode 100644 libavcodec/vvc_parse_extradata.c
 create mode 100644 libavcodec/vvc_parse_extradata.h
 create mode 100644 libavformat/vvc.c
 create mode 100644 libavformat/vvc.h