mbox series

[FFmpeg-devel,v1,00/11] Add support for H266/VVC

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

Message

Thomas Siedel Oct. 19, 2022, 7:24 a.m. UTC
From: Thomas Siedel <thomas.ff@spin-digital.com>

This patch set adds H266/VVC support.
This includes parsing, muxing, demuxing, decoding and encoding.
Decoding is done using the external library VVdeC
(https://github.com/fraunhoferhhi/vvdec.git) and can be enabled with
--enable-libvvdec.
Encoding is done using the external library VVenC
(https://github.com/fraunhoferhhi/vvenc.git) and can be enabled with
--enable-libvvenc.

Thomas Siedel (11):
  avcodec: add enum types for H266/VVC
  avcodec: add cbs for H266/VVC
  avcodec: enable cbs for H266/VVC
  avcodec: add bitstream parser for H266/VVC
  avcodec: add MP4 to annexb support for H266/VVC
  avformat: add demuxer and probe support for H266/VVC
  avformat: add muxer support for H266/VVC
  avcodec: add external decoder libvvdec for H266/VVC
  avcodec: add external encoder libvvenc for H266/VVC
  avformat: add ts stream types for H266/VVC
  avcodec: increase minor version for H266/VVC

 configure                             |   16 +-
 libavcodec/Makefile                   |    6 +
 libavcodec/allcodecs.c                |    2 +
 libavcodec/bitstream_filters.c        |    2 +
 libavcodec/cbs.c                      |    6 +
 libavcodec/cbs_h2645.c                |  384 +++-
 libavcodec/cbs_h266.h                 |  791 +++++++
 libavcodec/cbs_h266_syntax_template.c | 3010 +++++++++++++++++++++++++
 libavcodec/cbs_internal.h             |    3 +-
 libavcodec/cbs_sei.c                  |   29 +
 libavcodec/h2645_parse.c              |   71 +-
 libavcodec/h266_metadata_bsf.c        |  145 ++
 libavcodec/libvvdec.c                 |  511 +++++
 libavcodec/libvvenc.c                 |  432 ++++
 libavcodec/parsers.c                  |    1 +
 libavcodec/version.h                  |    2 +-
 libavcodec/vvc.h                      |  142 ++
 libavcodec/vvc_mp4toannexb_bsf.c      |  318 +++
 libavcodec/vvc_paramset.c             |  972 ++++++++
 libavcodec/vvc_paramset.h             |  429 ++++
 libavcodec/vvc_parse_extradata.c      |  241 ++
 libavcodec/vvc_parse_extradata.h      |   36 +
 libavcodec/vvc_parser.c               |  588 +++++
 libavformat/Makefile                  |    8 +-
 libavformat/allformats.c              |    2 +
 libavformat/demux.c                   |    7 +-
 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/rawenc.c                  |   23 +
 libavformat/vvc.c                     |  918 ++++++++
 libavformat/vvc.h                     |   99 +
 libavformat/vvcdec.c                  |   61 +
 39 files changed, 9366 insertions(+), 12 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/libvvdec.c
 create mode 100644 libavcodec/libvvenc.c
 create mode 100644 libavcodec/vvc.h
 create mode 100644 libavcodec/vvc_mp4toannexb_bsf.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 libavcodec/vvc_parser.c
 create mode 100644 libavformat/vvc.c
 create mode 100644 libavformat/vvc.h
 create mode 100644 libavformat/vvcdec.c

Comments

Nuo Mi Dec. 13, 2022, 6:19 a.m. UTC | #1
Hi Thomas,
Thank you for sending the patch set.
It seems the patchset is based on
https://patchwork.ffmpeg.org/project/ffmpeg/list/?series=3487
Please do not change the author's name.

thank you



On Wed, Oct 19, 2022 at 3:26 PM <thomas.ff@spin-digital.com> wrote:

> From: Thomas Siedel <thomas.ff@spin-digital.com>
>
> This patch set adds H266/VVC support.
> This includes parsing, muxing, demuxing, decoding and encoding.
> Decoding is done using the external library VVdeC
> (https://github.com/fraunhoferhhi/vvdec.git) and can be enabled with
> --enable-libvvdec.
> Encoding is done using the external library VVenC
> (https://github.com/fraunhoferhhi/vvenc.git) and can be enabled with
> --enable-libvvenc.
>
> Thomas Siedel (11):
>   avcodec: add enum types for H266/VVC
>   avcodec: add cbs for H266/VVC
>   avcodec: enable cbs for H266/VVC
>   avcodec: add bitstream parser for H266/VVC
>   avcodec: add MP4 to annexb support for H266/VVC
>   avformat: add demuxer and probe support for H266/VVC
>   avformat: add muxer support for H266/VVC
>   avcodec: add external decoder libvvdec for H266/VVC
>   avcodec: add external encoder libvvenc for H266/VVC
>   avformat: add ts stream types for H266/VVC
>   avcodec: increase minor version for H266/VVC
>
>  configure                             |   16 +-
>  libavcodec/Makefile                   |    6 +
>  libavcodec/allcodecs.c                |    2 +
>  libavcodec/bitstream_filters.c        |    2 +
>  libavcodec/cbs.c                      |    6 +
>  libavcodec/cbs_h2645.c                |  384 +++-
>  libavcodec/cbs_h266.h                 |  791 +++++++
>  libavcodec/cbs_h266_syntax_template.c | 3010 +++++++++++++++++++++++++
>  libavcodec/cbs_internal.h             |    3 +-
>  libavcodec/cbs_sei.c                  |   29 +
>  libavcodec/h2645_parse.c              |   71 +-
>  libavcodec/h266_metadata_bsf.c        |  145 ++
>  libavcodec/libvvdec.c                 |  511 +++++
>  libavcodec/libvvenc.c                 |  432 ++++
>  libavcodec/parsers.c                  |    1 +
>  libavcodec/version.h                  |    2 +-
>  libavcodec/vvc.h                      |  142 ++
>  libavcodec/vvc_mp4toannexb_bsf.c      |  318 +++
>  libavcodec/vvc_paramset.c             |  972 ++++++++
>  libavcodec/vvc_paramset.h             |  429 ++++
>  libavcodec/vvc_parse_extradata.c      |  241 ++
>  libavcodec/vvc_parse_extradata.h      |   36 +
>  libavcodec/vvc_parser.c               |  588 +++++
>  libavformat/Makefile                  |    8 +-
>  libavformat/allformats.c              |    2 +
>  libavformat/demux.c                   |    7 +-
>  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/rawenc.c                  |   23 +
>  libavformat/vvc.c                     |  918 ++++++++
>  libavformat/vvc.h                     |   99 +
>  libavformat/vvcdec.c                  |   61 +
>  39 files changed, 9366 insertions(+), 12 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/libvvdec.c
>  create mode 100644 libavcodec/libvvenc.c
>  create mode 100644 libavcodec/vvc.h
>  create mode 100644 libavcodec/vvc_mp4toannexb_bsf.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 libavcodec/vvc_parser.c
>  create mode 100644 libavformat/vvc.c
>  create mode 100644 libavformat/vvc.h
>  create mode 100644 libavformat/vvcdec.c
>
> --
> 2.25.1
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
>
Thomas Siedel Dec. 15, 2022, 9:11 a.m. UTC | #2
On Tue, 13 Dec 2022 at 07:19, Nuo Mi <nuomi2021@gmail.com> wrote:

> Hi Thomas,
> Thank you for sending the patch set.
> It seems the patchset is based on
> https://patchwork.ffmpeg.org/project/ffmpeg/list/?series=3487
> Please do not change the author's name.
>
> thank you
>

Some code regarding VVC parsing is based on another FFmpeg fork. This fork
had been based on your patch set, it seems.
On top of this, I did additional modifications to the parsing code and
added the other code regarding format support and the decoder and encoder
integration.

It was not my intent to hide you as an author of the parsing code.
Your patch set has been in an unmerged state for over 1.5 years now without
new progress, so I assumed that these patches are kind of discontinued.
Therefore I started submitting my own patchset to get VVC integrated into
FFmpeg.
I kept your original copyright notices in libavformat/vvcdec.c and
livavcodec/vvc_parser.c.
Apart from this, I am not sure how / where else this could be documented
and how other authors can be appropriately referenced.

Could you explain in more detail what you mean by changing the author's
name?
Do you have any suggestions on what to do in this case or how to change it?


On Wed, Oct 19, 2022 at 3:26 PM <thomas.ff@spin-digital.com> wrote:
>
>> From: Thomas Siedel <thomas.ff@spin-digital.com>
>>
>> This patch set adds H266/VVC support.
>> This includes parsing, muxing, demuxing, decoding and encoding.
>> Decoding is done using the external library VVdeC
>> (https://github.com/fraunhoferhhi/vvdec.git) and can be enabled with
>> --enable-libvvdec.
>> Encoding is done using the external library VVenC
>> (https://github.com/fraunhoferhhi/vvenc.git) and can be enabled with
>> --enable-libvvenc.
>>
>> Thomas Siedel (11):
>>   avcodec: add enum types for H266/VVC
>>   avcodec: add cbs for H266/VVC
>>   avcodec: enable cbs for H266/VVC
>>   avcodec: add bitstream parser for H266/VVC
>>   avcodec: add MP4 to annexb support for H266/VVC
>>   avformat: add demuxer and probe support for H266/VVC
>>   avformat: add muxer support for H266/VVC
>>   avcodec: add external decoder libvvdec for H266/VVC
>>   avcodec: add external encoder libvvenc for H266/VVC
>>   avformat: add ts stream types for H266/VVC
>>   avcodec: increase minor version for H266/VVC
>>
>>  configure                             |   16 +-
>>  libavcodec/Makefile                   |    6 +
>>  libavcodec/allcodecs.c                |    2 +
>>  libavcodec/bitstream_filters.c        |    2 +
>>  libavcodec/cbs.c                      |    6 +
>>  libavcodec/cbs_h2645.c                |  384 +++-
>>  libavcodec/cbs_h266.h                 |  791 +++++++
>>  libavcodec/cbs_h266_syntax_template.c | 3010 +++++++++++++++++++++++++
>>  libavcodec/cbs_internal.h             |    3 +-
>>  libavcodec/cbs_sei.c                  |   29 +
>>  libavcodec/h2645_parse.c              |   71 +-
>>  libavcodec/h266_metadata_bsf.c        |  145 ++
>>  libavcodec/libvvdec.c                 |  511 +++++
>>  libavcodec/libvvenc.c                 |  432 ++++
>>  libavcodec/parsers.c                  |    1 +
>>  libavcodec/version.h                  |    2 +-
>>  libavcodec/vvc.h                      |  142 ++
>>  libavcodec/vvc_mp4toannexb_bsf.c      |  318 +++
>>  libavcodec/vvc_paramset.c             |  972 ++++++++
>>  libavcodec/vvc_paramset.h             |  429 ++++
>>  libavcodec/vvc_parse_extradata.c      |  241 ++
>>  libavcodec/vvc_parse_extradata.h      |   36 +
>>  libavcodec/vvc_parser.c               |  588 +++++
>>  libavformat/Makefile                  |    8 +-
>>  libavformat/allformats.c              |    2 +
>>  libavformat/demux.c                   |    7 +-
>>  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/rawenc.c                  |   23 +
>>  libavformat/vvc.c                     |  918 ++++++++
>>  libavformat/vvc.h                     |   99 +
>>  libavformat/vvcdec.c                  |   61 +
>>  39 files changed, 9366 insertions(+), 12 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/libvvdec.c
>>  create mode 100644 libavcodec/libvvenc.c
>>  create mode 100644 libavcodec/vvc.h
>>  create mode 100644 libavcodec/vvc_mp4toannexb_bsf.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 libavcodec/vvc_parser.c
>>  create mode 100644 libavformat/vvc.c
>>  create mode 100644 libavformat/vvc.h
>>  create mode 100644 libavformat/vvcdec.c
>>
>> --
>> 2.25.1
>>
>>
Thomas Siedel Jan. 3, 2023, 2:02 p.m. UTC | #3
On Thu, 15 Dec 2022 at 10:11, Thomas Siedel <thomas.ff@spin-digital.com>
wrote:

> On Tue, 13 Dec 2022 at 07:19, Nuo Mi <nuomi2021@gmail.com> wrote:
>
>> Hi Thomas,
>> Thank you for sending the patch set.
>> It seems the patchset is based on
>> https://patchwork.ffmpeg.org/project/ffmpeg/list/?series=3487
>> Please do not change the author's name.
>>
>> thank you
>>
>
> Some code regarding VVC parsing is based on another FFmpeg fork. This fork
> had been based on your patch set, it seems.
> On top of this, I did additional modifications to the parsing code and
> added the other code regarding format support and the decoder and encoder
> integration.
>
> It was not my intent to hide you as an author of the parsing code.
> Your patch set has been in an unmerged state for over 1.5 years now
> without new progress, so I assumed that these patches are kind of
> discontinued.
> Therefore I started submitting my own patchset to get VVC integrated into
> FFmpeg.
> I kept your original copyright notices in libavformat/vvcdec.c and
> livavcodec/vvc_parser.c.
> Apart from this, I am not sure how / where else this could be documented
> and how other authors can be appropriately referenced.
>
> Could you explain in more detail what you mean by changing the author's
> name?
> Do you have any suggestions on what to do in this case or how to change it?
>
>
I just submitted a new version of the patch set.
Among other changes, I now put you as the author of the first three
patches, as most of their content is based on your original patch set.
I made some modifications to them, so I added myself as a co-author.
For patches 4 and 5, I put you as the co-author because some of their
content is based on your original patch set, but only to a smaller extent.
All other patches are independent.

I hope that this solution is OK for you. If not, please let me know.


>
> On Wed, Oct 19, 2022 at 3:26 PM <thomas.ff@spin-digital.com> wrote:
>>
>>> From: Thomas Siedel <thomas.ff@spin-digital.com>
>>>
>>> This patch set adds H266/VVC support.
>>> This includes parsing, muxing, demuxing, decoding and encoding.
>>> Decoding is done using the external library VVdeC
>>> (https://github.com/fraunhoferhhi/vvdec.git) and can be enabled with
>>> --enable-libvvdec.
>>> Encoding is done using the external library VVenC
>>> (https://github.com/fraunhoferhhi/vvenc.git) and can be enabled with
>>> --enable-libvvenc.
>>>
>>> Thomas Siedel (11):
>>>   avcodec: add enum types for H266/VVC
>>>   avcodec: add cbs for H266/VVC
>>>   avcodec: enable cbs for H266/VVC
>>>   avcodec: add bitstream parser for H266/VVC
>>>   avcodec: add MP4 to annexb support for H266/VVC
>>>   avformat: add demuxer and probe support for H266/VVC
>>>   avformat: add muxer support for H266/VVC
>>>   avcodec: add external decoder libvvdec for H266/VVC
>>>   avcodec: add external encoder libvvenc for H266/VVC
>>>   avformat: add ts stream types for H266/VVC
>>>   avcodec: increase minor version for H266/VVC
>>>
>>>  configure                             |   16 +-
>>>  libavcodec/Makefile                   |    6 +
>>>  libavcodec/allcodecs.c                |    2 +
>>>  libavcodec/bitstream_filters.c        |    2 +
>>>  libavcodec/cbs.c                      |    6 +
>>>  libavcodec/cbs_h2645.c                |  384 +++-
>>>  libavcodec/cbs_h266.h                 |  791 +++++++
>>>  libavcodec/cbs_h266_syntax_template.c | 3010 +++++++++++++++++++++++++
>>>  libavcodec/cbs_internal.h             |    3 +-
>>>  libavcodec/cbs_sei.c                  |   29 +
>>>  libavcodec/h2645_parse.c              |   71 +-
>>>  libavcodec/h266_metadata_bsf.c        |  145 ++
>>>  libavcodec/libvvdec.c                 |  511 +++++
>>>  libavcodec/libvvenc.c                 |  432 ++++
>>>  libavcodec/parsers.c                  |    1 +
>>>  libavcodec/version.h                  |    2 +-
>>>  libavcodec/vvc.h                      |  142 ++
>>>  libavcodec/vvc_mp4toannexb_bsf.c      |  318 +++
>>>  libavcodec/vvc_paramset.c             |  972 ++++++++
>>>  libavcodec/vvc_paramset.h             |  429 ++++
>>>  libavcodec/vvc_parse_extradata.c      |  241 ++
>>>  libavcodec/vvc_parse_extradata.h      |   36 +
>>>  libavcodec/vvc_parser.c               |  588 +++++
>>>  libavformat/Makefile                  |    8 +-
>>>  libavformat/allformats.c              |    2 +
>>>  libavformat/demux.c                   |    7 +-
>>>  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/rawenc.c                  |   23 +
>>>  libavformat/vvc.c                     |  918 ++++++++
>>>  libavformat/vvc.h                     |   99 +
>>>  libavformat/vvcdec.c                  |   61 +
>>>  39 files changed, 9366 insertions(+), 12 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/libvvdec.c
>>>  create mode 100644 libavcodec/libvvenc.c
>>>  create mode 100644 libavcodec/vvc.h
>>>  create mode 100644 libavcodec/vvc_mp4toannexb_bsf.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 libavcodec/vvc_parser.c
>>>  create mode 100644 libavformat/vvc.c
>>>  create mode 100644 libavformat/vvc.h
>>>  create mode 100644 libavformat/vvcdec.c
>>>
>>> --
>>> 2.25.1
>>>
>>>
Nuo Mi Jan. 10, 2023, 2:56 a.m. UTC | #4
Hi Thomas
It works for me.

BTW, I will send out a C version of VVC native decoder very soon.
Please also help review and improve it.
Thank you.

On Tue, Jan 3, 2023 at 10:02 PM Thomas Siedel <thomas.ff@spin-digital.com>
wrote:

> On Thu, 15 Dec 2022 at 10:11, Thomas Siedel <thomas.ff@spin-digital.com>
> wrote:
>
>> On Tue, 13 Dec 2022 at 07:19, Nuo Mi <nuomi2021@gmail.com> wrote:
>>
>>> Hi Thomas,
>>> Thank you for sending the patch set.
>>> It seems the patchset is based on
>>> https://patchwork.ffmpeg.org/project/ffmpeg/list/?series=3487
>>> Please do not change the author's name.
>>>
>>> thank you
>>>
>>
>> Some code regarding VVC parsing is based on another FFmpeg fork. This
>> fork had been based on your patch set, it seems.
>> On top of this, I did additional modifications to the parsing code and
>> added the other code regarding format support and the decoder and encoder
>> integration.
>>
>> It was not my intent to hide you as an author of the parsing code.
>> Your patch set has been in an unmerged state for over 1.5 years now
>> without new progress, so I assumed that these patches are kind of
>> discontinued.
>> Therefore I started submitting my own patchset to get VVC integrated into
>> FFmpeg.
>> I kept your original copyright notices in libavformat/vvcdec.c and
>> livavcodec/vvc_parser.c.
>> Apart from this, I am not sure how / where else this could be documented
>> and how other authors can be appropriately referenced.
>>
>> Could you explain in more detail what you mean by changing the author's
>> name?
>> Do you have any suggestions on what to do in this case or how to change
>> it?
>>
>>
> I just submitted a new version of the patch set.
> Among other changes, I now put you as the author of the first three
> patches, as most of their content is based on your original patch set.
> I made some modifications to them, so I added myself as a co-author.
> For patches 4 and 5, I put you as the co-author because some of their
> content is based on your original patch set, but only to a smaller extent.
> All other patches are independent.
>
> I hope that this solution is OK for you. If not, please let me know.
>
>
>>
>> On Wed, Oct 19, 2022 at 3:26 PM <thomas.ff@spin-digital.com> wrote:
>>>
>>>> From: Thomas Siedel <thomas.ff@spin-digital.com>
>>>>
>>>> This patch set adds H266/VVC support.
>>>> This includes parsing, muxing, demuxing, decoding and encoding.
>>>> Decoding is done using the external library VVdeC
>>>> (https://github.com/fraunhoferhhi/vvdec.git) and can be enabled with
>>>> --enable-libvvdec.
>>>> Encoding is done using the external library VVenC
>>>> (https://github.com/fraunhoferhhi/vvenc.git) and can be enabled with
>>>> --enable-libvvenc.
>>>>
>>>> Thomas Siedel (11):
>>>>   avcodec: add enum types for H266/VVC
>>>>   avcodec: add cbs for H266/VVC
>>>>   avcodec: enable cbs for H266/VVC
>>>>   avcodec: add bitstream parser for H266/VVC
>>>>   avcodec: add MP4 to annexb support for H266/VVC
>>>>   avformat: add demuxer and probe support for H266/VVC
>>>>   avformat: add muxer support for H266/VVC
>>>>   avcodec: add external decoder libvvdec for H266/VVC
>>>>   avcodec: add external encoder libvvenc for H266/VVC
>>>>   avformat: add ts stream types for H266/VVC
>>>>   avcodec: increase minor version for H266/VVC
>>>>
>>>>  configure                             |   16 +-
>>>>  libavcodec/Makefile                   |    6 +
>>>>  libavcodec/allcodecs.c                |    2 +
>>>>  libavcodec/bitstream_filters.c        |    2 +
>>>>  libavcodec/cbs.c                      |    6 +
>>>>  libavcodec/cbs_h2645.c                |  384 +++-
>>>>  libavcodec/cbs_h266.h                 |  791 +++++++
>>>>  libavcodec/cbs_h266_syntax_template.c | 3010 +++++++++++++++++++++++++
>>>>  libavcodec/cbs_internal.h             |    3 +-
>>>>  libavcodec/cbs_sei.c                  |   29 +
>>>>  libavcodec/h2645_parse.c              |   71 +-
>>>>  libavcodec/h266_metadata_bsf.c        |  145 ++
>>>>  libavcodec/libvvdec.c                 |  511 +++++
>>>>  libavcodec/libvvenc.c                 |  432 ++++
>>>>  libavcodec/parsers.c                  |    1 +
>>>>  libavcodec/version.h                  |    2 +-
>>>>  libavcodec/vvc.h                      |  142 ++
>>>>  libavcodec/vvc_mp4toannexb_bsf.c      |  318 +++
>>>>  libavcodec/vvc_paramset.c             |  972 ++++++++
>>>>  libavcodec/vvc_paramset.h             |  429 ++++
>>>>  libavcodec/vvc_parse_extradata.c      |  241 ++
>>>>  libavcodec/vvc_parse_extradata.h      |   36 +
>>>>  libavcodec/vvc_parser.c               |  588 +++++
>>>>  libavformat/Makefile                  |    8 +-
>>>>  libavformat/allformats.c              |    2 +
>>>>  libavformat/demux.c                   |    7 +-
>>>>  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/rawenc.c                  |   23 +
>>>>  libavformat/vvc.c                     |  918 ++++++++
>>>>  libavformat/vvc.h                     |   99 +
>>>>  libavformat/vvcdec.c                  |   61 +
>>>>  39 files changed, 9366 insertions(+), 12 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/libvvdec.c
>>>>  create mode 100644 libavcodec/libvvenc.c
>>>>  create mode 100644 libavcodec/vvc.h
>>>>  create mode 100644 libavcodec/vvc_mp4toannexb_bsf.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 libavcodec/vvc_parser.c
>>>>  create mode 100644 libavformat/vvc.c
>>>>  create mode 100644 libavformat/vvc.h
>>>>  create mode 100644 libavformat/vvcdec.c
>>>>
>>>> --
>>>> 2.25.1
>>>>
>>>>
mypopy@gmail.com Jan. 10, 2023, 11:08 a.m. UTC | #5
On Tue, Jan 10, 2023 at 10:56 AM Nuo Mi <nuomi2021@gmail.com> wrote:
>
> Hi Thomas
> It works for me.
>
> BTW, I will send out a C version of VVC native decoder very soon.
> Please also help review and improve it.
> Thank you.
Ha, it's great news
>
> On Tue, Jan 3, 2023 at 10:02 PM Thomas Siedel <thomas.ff@spin-digital.com>
> wrote:
>
> > On Thu, 15 Dec 2022 at 10:11, Thomas Siedel <thomas.ff@spin-digital.com>
> > wrote:
> >
> >> On Tue, 13 Dec 2022 at 07:19, Nuo Mi <nuomi2021@gmail.com> wrote:
> >>
> >>> Hi Thomas,
> >>> Thank you for sending the patch set.
> >>> It seems the patchset is based on
> >>> https://patchwork.ffmpeg.org/project/ffmpeg/list/?series=3487
> >>> Please do not change the author's name.
> >>>
> >>> thank you
> >>>
> >>
> >> Some code regarding VVC parsing is based on another FFmpeg fork. This
> >> fork had been based on your patch set, it seems.
> >> On top of this, I did additional modifications to the parsing code and
> >> added the other code regarding format support and the decoder and encoder
> >> integration.
> >>
> >> It was not my intent to hide you as an author of the parsing code.
> >> Your patch set has been in an unmerged state for over 1.5 years now
> >> without new progress, so I assumed that these patches are kind of
> >> discontinued.
> >> Therefore I started submitting my own patchset to get VVC integrated into
> >> FFmpeg.
> >> I kept your original copyright notices in libavformat/vvcdec.c and
> >> livavcodec/vvc_parser.c.
> >> Apart from this, I am not sure how / where else this could be documented
> >> and how other authors can be appropriately referenced.
> >>
> >> Could you explain in more detail what you mean by changing the author's
> >> name?
> >> Do you have any suggestions on what to do in this case or how to change
> >> it?
> >>
> >>
> > I just submitted a new version of the patch set.
> > Among other changes, I now put you as the author of the first three
> > patches, as most of their content is based on your original patch set.
> > I made some modifications to them, so I added myself as a co-author.
> > For patches 4 and 5, I put you as the co-author because some of their
> > content is based on your original patch set, but only to a smaller extent.
> > All other patches are independent.
> >
> > I hope that this solution is OK for you. If not, please let me know.
> >
> >
> >>
> >> On Wed, Oct 19, 2022 at 3:26 PM <thomas.ff@spin-digital.com> wrote:
> >>>
> >>>> From: Thomas Siedel <thomas.ff@spin-digital.com>
> >>>>
> >>>> This patch set adds H266/VVC support.
> >>>> This includes parsing, muxing, demuxing, decoding and encoding.
> >>>> Decoding is done using the external library VVdeC
> >>>> (https://github.com/fraunhoferhhi/vvdec.git) and can be enabled with
> >>>> --enable-libvvdec.
> >>>> Encoding is done using the external library VVenC
> >>>> (https://github.com/fraunhoferhhi/vvenc.git) and can be enabled with
> >>>> --enable-libvvenc.
> >>>>
> >>>> Thomas Siedel (11):
> >>>>   avcodec: add enum types for H266/VVC
> >>>>   avcodec: add cbs for H266/VVC
> >>>>   avcodec: enable cbs for H266/VVC
> >>>>   avcodec: add bitstream parser for H266/VVC
> >>>>   avcodec: add MP4 to annexb support for H266/VVC
> >>>>   avformat: add demuxer and probe support for H266/VVC
> >>>>   avformat: add muxer support for H266/VVC
> >>>>   avcodec: add external decoder libvvdec for H266/VVC
> >>>>   avcodec: add external encoder libvvenc for H266/VVC
> >>>>   avformat: add ts stream types for H266/VVC
> >>>>   avcodec: increase minor version for H266/VVC
> >>>>
> >>>>  configure                             |   16 +-
> >>>>  libavcodec/Makefile                   |    6 +
> >>>>  libavcodec/allcodecs.c                |    2 +
> >>>>  libavcodec/bitstream_filters.c        |    2 +
> >>>>  libavcodec/cbs.c                      |    6 +
> >>>>  libavcodec/cbs_h2645.c                |  384 +++-
> >>>>  libavcodec/cbs_h266.h                 |  791 +++++++
> >>>>  libavcodec/cbs_h266_syntax_template.c | 3010 +++++++++++++++++++++++++
> >>>>  libavcodec/cbs_internal.h             |    3 +-
> >>>>  libavcodec/cbs_sei.c                  |   29 +
> >>>>  libavcodec/h2645_parse.c              |   71 +-
> >>>>  libavcodec/h266_metadata_bsf.c        |  145 ++
> >>>>  libavcodec/libvvdec.c                 |  511 +++++
> >>>>  libavcodec/libvvenc.c                 |  432 ++++
> >>>>  libavcodec/parsers.c                  |    1 +
> >>>>  libavcodec/version.h                  |    2 +-
> >>>>  libavcodec/vvc.h                      |  142 ++
> >>>>  libavcodec/vvc_mp4toannexb_bsf.c      |  318 +++
> >>>>  libavcodec/vvc_paramset.c             |  972 ++++++++
> >>>>  libavcodec/vvc_paramset.h             |  429 ++++
> >>>>  libavcodec/vvc_parse_extradata.c      |  241 ++
> >>>>  libavcodec/vvc_parse_extradata.h      |   36 +
> >>>>  libavcodec/vvc_parser.c               |  588 +++++
> >>>>  libavformat/Makefile                  |    8 +-
> >>>>  libavformat/allformats.c              |    2 +
> >>>>  libavformat/demux.c                   |    7 +-
> >>>>  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/rawenc.c                  |   23 +
> >>>>  libavformat/vvc.c                     |  918 ++++++++
> >>>>  libavformat/vvc.h                     |   99 +
> >>>>  libavformat/vvcdec.c                  |   61 +
> >>>>  39 files changed, 9366 insertions(+), 12 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/libvvdec.c
> >>>>  create mode 100644 libavcodec/libvvenc.c
> >>>>  create mode 100644 libavcodec/vvc.h
> >>>>  create mode 100644 libavcodec/vvc_mp4toannexb_bsf.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 libavcodec/vvc_parser.c
> >>>>  create mode 100644 libavformat/vvc.c
> >>>>  create mode 100644 libavformat/vvc.h
> >>>>  create mode 100644 libavformat/vvcdec.c
> >>>>
> >>>> --
> >>>> 2.25.1
> >>>>
> >>>>