mbox series

[FFmpeg-devel,v4,0/9] add vvc raw demuxer, muxer, parser, metadata bsf

Message ID 20210125141507.11012-1-nuomi2021@gmail.com
Headers show
Series add vvc raw demuxer, muxer, parser, metadata bsf | expand

Message

Nuo Mi Jan. 25, 2021, 2:14 p.m. UTC
Major Changes since v3:
Test 61 more new clips from VTM 11, all passed the passthrough test.
Add and test VPS.
Use the new SEI framework.
Use the new CBSBSFContext base class

Misc changes:
Make h266_ceil as inline function
Infer vui when it's not existed.
Infer vui_chroma_sample_loc_type_frame
Remove sps_subpic, tile_info, and slice_info function
Ignore value in reserved bits
Change VVC_MAX_TILE_ROWS to VVC_MAX_TILES_PER_AU
Change get_bits_count/put_bits_count to bit_position
Replace VVC_MAX_PLANES with MAX_SAMPLE_ARRAYS

Nuo Mi (9):
  avcodec/vvc: add shared header for vvc
  avformat: add vvc raw demux
  avcodec: add SEI enum for vvc
  avcodec: add cbs for h266/vvc
  avcodec/h2645_parse: add nal header parser for h266/vvc
  avcodec: add vvc parser
  avformat: add h266/vvc muxer
  avcodec/cbs_h2645: vvc, do not skip nals for nuh_layer_id > 0
  avcodec: add vvc metadata bsf

 configure                             |    4 +
 libavcodec/Makefile                   |    3 +
 libavcodec/bitstream_filters.c        |    1 +
 libavcodec/cbs.c                      |    6 +
 libavcodec/cbs_h2645.c                |  425 +++-
 libavcodec/cbs_h266.h                 |  812 +++++++
 libavcodec/cbs_h266_syntax_template.c | 3006 +++++++++++++++++++++++++
 libavcodec/cbs_internal.h             |    3 +-
 libavcodec/cbs_sei.c                  |   29 +
 libavcodec/h2645_parse.c              |   74 +-
 libavcodec/h266_metadata_bsf.c        |  227 ++
 libavcodec/parsers.c                  |    1 +
 libavcodec/vvc.h                      |  142 ++
 libavcodec/vvc_parser.c               |  299 +++
 libavcodec/vvc_sei.h                  |   47 +
 libavformat/Makefile                  |    2 +
 libavformat/allformats.c              |    2 +
 libavformat/rawenc.c                  |   25 +
 libavformat/vvcdec.c                  |   61 +
 19 files changed, 5163 insertions(+), 6 deletions(-)
 create mode 100644 libavcodec/cbs_h266.h
 create mode 100644 libavcodec/cbs_h266_syntax_template.c
 create mode 100644 libavcodec/h266_metadata_bsf.c
 create mode 100644 libavcodec/vvc.h
 create mode 100644 libavcodec/vvc_parser.c
 create mode 100644 libavcodec/vvc_sei.h
 create mode 100644 libavformat/vvcdec.c

Comments

Nuo Mi Jan. 25, 2021, 2:24 p.m. UTC | #1
On Mon, Jan 25, 2021 at 10:16 PM Nuo Mi <nuomi2021@gmail.com> wrote:

> Major Changes since v3:
> Test 61 more new clips from VTM 11, all passed the passthrough test.
> Add and test VPS.
> Use the new SEI framework.
> Use the new CBSBSFContext base class
>
One more: detect au start in vvc_metadata filter.

>
> Misc changes:
> Make h266_ceil as inline function
> Infer vui when it's not existed.
> Infer vui_chroma_sample_loc_type_frame
> Remove sps_subpic, tile_info, and slice_info function
> Ignore value in reserved bits
> Change VVC_MAX_TILE_ROWS to VVC_MAX_TILES_PER_AU
> Change get_bits_count/put_bits_count to bit_position
> Replace VVC_MAX_PLANES with MAX_SAMPLE_ARRAYS
>
> Nuo Mi (9):
>   avcodec/vvc: add shared header for vvc
>   avformat: add vvc raw demux
>   avcodec: add SEI enum for vvc
>   avcodec: add cbs for h266/vvc
>   avcodec/h2645_parse: add nal header parser for h266/vvc
>   avcodec: add vvc parser
>   avformat: add h266/vvc muxer
>   avcodec/cbs_h2645: vvc, do not skip nals for nuh_layer_id > 0
>   avcodec: add vvc metadata bsf
>
>  configure                             |    4 +
>  libavcodec/Makefile                   |    3 +
>  libavcodec/bitstream_filters.c        |    1 +
>  libavcodec/cbs.c                      |    6 +
>  libavcodec/cbs_h2645.c                |  425 +++-
>  libavcodec/cbs_h266.h                 |  812 +++++++
>  libavcodec/cbs_h266_syntax_template.c | 3006 +++++++++++++++++++++++++
>  libavcodec/cbs_internal.h             |    3 +-
>  libavcodec/cbs_sei.c                  |   29 +
>  libavcodec/h2645_parse.c              |   74 +-
>  libavcodec/h266_metadata_bsf.c        |  227 ++
>  libavcodec/parsers.c                  |    1 +
>  libavcodec/vvc.h                      |  142 ++
>  libavcodec/vvc_parser.c               |  299 +++
>  libavcodec/vvc_sei.h                  |   47 +
>  libavformat/Makefile                  |    2 +
>  libavformat/allformats.c              |    2 +
>  libavformat/rawenc.c                  |   25 +
>  libavformat/vvcdec.c                  |   61 +
>  19 files changed, 5163 insertions(+), 6 deletions(-)
>  create mode 100644 libavcodec/cbs_h266.h
>  create mode 100644 libavcodec/cbs_h266_syntax_template.c
>  create mode 100644 libavcodec/h266_metadata_bsf.c
>  create mode 100644 libavcodec/vvc.h
>  create mode 100644 libavcodec/vvc_parser.c
>  create mode 100644 libavcodec/vvc_sei.h
>  create mode 100644 libavformat/vvcdec.c
>
> --
> 2.25.1
>
>
Nuo Mi Feb. 11, 2021, 2:36 p.m. UTC | #2
Major changes since v4:
* Remove active_xps in CodedBitstreamH266Context
* Add H266AuDetector in CodedBitstreamH266Context. It's needed by h266_metadata_update_fragment and cbs_h2645_unit_requires_zero_byte

Misc:
* Correct raw muxer extesion from .hevc to .vvc.
* Fixed missed cbs_sei_h266_types in ff_cbs_sei_find_type
* Remove sei emulation since we can use generic sei.h

Mark Thompson (1):
  cbs_h2645: refact, use cbs_h2645_replace_ps to replace
    cbs_h26*_replace_*ps

Nuo Mi (9):
  avcodec/vvc: add shared header for vvc
  avformat: add vvc raw demux
  cbs_h2645: refact, allow INVALID_OFFSET for id_offset and
    active_offset
  avcodec: add cbs for h266/vvc
  avcodec/h2645_parse: add nal header parser for h266/vvc
  avcodec: add vvc parser
  avformat: add h266/vvc muxer
  avcodec/cbs_h2645: vvc, do not skip nals for nuh_layer_id > 0
  avcodec: add vvc metadata bsf

 configure                             |    4 +
 libavcodec/Makefile                   |    3 +
 libavcodec/bitstream_filters.c        |    1 +
 libavcodec/cbs.c                      |    6 +
 libavcodec/cbs_h2645.c                |  752 ++++++-
 libavcodec/cbs_h266.h                 |  817 +++++++
 libavcodec/cbs_h266_syntax_template.c | 3006 +++++++++++++++++++++++++
 libavcodec/cbs_internal.h             |    3 +-
 libavcodec/cbs_sei.c                  |   29 +
 libavcodec/h2645_parse.c              |   74 +-
 libavcodec/h266_metadata_bsf.c        |  129 ++
 libavcodec/parsers.c                  |    1 +
 libavcodec/vvc.h                      |  142 ++
 libavcodec/vvc_parser.c               |  310 +++
 libavformat/Makefile                  |    2 +
 libavformat/allformats.c              |    2 +
 libavformat/rawenc.c                  |   25 +
 libavformat/vvcdec.c                  |   61 +
 18 files changed, 5314 insertions(+), 53 deletions(-)
 create mode 100644 libavcodec/cbs_h266.h
 create mode 100644 libavcodec/cbs_h266_syntax_template.c
 create mode 100644 libavcodec/h266_metadata_bsf.c
 create mode 100644 libavcodec/vvc.h
 create mode 100644 libavcodec/vvc_parser.c
 create mode 100644 libavformat/vvcdec.c