From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id C03CA45B51 for ; Tue, 21 Mar 2023 15:01:47 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id F269068C558; Tue, 21 Mar 2023 17:01:43 +0200 (EET) Received: from mail-ed1-f42.google.com (mail-ed1-f42.google.com [209.85.208.42]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B603568C53F for ; Tue, 21 Mar 2023 17:01:37 +0200 (EET) Received: by mail-ed1-f42.google.com with SMTP id t5so24056987edd.7 for ; Tue, 21 Mar 2023 08:01:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=spin-digital-com.20210112.gappssmtp.com; s=20210112; t=1679410897; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc:subject:date:message-id:reply-to; bh=EzblV982TBL4+5XFSbEM5nRWuxV3ygkJyJ+9YIu+FsU=; b=kFb1mlx+pJu6OZ/QjDfSHhwW3/l3Zv0SR/HFaAA1g1jC1xL+oJxRugPibuAanHFnR/ ZZwif7l/PCzZUG6cspFzJann0egRM5FdJer1OWgFz8Q/6gd1OdMtSmgy0fPOccH2ebCV PfthCgJUaXGl+Kn8leEiB4IBbn1j8u32DUCV6e1U5rd4SblW4CdIVLTH35aaeat2o46P 8mYrQIwKUWj4ra2fv5nstxXJVqV+EM+jGRpcL1r829ogrZm2Sxesj4VbyhUFPYUtVHzN uMvfoOsowonvmBW6RXxubiiojz8u/fjPPxN5/efE4EEJZS+sN1TO/0Vt4vWiF/wnxfrr ciyw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679410897; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=EzblV982TBL4+5XFSbEM5nRWuxV3ygkJyJ+9YIu+FsU=; b=aDu0IH0H2wYer+8Zg6AQS1eYc59sRkRcpYDX8sd1K0oZlVICPu9WbnoLsZCjrZT/Zw qm59uA/n6CGeefe2J5oSIRHAMaK2QK1u1sUALKCXimctE3MXf+cReuQZBmKFvYatV1QS fGsje+wk9l3JC0eSKAJYJjDhSUs+fd2TYl6rlLCPB4BRE21Mnvo9Wnk0ZLyg2OcdwnfG 6VXAz/Fbsiks3sT+zeFqkeSwaBv9acRZKijsNF8LFbsq1uy67Ely/UEujBMmPZ+w7DUO ETpvkissPtDoFKeJ/I3Rp1K1CcoAcmkB5bdSpG2JRLPsOlKtoi7NSw5DzwGX/ujZdmmp 6oVQ== X-Gm-Message-State: AO0yUKUcoZsytZ7LQHeIqb8GJXXygtcq7K9xQcyHayO6DkwnThCxekbb TDP54QErpMopcim/L2FM3/FiC3NnusWm3KfU1C4= X-Google-Smtp-Source: AK7set82L+uh63BcO2z9JtnkVwGtQSX4/Vwy9x5NwxY86tGHZpz4JzBQEGYzGqJ1RRFg5uWBioM77A== X-Received: by 2002:aa7:d61a:0:b0:4f9:a97d:469b with SMTP id c26-20020aa7d61a000000b004f9a97d469bmr3542667edr.10.1679410896648; Tue, 21 Mar 2023 08:01:36 -0700 (PDT) Received: from thomas-win.localdomain ([213.138.44.237]) by smtp.gmail.com with ESMTPSA id x93-20020a50bae6000000b004fbf6b35a56sm6405817ede.76.2023.03.21.08.01.35 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Mar 2023 08:01:36 -0700 (PDT) From: Thomas Siedel To: ffmpeg-devel@ffmpeg.org Date: Tue, 21 Mar 2023 16:01:13 +0100 Message-Id: <20230321150124.21999-1-thomas.ff@spin-digital.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v7 00/11] Add support for H266/VVC X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: 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. For conformance testing, the following JVET bitstreams can be used: https://www.itu.int/wftp3/av-arch/jvet-site/bitstream_exchange/VVC/draft_conformance/draft6/ DVB test streams can be found here: https://dvb.org/specifications/verification-validation/vvc-test-content/ All JVET conformance bitstreams that are supported by VVdeC can be decoded. Pallete mode and multi-layer streams are unsupported. The DVB MP4 and TS reference files can be decoded as well. Changes since v6: general: - bugfix in movenc.c mov_write_vvcc_tag - set array_completness for vvc1 not vvi1 - h266.c add VVC_DCI_NUT for array_completness as well - libvvdec.c add support for FF_PROFILE_VVC_MAIN_10_444 - cbs_h265.c fix parse mp4/vvcc header properly PATCH 2/11 - cbs_h266_syntax_template: bugfix usage of AV_CEIL_RSHIFT() (h266_ceil was replaced by AV_CEIL_RSHIFT(a,b) in v6, but 'b' must be log2 ) - cbs_h266_syntax_template: bugfix tile parsing - cbs_h265.c fix parsing of vvcc box in mp4 header properly PATCH 6/11 - h266.c::vvcc_array_add_nal_unit() array_completeness fix (add VVC_DCI_NUT) PATCH 7/11 - movenc.c::mov_write_vvcc_tag() array_completeness must be set for vvc1 not vvi1 PATCH 8/11 - libvvdec.c bugfix add support for AV_PIX_FMT_GRAY8, AV_PIX_FMT_GRAY10 - libvvdec.c add support for FF_PROFILE_VVC_MAIN_10_444 (yuv422p, yuv444p, yuv422p10, yuv444p10) - libvvdec.c remove double check for correct pix_fmt in ff_vvdec_decode_frame (already checked in ff_vvdec_set_pix_fmt) - h266_parse_extradata.c small bugfix (num_sublayers was parsed twice, now only at correct position) + cleanup PATCH 9/11 - configure fetch master due to changes for libvpx PATCH 11/11 - increase LIBAVCODEC_VERSION_MINOR to 7 Nuo Mi (4): avcodec: add enum types for H266/VVC avcodec: add cbs for H266/VVC avcodec: add bitstream parser for H266/VVC avcodec: add h266_metadata_bsf support for H266/VVC Thomas Siedel (7): 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 | 435 +++- libavcodec/cbs_h266.h | 793 +++++++ libavcodec/cbs_h266_syntax_template.c | 3116 +++++++++++++++++++++++++ libavcodec/cbs_internal.h | 1 + libavcodec/cbs_sei.c | 29 + libavcodec/h2645_parse.c | 71 +- libavcodec/h266.h | 142 ++ libavcodec/h266_metadata_bsf.c | 147 ++ libavcodec/h266_mp4toannexb_bsf.c | 329 +++ libavcodec/h266_paramset.c | 1005 ++++++++ libavcodec/h266_paramset.h | 307 +++ libavcodec/h266_parse_extradata.c | 246 ++ libavcodec/h266_parse_extradata.h | 36 + libavcodec/h266_parser.c | 601 +++++ libavcodec/libvvdec.c | 563 +++++ libavcodec/libvvenc.c | 469 ++++ libavcodec/parsers.c | 1 + libavcodec/version.h | 2 +- libavformat/Makefile | 8 +- libavformat/allformats.c | 2 + libavformat/demux.c | 7 +- libavformat/h266.c | 998 ++++++++ libavformat/h266.h | 99 + libavformat/h266dec.c | 61 + 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 + 39 files changed, 9634 insertions(+), 12 deletions(-) create mode 100644 libavcodec/cbs_h266.h create mode 100644 libavcodec/cbs_h266_syntax_template.c create mode 100644 libavcodec/h266.h create mode 100644 libavcodec/h266_metadata_bsf.c create mode 100644 libavcodec/h266_mp4toannexb_bsf.c create mode 100644 libavcodec/h266_paramset.c create mode 100644 libavcodec/h266_paramset.h create mode 100644 libavcodec/h266_parse_extradata.c create mode 100644 libavcodec/h266_parse_extradata.h create mode 100644 libavcodec/h266_parser.c create mode 100644 libavcodec/libvvdec.c create mode 100644 libavcodec/libvvenc.c create mode 100644 libavformat/h266.c create mode 100644 libavformat/h266.h create mode 100644 libavformat/h266dec.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".