From patchwork Thu Dec 1 08:13:56 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Wang, Fei W" X-Patchwork-Id: 39549 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:999a:b0:a4:2148:650a with SMTP id ve26csp195402pzb; Thu, 1 Dec 2022 00:14:53 -0800 (PST) X-Google-Smtp-Source: AA0mqf6tDJy7Ko9fc761/gljhaUaI2Ut+Um3la2LNNKUpzGy05xOYfFp9VpgZR30plGh31bzJHhr X-Received: by 2002:a05:6402:2488:b0:467:3ea1:acdd with SMTP id q8-20020a056402248800b004673ea1acddmr60543759eda.96.1669882493442; Thu, 01 Dec 2022 00:14:53 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669882493; cv=none; d=google.com; s=arc-20160816; b=qfTCiXPe++jSuhVnHrsmZrHRHwQ++pgRQUbgd+drhFG1r0Dd/ilmfcJCz+3wV8VzCX myQtSiSeHAn3dKm9eqCncjR5W2ow9kPAn3/OVtjB772Kg6lHdqKf/Lu77S57qulD4XhU 31hxOw3brds3VSxY3I0aSYG2/jaB4Ped072jiTgimXekkPNDXbrfJfble1kTINa/kr+3 jQvCyg4UPSU7XKcJxjFdyvWggDl+fOX0BsB64XkjfnhdB4dU2ILEptNYqd9+cRO42i04 bPBfnlO2bC8l/ve19MZkyUpcJsGl3dB57C39Juip6djGFuVmzCB7BybpcUsUSnfoCRfl /t9A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:message-id:date:to:from :dkim-signature:delivered-to; bh=zUCrLpW6KCKkTskhgC1fL/nEkxhPTRmkM8HypW/ZEo8=; b=aCWYJs416cspN7u17qjTo1Cs7ToFfZfjNs67Nj1dq17cVvt4KV89RsqtcMy1YmabDu obpUMe8ChQGx9kg5FZcN2sm3nb7nhtTQYybPFESpFi0tQBz3zqbY9m6cOwQa4EgHKtC9 OfOHQxhCkYe8tse//UmdDDk9eHI0+IiNuytHx31dpL3zMeduSSKkHXvQ2m/xnCa0UJ2I wQOu2wiW4IwEP0AnB+VWd7I75wBHwjNWMx+0EKWBCQBjS3eRGxBeGQKlZP/mz1rVf9cY xJUw67G9yhfjZOs1eR4NwdarTrbp37Nx5sQKpD/5H/05pfnkMKAbGj0JRtmUaBOm3DEp gNeg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@intel.com header.s=Intel header.b=SMScXQ0S; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id m9-20020aa7d349000000b004615c5728e8si3037318edr.494.2022.12.01.00.14.52; Thu, 01 Dec 2022 00:14:53 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@intel.com header.s=Intel header.b=SMScXQ0S; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id DD22068B7F1; Thu, 1 Dec 2022 10:14:48 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6608D68A176 for ; Thu, 1 Dec 2022 10:14:42 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1669882487; x=1701418487; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=EspTTOuZp4Sb6wciGJg5jQndY3l3JiVZK2qbN7vKBfs=; b=SMScXQ0SnG98KMUFf0SUJMH+wMV74cKWI74xojS8gHC/HFupszQ0GG6d lZgtjETe7CBaMa5B0nFcIIwz8RmE9p7rDlKfQnpJPDY7XI6H9MBzDBGz7 8nFJi1ZgIM6T6e6//uWFKDw3TBbvhesdKQRFBjX41mTlx5IxM2Oz8KC+H D4ZFFhmS02i9ODkRr4S3S0Q9Ww39QI9OkpWT1xx24195OPE5xv4cqzBLZ n+NDLfloy2jmhJLzBaIx/BaJKg9x036RVKefd17npRiBFJJugtsA8VWP/ IaxKtAthvKxakuj1Tae/kVSx0/oknc2tpZLUBmlL8ngk2ST37wqsUNGF1 w==; X-IronPort-AV: E=McAfee;i="6500,9779,10547"; a="298989801" X-IronPort-AV: E=Sophos;i="5.96,207,1665471600"; d="scan'208";a="298989801" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Dec 2022 00:14:39 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10547"; a="675341706" X-IronPort-AV: E=Sophos;i="5.96,207,1665471600"; d="scan'208";a="675341706" Received: from t.sh.intel.com ([10.239.159.159]) by orsmga008.jf.intel.com with ESMTP; 01 Dec 2022 00:14:38 -0800 From: Fei Wang To: ffmpeg-devel@ffmpeg.org Date: Thu, 1 Dec 2022 16:13:56 +0800 Message-Id: <20221201081408.2194579-1-fei.w.wang@intel.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v1 01/13] lavc/hevc_ps: remove profile limitation of pps_range_extensions() 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 Cc: Fei Wang Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: GurDdoZ2v6JP Follow spec 7.3.2.3.1. Signed-off-by: Fei Wang --- libavcodec/hevc_ps.c | 2 +- tests/ref/fate/hevc-conformance-PS_A_VIDYO_3 | 50 ++++++++++---------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/libavcodec/hevc_ps.c b/libavcodec/hevc_ps.c index f665d8053c..b7ba24a72d 100644 --- a/libavcodec/hevc_ps.c +++ b/libavcodec/hevc_ps.c @@ -1715,7 +1715,7 @@ int ff_hevc_decode_nal_pps(GetBitContext *gb, AVCodecContext *avctx, if (get_bits1(gb)) { // pps_extension_present_flag pps->pps_range_extensions_flag = get_bits1(gb); skip_bits(gb, 7); // pps_extension_7bits - if (sps->ptl.general_ptl.profile_idc == FF_PROFILE_HEVC_REXT && pps->pps_range_extensions_flag) { + if (pps->pps_range_extensions_flag) { if ((ret = pps_range_extensions(gb, avctx, pps, sps)) < 0) goto err; } diff --git a/tests/ref/fate/hevc-conformance-PS_A_VIDYO_3 b/tests/ref/fate/hevc-conformance-PS_A_VIDYO_3 index 59b82b72bb..d1d86b2dc9 100644 --- a/tests/ref/fate/hevc-conformance-PS_A_VIDYO_3 +++ b/tests/ref/fate/hevc-conformance-PS_A_VIDYO_3 @@ -3,28 +3,28 @@ #codec_id 0: rawvideo #dimensions 0: 416x240 #sar 0: 0/1 -0, 0, 0, 1, 149760, 0x88619f80 -0, 1, 1, 1, 149760, 0x550bdaf0 -0, 2, 2, 1, 149760, 0x4121f7a2 -0, 3, 3, 1, 149760, 0x210b1d07 -0, 4, 4, 1, 149760, 0x731b7758 -0, 5, 5, 1, 149760, 0x17adb789 -0, 6, 6, 1, 149760, 0x98b2f080 -0, 7, 7, 1, 149760, 0xc0be1f2a -0, 8, 8, 1, 149760, 0xc01e387a -0, 9, 9, 1, 149760, 0xd932822b -0, 10, 10, 1, 149760, 0x16c0a1df -0, 11, 11, 1, 149760, 0x5aa6c005 -0, 12, 12, 1, 149760, 0xd3aab602 -0, 13, 13, 1, 149760, 0x4e6ecab1 -0, 14, 14, 1, 149760, 0x8a86f1f2 -0, 15, 15, 1, 149760, 0x2ed21e1b -0, 16, 16, 1, 149760, 0x80892f24 -0, 17, 17, 1, 149760, 0xb8a952ef -0, 18, 18, 1, 149760, 0x557e57fb -0, 19, 19, 1, 149760, 0x2b825b2c -0, 20, 20, 1, 149760, 0x30b69b5e -0, 21, 21, 1, 149760, 0x802ebf08 -0, 22, 22, 1, 149760, 0x95aadc8e -0, 23, 23, 1, 149760, 0x4d4c02b7 -0, 24, 24, 1, 149760, 0x3fdd1762 +0, 0, 0, 1, 149760, 0x5c4f70f4 +0, 1, 1, 1, 149760, 0xf4628e59 +0, 2, 2, 1, 149760, 0xa28e5bdc +0, 3, 3, 1, 149760, 0xda0e53d7 +0, 4, 4, 1, 149760, 0x42dd334a +0, 5, 5, 1, 149760, 0x25ba9dfe +0, 6, 6, 1, 149760, 0x8854d8ca +0, 7, 7, 1, 149760, 0xc04505d4 +0, 8, 8, 1, 149760, 0xd3fce146 +0, 9, 9, 1, 149760, 0x8bfd88bd +0, 10, 10, 1, 149760, 0x33d965b2 +0, 11, 11, 1, 149760, 0x12746b7a +0, 12, 12, 1, 149760, 0xb7642694 +0, 13, 13, 1, 149760, 0x32b5035f +0, 14, 14, 1, 149760, 0x7bea0af1 +0, 15, 15, 1, 149760, 0x577d4fc8 +0, 16, 16, 1, 149760, 0x023a9c66 +0, 17, 17, 1, 149760, 0x9abe76c4 +0, 18, 18, 1, 149760, 0x2b14dba5 +0, 19, 19, 1, 149760, 0x7b8affcf +0, 20, 20, 1, 149760, 0x21e4c323 +0, 21, 21, 1, 149760, 0xf0b7d9cd +0, 22, 22, 1, 149760, 0x4db0c5bc +0, 23, 23, 1, 149760, 0xf455f752 +0, 24, 24, 1, 149760, 0x569fec99 From patchwork Thu Dec 1 08:13:57 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Wang, Fei W" X-Patchwork-Id: 39550 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:999a:b0:a4:2148:650a with SMTP id ve26csp195794pzb; Thu, 1 Dec 2022 00:15:14 -0800 (PST) X-Google-Smtp-Source: AA0mqf7WI7je+kG6jbQayOMu+TVWPT3Y4RHwErBVEhi0BHli446PyNt8M6j0OjLwcTriapCUE/5L X-Received: by 2002:aa7:c6da:0:b0:469:172:1f38 with SMTP id b26-20020aa7c6da000000b0046901721f38mr57261635eds.195.1669882514000; Thu, 01 Dec 2022 00:15:14 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669882513; cv=none; d=google.com; s=arc-20160816; b=riLfkz+LLUuoEfa+xrf33YDz2AtZON57MC7zmyd8nuRjp5vYlg0b9VmwtYFHgfhOER gw9iQZgpFGHZZbfN7HlN1+7PQfLciPj3NTZnRCqZjv8xbyqJpBNzaX5lIB1kKrXeYo0g 0aOZsPwbUE0tuVjsSUOSpG1vKF54lsV6Z3sKEG9h7xOvTdh4HAx5/+TQMpCdIMnmsQSd 2wf8ZddA6PdBWcwx69/glILecMLimT5YX2Gn/NdA+ShjIsI6VP3aNeF9g1jvkI+kDA8w phjkUgo2b3de0rtoGFkPTvPYenHAeANhLPa722Ke2PZKWAEz47M5OOpGYQLO6ZlRUCdr JC0Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to; bh=/mSE8myAimlicvSPV34bbtCLJ7WofQIMgu2OQFN26hw=; b=JzVguXWu27SSYOJ4O+NgreOPFwc4d10hivUxTBVxmXNSJgtfFZWSHvSLeoHsmqWhLq tGZKD4dVtu28vqQ27p791+CFBPNt00KAhHF1lkALTjNwGMgjrBgqRHov5pDbYB2J7Yc/ J0qRGxjd0C23+8RWnPCG/qGuoCIcbUDTrJt6Op/hEZtztDOngMzVzwSoRLbRfs16RHQ0 nmit1R6DOT+Tbg5xw9ZIlGJ9Fv9ltOiX5spkWe3hjP+vRy7rgQaWXifH+ty1oTlOXXjO S8WfdFd3ULAmapcvGi/NMzqwLSfKkFgmuB+impOa3BOIV2pl/FrR8aUwDakfAbGKOBCq zq4Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@intel.com header.s=Intel header.b=KmrauF3B; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id d8-20020aa7d688000000b0046b58b0497asi3086676edr.314.2022.12.01.00.15.03; Thu, 01 Dec 2022 00:15:13 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@intel.com header.s=Intel header.b=KmrauF3B; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id EE3B668B896; Thu, 1 Dec 2022 10:14:50 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0A76568B7FA for ; Thu, 1 Dec 2022 10:14:43 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1669882489; x=1701418489; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=pk5aZFyYuP4+ZwKpKt9nPYDxN4xN7TR+v/0ADkvCg+A=; b=KmrauF3B4rxcM2iEmCDDbB/Pn0/GCPUpMN0RQ9cJ+0CVWLwDOK4LHbEe j34AmD3rsNyb8k+jvGd+cgiXiH8hNyV563mJ6LQZBu6Ll690X9/qkj8a7 w21Pst4HyeYtp/+LIz/Vw72efrqf8Y5NSq4XUNZM8rIPf+UI5Rxal+Wnc pz53s6T38rLylamq2tzFosQrCFW4woZlAyr+DXan0Laap67U4abwqlWZx re5UT/bOMft4Zz3enuuvsNnMhZE2LCEn+q+uSMoYQwQ69Y+NuhrOkQQ9u t7pi1r/734sHAtv9J61ZoUeFkWMG3ojsZs8QeUEXZBFxJA//szMs8YqFk w==; X-IronPort-AV: E=McAfee;i="6500,9779,10547"; a="298989807" X-IronPort-AV: E=Sophos;i="5.96,207,1665471600"; d="scan'208";a="298989807" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Dec 2022 00:14:41 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10547"; a="675341712" X-IronPort-AV: E=Sophos;i="5.96,207,1665471600"; d="scan'208";a="675341712" Received: from t.sh.intel.com ([10.239.159.159]) by orsmga008.jf.intel.com with ESMTP; 01 Dec 2022 00:14:40 -0800 From: Fei Wang To: ffmpeg-devel@ffmpeg.org Date: Thu, 1 Dec 2022 16:13:57 +0800 Message-Id: <20221201081408.2194579-2-fei.w.wang@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221201081408.2194579-1-fei.w.wang@intel.com> References: <20221201081408.2194579-1-fei.w.wang@intel.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v1 02/13] lavc/avcodec: Add HEVC Screen Content Coding Extensions profile 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 Cc: Linjie Fu , Fei Wang , Linjie Fu Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: Xk+vbsJK37Es From: Linjie Fu Described in HEVC spec A.3.7. Signed-off-by: Linjie Fu Signed-off-by: Fei Wang --- libavcodec/avcodec.h | 1 + libavcodec/hevc_ps.c | 2 ++ libavcodec/profiles.c | 1 + 3 files changed, 4 insertions(+) diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index 3edd8e2636..79fad674df 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -1639,6 +1639,7 @@ typedef struct AVCodecContext { #define FF_PROFILE_HEVC_MAIN_10 2 #define FF_PROFILE_HEVC_MAIN_STILL_PICTURE 3 #define FF_PROFILE_HEVC_REXT 4 +#define FF_PROFILE_HEVC_SCC 9 #define FF_PROFILE_VVC_MAIN_10 1 #define FF_PROFILE_VVC_MAIN_10_444 33 diff --git a/libavcodec/hevc_ps.c b/libavcodec/hevc_ps.c index b7ba24a72d..3052f58779 100644 --- a/libavcodec/hevc_ps.c +++ b/libavcodec/hevc_ps.c @@ -278,6 +278,8 @@ static int decode_profile_tier_level(GetBitContext *gb, AVCodecContext *avctx, av_log(avctx, AV_LOG_DEBUG, "Main Still Picture profile bitstream\n"); else if (ptl->profile_idc == FF_PROFILE_HEVC_REXT) av_log(avctx, AV_LOG_DEBUG, "Range Extension profile bitstream\n"); + else if (ptl->profile_idc == FF_PROFILE_HEVC_SCC) + av_log(avctx, AV_LOG_DEBUG, "Screen Content Coding Extension profile bitstream\n"); else av_log(avctx, AV_LOG_WARNING, "Unknown HEVC profile: %d\n", ptl->profile_idc); diff --git a/libavcodec/profiles.c b/libavcodec/profiles.c index 7af7fbeb13..2230fc5415 100644 --- a/libavcodec/profiles.c +++ b/libavcodec/profiles.c @@ -85,6 +85,7 @@ const AVProfile ff_hevc_profiles[] = { { FF_PROFILE_HEVC_MAIN_10, "Main 10" }, { FF_PROFILE_HEVC_MAIN_STILL_PICTURE, "Main Still Picture" }, { FF_PROFILE_HEVC_REXT, "Rext" }, + { FF_PROFILE_HEVC_SCC, "Scc" }, { FF_PROFILE_UNKNOWN }, }; From patchwork Thu Dec 1 08:13:58 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Wang, Fei W" X-Patchwork-Id: 39551 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:999a:b0:a4:2148:650a with SMTP id ve26csp195792pzb; Thu, 1 Dec 2022 00:15:13 -0800 (PST) X-Google-Smtp-Source: AA0mqf5oTW/1nplH+mPEr1T67ufeFCF1GiY01OCtynnGqBg9cKU1eYYJIaN3GA1vcG24pIe+e+Mv X-Received: by 2002:a17:906:2302:b0:7b9:de77:f0ef with SMTP id l2-20020a170906230200b007b9de77f0efmr33920974eja.5.1669882513365; Thu, 01 Dec 2022 00:15:13 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669882513; cv=none; d=google.com; s=arc-20160816; b=WHzCEd/Y2AUnjHTmqGPvbNBtOgG+j8KxScngGmrjjS/am+tqg1pB81+RVJVbExtF0t +Ruuszo8SRa1PGF1QGq6m/utbt3vWVhD4FnOr6Vxyn9Pii+Bq2JGSfCNloTwZWmMHtlb 1Ba2fRKCOxESt5vcg+jmIyCD7PF+51Ll6T9N/OrR9Iyt4ty48B2vRRsYLtHCGRE/wxXG VgAz7/XSFCU28DymgOOMv+YEzkirO19tDLNnOgjC4GCn4kDEwigQYvKxByB67rnKl5vp UC1c1+9lajeZHQC4EtcBKXRqKXneX6W1BUSMoBGoFiruy1KZVHX/SQTsfW8D8Y25T9ZS IpeQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to; bh=RLf1mESJw5z/A4rSHrlfXXmtL0HteCaUnfjQ3T6RaR8=; b=m0i27vD9ywkK7ofuCR87RLYhmaC/BNUX0rNXoMjokLBc5x+MKzQ32M5hv0lvGut6lv 0cl0rvG2aNIpo3876tY/3hZr8vp5eTmZJ/RnC7Jo+Dka1s+HROSceTR2m91dHJqb9NKy +3jYC7Bl5xoKiuMNdRPARQrP8LLm6yNopmYBflKssFV3nbTrU/4l8u9P2yLX1ZopZvpV 3av1N+Mfsj4v7lSkwke7CZlQpTtxtDsKKp565MUsHMTJHOkCj1FFO4TM5YLyaJM6nY2y KVc41EIdT+ZZqtCwLuQlQFWk2xkhcQk6rU/gkUTJCBImFHub0MWPqtCuVQArGf4NGdjO 2ytw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@intel.com header.s=Intel header.b=TvpItMct; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id hr29-20020a1709073f9d00b0078d6418dcb8si3757918ejc.456.2022.12.01.00.15.12; Thu, 01 Dec 2022 00:15:13 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@intel.com header.s=Intel header.b=TvpItMct; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4499768B92B; Thu, 1 Dec 2022 10:14:55 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9DF4C68B815 for ; Thu, 1 Dec 2022 10:14:47 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1669882492; x=1701418492; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=LA6CQPlT1B/rh0AbUwN+BqOaQ0L8Q4Xxgv8VIjmHD8g=; b=TvpItMctuGu7YByZwKHGQyi9FtAONnRFnJ0hJiVS3WLZwGzEy2dX1xlt ZiJRl8y1wwUMwq//NE/mi8+odZyB6A/FleXkByavf0D7qMqLpSmno6O52 Kcsy0pSLz2uVUtbCFMx9x0DG7nMYsR+ZtkSGwndwUPcWdkK6EgDojBLpe YreoPGNUH4wmSv6lg9AkVkQiYJ8fXPFfy002cENcdP7SV9LIQPZkkjpYZ h3kY1hPqJYCSRdXn+eZU5BP80A0pu0ekeaAYZG/nc4LZp5oPJ5FhJttQD FfIK2V2TB/gfh6TaRuVj3fUYSWPsYfiYGBqgwzF3NMd4LuZguMDXxaJ7d Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10547"; a="298989819" X-IronPort-AV: E=Sophos;i="5.96,207,1665471600"; d="scan'208";a="298989819" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Dec 2022 00:14:44 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10547"; a="675341718" X-IronPort-AV: E=Sophos;i="5.96,207,1665471600"; d="scan'208";a="675341718" Received: from t.sh.intel.com ([10.239.159.159]) by orsmga008.jf.intel.com with ESMTP; 01 Dec 2022 00:14:41 -0800 From: Fei Wang To: ffmpeg-devel@ffmpeg.org Date: Thu, 1 Dec 2022 16:13:58 +0800 Message-Id: <20221201081408.2194579-3-fei.w.wang@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221201081408.2194579-1-fei.w.wang@intel.com> References: <20221201081408.2194579-1-fei.w.wang@intel.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v1 03/13] lavc/hevc_ps: Add SPS/PPS parse support for HEVC extension syntax 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 Cc: Haihao Xiang , Linjie Fu , Fei Wang , Linjie Fu Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: XcTjMEl/zOp/ From: Linjie Fu 1. Add extension syntax according to 7.3.2.2.3/7.3.2.3.3 in T-REC-H.265-201911. 2. Keep using parsed PPS when bitstream overread for compatibility. For example, the clip PS_A_VIDYO_3.bit in FATE test has incomplete extension syntax which will be overread and un-decodable if without this change. 3. Format brace in pps_range_extensions(). Signed-off-by: Linjie Fu Signed-off-by: Haihao Xiang Signed-off-by: Fei Wang --- libavcodec/hevc.h | 3 + libavcodec/hevc_ps.c | 293 +++++++++++++++++++++++++++++++++++++++++-- libavcodec/hevc_ps.h | 69 ++++++++++ 3 files changed, 357 insertions(+), 8 deletions(-) diff --git a/libavcodec/hevc.h b/libavcodec/hevc.h index 1804755327..6b454a75c1 100644 --- a/libavcodec/hevc.h +++ b/libavcodec/hevc.h @@ -154,6 +154,9 @@ enum { // get near that, though, so set a lower limit here with the maximum // possible value for 4K video (at most 135 16x16 Ctb rows). HEVC_MAX_ENTRY_POINT_OFFSETS = HEVC_MAX_TILE_COLUMNS * 135, + + // A.3.7: Screen content coding extensions + HEVC_MAX_PALETTE_PREDICTOR_SIZE = 128, }; diff --git a/libavcodec/hevc_ps.c b/libavcodec/hevc_ps.c index 3052f58779..086b1d4002 100644 --- a/libavcodec/hevc_ps.c +++ b/libavcodec/hevc_ps.c @@ -910,7 +910,7 @@ int ff_hevc_parse_sps(HEVCSPS *sps, GetBitContext *gb, unsigned int *sps_id, HEVCWindow *ow; int ret = 0; int log2_diff_max_min_transform_block_size; - int bit_depth_chroma, start, vui_present, sublayer_ordering_info; + int bit_depth_chroma, start, vui_present, sublayer_ordering_info, num_comps; int i; // Coded parameters @@ -1131,8 +1131,12 @@ int ff_hevc_parse_sps(HEVCSPS *sps, GetBitContext *gb, unsigned int *sps_id, decode_vui(gb, avctx, apply_defdispwin, sps); if (get_bits1(gb)) { // sps_extension_flag - sps->sps_range_extension_flag = get_bits1(gb); - skip_bits(gb, 7); //sps_extension_7bits = get_bits(gb, 7); + sps->sps_range_extension_flag = get_bits1(gb); + sps->sps_multilayer_extension_flag = get_bits1(gb); + sps->sps_3d_extension_flag = get_bits1(gb); + sps->sps_scc_extension_flag = get_bits1(gb); + skip_bits(gb, 4); // sps_extension_4bits + if (sps->sps_range_extension_flag) { sps->transform_skip_rotation_enabled_flag = get_bits1(gb); sps->transform_skip_context_enabled_flag = get_bits1(gb); @@ -1158,6 +1162,57 @@ int ff_hevc_parse_sps(HEVCSPS *sps, GetBitContext *gb, unsigned int *sps_id, av_log(avctx, AV_LOG_WARNING, "cabac_bypass_alignment_enabled_flag not yet implemented\n"); } + + if (sps->sps_multilayer_extension_flag) { + skip_bits1(gb); // inter_view_mv_vert_constraint_flag + av_log(avctx, AV_LOG_WARNING, + "sps_multilayer_extension_flag not yet implemented\n"); + } + + if (sps->sps_3d_extension_flag) { + for (i = 0; i <= 1; i++) { + skip_bits1(gb); // iv_di_mc_enabled_flag + skip_bits1(gb); // iv_mv_scal_enabled_flag + if (i == 0) { + get_ue_golomb_long(gb); // log2_ivmc_sub_pb_size_minus3 + skip_bits1(gb); // iv_res_pred_enabled_flag + skip_bits1(gb); // depth_ref_enabled_flag + skip_bits1(gb); // vsp_mc_enabled_flag + skip_bits1(gb); // dbbp_enabled_flag + } else { + skip_bits1(gb); // tex_mc_enabled_flag + get_ue_golomb_long(gb); // log2_ivmc_sub_pb_size_minus3 + skip_bits1(gb); // intra_contour_enabled_flag + skip_bits1(gb); // intra_dc_only_wedge_enabled_flag + skip_bits1(gb); // cqt_cu_part_pred_enabled_flag + skip_bits1(gb); // inter_dc_only_enabled_flag + skip_bits1(gb); // skip_intra_enabled_flag + } + } + av_log(avctx, AV_LOG_WARNING, + "sps_3d_extension_flag not yet implemented\n"); + } + + if (sps->sps_scc_extension_flag) { + sps->sps_curr_pic_ref_enabled_flag = get_bits1(gb); + sps->palette_mode_enabled_flag = get_bits1(gb); + if (sps->palette_mode_enabled_flag) { + sps->palette_max_size = get_ue_golomb_long(gb); + sps->delta_palette_max_predictor_size = get_ue_golomb_long(gb); + sps->sps_palette_predictor_initializers_present_flag = get_bits1(gb); + + if (sps->sps_palette_predictor_initializers_present_flag) { + sps->sps_num_palette_predictor_initializers_minus1 = get_ue_golomb_long(gb); + num_comps = !sps->chroma_format_idc ? 1 : 3; + for (int comp = 0; comp < num_comps; comp++) + for (i = 0; i <= sps->sps_num_palette_predictor_initializers_minus1; i++) + sps->sps_palette_predictor_initializer[comp][i] = + get_bits(gb, !comp ? sps->bit_depth : sps->bit_depth_chroma); + } + } + sps->motion_vector_resolution_control_idc = get_bits(gb, 2); + sps->intra_boundary_filtering_disabled_flag = get_bits1(gb); + } } if (apply_defdispwin) { sps->output_window.left_offset += sps->vui.def_disp_win.left_offset; @@ -1322,8 +1377,170 @@ static void hevc_pps_free(void *opaque, uint8_t *data) av_freep(&pps); } +static void colour_mapping_octants(GetBitContext *gb, HEVCPPS *pps, int inp_depth, + int idx_y, int idx_cb, int idx_cr, int inp_length) +{ + uint8_t split_octant_flag, coded_res_flag; + uint16_t part_num_y, res_coeff_q, res_coeff_r; + int bit_depth_cm_input_y, bit_depth_cm_output_y, cm_res_bits; + int k, m, n, c, i, j; + + part_num_y = 1 << pps->cm_y_part_num_log2; + + if (inp_depth < pps->cm_octant_depth) + split_octant_flag = get_bits1(gb); + + if (split_octant_flag) + for (k = 0; k < 2; k++) + for (m = 0; m < 2; m++) + for (n = 0; n < 2; n++) + colour_mapping_octants(gb, pps, inp_depth + 1, + idx_y + part_num_y * k * inp_length / 2, + idx_cb + m * inp_length / 2, + idx_cr + n * inp_length / 2, + inp_length / 2); + else + for (i = 0; i < part_num_y; i++) { + for (j = 0; j < 4; j++) { + coded_res_flag = get_bits1(gb); + if (coded_res_flag) + for (c = 0; c < 3; c++) { + res_coeff_q = get_ue_golomb_long(gb); + bit_depth_cm_input_y = 8 + pps->luma_bit_depth_cm_input_minus8; + bit_depth_cm_output_y = 8 + pps->luma_bit_depth_cm_output_minus8; + cm_res_bits = FFMAX(0, 10 + bit_depth_cm_input_y - bit_depth_cm_output_y - + pps->cm_res_quant_bits - (pps->cm_delta_flc_bits_minus1 + 1)); + res_coeff_r = get_bits(gb, cm_res_bits); + if (res_coeff_q || res_coeff_r) + skip_bits1(gb); + } + } + } +} + +static void colour_mapping_table(GetBitContext *gb, HEVCPPS *pps) +{ + int i; + + pps->num_cm_ref_layers_minus1 = get_ue_golomb_long(gb); + for (i = 0; i <= pps->num_cm_ref_layers_minus1; i++) + pps->cm_ref_layer_id[i] = get_bits(gb, 6); + + pps->cm_octant_depth = get_bits(gb, 2); + pps->cm_y_part_num_log2 = get_bits(gb, 2); + + pps->luma_bit_depth_cm_input_minus8 = get_ue_golomb_long(gb); + pps->chroma_bit_depth_cm_input_minus8 = get_ue_golomb_long(gb); + pps->luma_bit_depth_cm_output_minus8 = get_ue_golomb_long(gb); + pps->chroma_bit_depth_cm_output_minus8 = get_ue_golomb_long(gb); + + pps->cm_res_quant_bits = get_bits(gb, 2); + pps->cm_delta_flc_bits_minus1 = get_bits(gb, 2); + + if (pps->cm_octant_depth == 1) { + pps->cm_adapt_threshold_u_delta = get_se_golomb_long(gb); + pps->cm_adapt_threshold_v_delta = get_se_golomb_long(gb); + } + + colour_mapping_octants(gb, pps, 0, 0, 0, 0, 1 << pps->cm_octant_depth); +} + +static int pps_multilayer_extension(GetBitContext *gb, AVCodecContext *avctx, + HEVCPPS *pps, HEVCSPS *sps) +{ + int i; + + pps->poc_reset_info_present_flag = get_bits1(gb); + pps->pps_infer_scaling_list_flag = get_bits1(gb); + if (pps->pps_infer_scaling_list_flag) + pps->pps_scaling_list_ref_layer_id = get_bits(gb, 6); + + pps->num_ref_loc_offsets = get_ue_golomb_long(gb); + for (i = 0; i < pps->num_ref_loc_offsets; i++) { + pps->ref_loc_offset_layer_id[i] = get_bits(gb, 6); + pps->scaled_ref_layer_offset_present_flag[i] = get_bits1(gb); + if (pps->scaled_ref_layer_offset_present_flag[i]) { + pps->scaled_ref_layer_left_offset[pps->ref_loc_offset_layer_id[i]] = get_se_golomb_long(gb); + pps->scaled_ref_layer_top_offset[pps->ref_loc_offset_layer_id[i]] = get_se_golomb_long(gb); + pps->scaled_ref_layer_right_offset[pps->ref_loc_offset_layer_id[i]] = get_se_golomb_long(gb); + pps->scaled_ref_layer_bottom_offset[pps->ref_loc_offset_layer_id[i]] = get_se_golomb_long(gb); + } + + pps->ref_region_offset_present_flag[i] = get_bits1(gb); + if (pps->ref_region_offset_present_flag[i]) { + pps->ref_region_left_offset[pps->ref_loc_offset_layer_id[i]] = get_se_golomb_long(gb); + pps->ref_region_top_offset[pps->ref_loc_offset_layer_id[i]] = get_se_golomb_long(gb); + pps->ref_region_right_offset[pps->ref_loc_offset_layer_id[i]] = get_se_golomb_long(gb); + pps->ref_region_bottom_offset[pps->ref_loc_offset_layer_id[i]] = get_se_golomb_long(gb); + } + + pps->resample_phase_set_present_flag[i] = get_bits1(gb); + if (pps->resample_phase_set_present_flag[i]) { + pps->phase_hor_luma[pps->ref_loc_offset_layer_id[i]] = get_ue_golomb_long(gb); + pps->phase_ver_luma[pps->ref_loc_offset_layer_id[i]] = get_ue_golomb_long(gb); + pps->phase_hor_chroma_plus8[pps->ref_loc_offset_layer_id[i]] = get_ue_golomb_long(gb); + pps->phase_ver_chroma_plus8[pps->ref_loc_offset_layer_id[i]] = get_ue_golomb_long(gb); + } + } + + pps->colour_mapping_enabled_flag = get_bits1(gb); + if (pps->colour_mapping_enabled_flag) + colour_mapping_table(gb, pps); + + return 0; +} + +static void delta_dlt(GetBitContext *gb, HEVCPPS *pps) +{ + uint8_t num_val_delta_dlt, max_diff = 0; + int min_diff_minus1 = -1; + unsigned int len; + int k; + + num_val_delta_dlt = get_bits(gb, pps->pps_bit_depth_for_depth_layers_minus8 + 8); + if (num_val_delta_dlt) { + if (num_val_delta_dlt > 1) + max_diff = get_bits(gb, pps->pps_bit_depth_for_depth_layers_minus8 + 8); + if (num_val_delta_dlt > 2 && max_diff) { + len = av_log2(max_diff) + 1; + min_diff_minus1 = get_bits(gb, len); + } + if (max_diff > (min_diff_minus1 + 1)) + for (k = 1; k < num_val_delta_dlt; k++) { + len = av_log2(max_diff - (min_diff_minus1 + 1)) + 1; + skip_bits(gb, len); // delta_val_diff_minus_min + } + } +} + +static int pps_3d_extension(GetBitContext *gb, AVCodecContext *avctx, + HEVCPPS *pps, HEVCSPS *sps) +{ + uint8_t pps_depth_layers_minus1; + int i, j; + + if (get_bits1(gb)) { // dlts_present_flag + pps_depth_layers_minus1 = get_bits(gb, 6); + pps->pps_bit_depth_for_depth_layers_minus8 = get_bits(gb, 4); + for (i = 0; i <= pps_depth_layers_minus1; i++) { + if (get_bits1(gb)) { // dlt_flag[i] + if (!get_bits1(gb)) { // dlt_pred_flag[i] + if (get_bits1(gb)) { // dlt_val_flags_present_flag[i] + for (j = 0; j <= ((1 << (pps->pps_bit_depth_for_depth_layers_minus8 + 8)) - 1); j++) + skip_bits1(gb); // dlt_value_flag[i][j] + } else + delta_dlt(gb, pps); + } + } + } + } + + return 0; +} + static int pps_range_extensions(GetBitContext *gb, AVCodecContext *avctx, - HEVCPPS *pps, HEVCSPS *sps) { + HEVCPPS *pps, HEVCSPS *sps) +{ int i; if (pps->transform_skip_enabled_flag) { @@ -1363,6 +1580,48 @@ static int pps_range_extensions(GetBitContext *gb, AVCodecContext *avctx, return(0); } +static int pps_scc_extension(GetBitContext *gb, AVCodecContext *avctx, + HEVCPPS *pps, HEVCSPS *sps) +{ + int num_comps; + int i, ret; + + pps->pps_curr_pic_ref_enabled_flag = get_bits1(gb); + if (pps->residual_adaptive_colour_transform_enabled_flag = get_bits1(gb)) { + pps->pps_slice_act_qp_offsets_present_flag = get_bits1(gb); + pps->pps_act_y_qp_offset = get_se_golomb_long(gb) - 5; + pps->pps_act_cb_qp_offset = get_se_golomb_long(gb) - 5; + pps->pps_act_cr_qp_offset = get_se_golomb_long(gb) - 3; + +#define CHECK_QP_OFFSET(name) (pps->pps_act_ ## name ## _qp_offset <= -12 || \ + pps->pps_act_ ## name ## _qp_offset >= 12) + ret = CHECK_QP_OFFSET(y) || CHECK_QP_OFFSET(cb) || CHECK_QP_OFFSET(cr); +#undef CHECK_QP_OFFSET + if (ret) { + av_log(avctx, AV_LOG_ERROR, + "PpsActQpOffsetY/Cb/Cr shall be in the range of [-12, 12].\n"); + return AVERROR_INVALIDDATA; + } + } + + if (pps->pps_palette_predictor_initializers_present_flag = get_bits1(gb)) { + if ((pps->pps_num_palette_predictor_initializers = get_ue_golomb_long(gb)) > 0) { + pps->monochrome_palette_flag = get_bits1(gb); + pps->luma_bit_depth_entry_minus8 = get_ue_golomb_long(gb); + if (!pps->monochrome_palette_flag) + pps->chroma_bit_depth_entry_minus8 = get_ue_golomb_long(gb); + num_comps = pps->monochrome_palette_flag ? 1 : 3; + for (int comp = 0; comp < num_comps; comp++) + for (i = 0; i < pps->pps_num_palette_predictor_initializers; i++) + pps->pps_palette_predictor_initializer[comp][i] = + get_bits(gb, 8 + (!comp ? pps->luma_bit_depth_entry_minus8 : + pps->chroma_bit_depth_entry_minus8)); + } + } + + return 0; +} + static inline int setup_pps(AVCodecContext *avctx, GetBitContext *gb, HEVCPPS *pps, HEVCSPS *sps) { @@ -1715,12 +1974,31 @@ int ff_hevc_decode_nal_pps(GetBitContext *gb, AVCodecContext *avctx, pps->slice_header_extension_present_flag = get_bits1(gb); if (get_bits1(gb)) { // pps_extension_present_flag - pps->pps_range_extensions_flag = get_bits1(gb); - skip_bits(gb, 7); // pps_extension_7bits + pps->pps_range_extensions_flag = get_bits1(gb); + pps->pps_multilayer_extension_flag = get_bits1(gb); + pps->pps_3d_extension_flag = get_bits1(gb); + pps->pps_scc_extension_flag = get_bits1(gb); + skip_bits(gb, 4); // pps_extension_4bits + if (pps->pps_range_extensions_flag) { if ((ret = pps_range_extensions(gb, avctx, pps, sps)) < 0) goto err; } + + if (pps->pps_multilayer_extension_flag) { + if ((ret = pps_multilayer_extension(gb, avctx, pps, sps)) < 0) + goto err; + } + + if (pps->pps_3d_extension_flag) { + if ((ret = pps_3d_extension(gb, avctx, pps, sps)) < 0) + goto err; + } + + if (pps->pps_scc_extension_flag) { + if ((ret = pps_scc_extension(gb, avctx, pps, sps)) < 0) + goto err; + } } ret = setup_pps(avctx, gb, pps, sps); @@ -1728,9 +2006,8 @@ int ff_hevc_decode_nal_pps(GetBitContext *gb, AVCodecContext *avctx, goto err; if (get_bits_left(gb) < 0) { - av_log(avctx, AV_LOG_ERROR, + av_log(avctx, AV_LOG_WARNING, "Overread PPS by %d bits\n", -get_bits_left(gb)); - goto err; } remove_pps(ps, pps_id); diff --git a/libavcodec/hevc_ps.h b/libavcodec/hevc_ps.h index 2a1bbf6489..72526ee40f 100644 --- a/libavcodec/hevc_ps.h +++ b/libavcodec/hevc_ps.h @@ -223,6 +223,20 @@ typedef struct HEVCSPS { int persistent_rice_adaptation_enabled_flag; int cabac_bypass_alignment_enabled_flag; + int sps_multilayer_extension_flag; + int sps_3d_extension_flag; + + int sps_scc_extension_flag; + int sps_curr_pic_ref_enabled_flag; + int palette_mode_enabled_flag; + int palette_max_size; + int delta_palette_max_predictor_size; + int sps_palette_predictor_initializers_present_flag; + int sps_num_palette_predictor_initializers_minus1; + int sps_palette_predictor_initializer[3][HEVC_MAX_PALETTE_PREDICTOR_SIZE]; + int motion_vector_resolution_control_idc; + int intra_boundary_filtering_disabled_flag; + ///< coded frame dimension in various units int width; int height; @@ -297,6 +311,9 @@ typedef struct HEVCPPS { uint8_t slice_header_extension_present_flag; uint8_t log2_max_transform_skip_block_size; uint8_t pps_range_extensions_flag; + uint8_t pps_multilayer_extension_flag; + uint8_t pps_3d_extension_flag; + uint8_t pps_scc_extension_flag; uint8_t cross_component_prediction_enabled_flag; uint8_t chroma_qp_offset_list_enabled_flag; uint8_t diff_cu_chroma_qp_offset_depth; @@ -306,6 +323,58 @@ typedef struct HEVCPPS { uint8_t log2_sao_offset_scale_luma; uint8_t log2_sao_offset_scale_chroma; + // Multilayer extension parameters + uint8_t poc_reset_info_present_flag; + uint8_t pps_infer_scaling_list_flag; + uint8_t pps_scaling_list_ref_layer_id; + uint16_t num_ref_loc_offsets; + uint8_t ref_loc_offset_layer_id[64]; + uint8_t scaled_ref_layer_offset_present_flag[64]; + int8_t scaled_ref_layer_left_offset[64]; + int8_t scaled_ref_layer_top_offset[64]; + int8_t scaled_ref_layer_right_offset[64]; + int8_t scaled_ref_layer_bottom_offset[64]; + uint8_t ref_region_offset_present_flag[64]; + int8_t ref_region_left_offset[64]; + int8_t ref_region_top_offset[64]; + int8_t ref_region_right_offset[64]; + int8_t ref_region_bottom_offset[64]; + uint8_t resample_phase_set_present_flag[64]; + uint16_t phase_hor_luma[64]; + uint16_t phase_ver_luma[64]; + uint16_t phase_hor_chroma_plus8[64]; + uint16_t phase_ver_chroma_plus8[64]; + uint8_t colour_mapping_enabled_flag; + uint16_t num_cm_ref_layers_minus1; + uint8_t cm_ref_layer_id[63]; + uint8_t cm_octant_depth; + uint8_t cm_y_part_num_log2; + uint16_t luma_bit_depth_cm_input_minus8; + uint16_t chroma_bit_depth_cm_input_minus8; + uint16_t luma_bit_depth_cm_output_minus8; + uint16_t chroma_bit_depth_cm_output_minus8; + uint8_t cm_res_quant_bits; + uint8_t cm_delta_flc_bits_minus1; + int8_t cm_adapt_threshold_u_delta; + int8_t cm_adapt_threshold_v_delta; + + // 3D extension parameters + uint8_t pps_bit_depth_for_depth_layers_minus8; + + // SCC extension parameters + uint8_t pps_curr_pic_ref_enabled_flag; + uint8_t residual_adaptive_colour_transform_enabled_flag; + uint8_t pps_slice_act_qp_offsets_present_flag; + int8_t pps_act_y_qp_offset; // _plus5 + int8_t pps_act_cb_qp_offset; // _plus5 + int8_t pps_act_cr_qp_offset; // _plus3 + uint8_t pps_palette_predictor_initializers_present_flag; + uint8_t pps_num_palette_predictor_initializers; + uint8_t monochrome_palette_flag; + uint8_t luma_bit_depth_entry_minus8; + uint8_t chroma_bit_depth_entry_minus8; + uint8_t pps_palette_predictor_initializer[3][HEVC_MAX_PALETTE_PREDICTOR_SIZE]; + // Inferred parameters unsigned int *column_width; ///< ColumnWidth unsigned int *row_height; ///< RowHeight From patchwork Thu Dec 1 08:13:59 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Wang, Fei W" X-Patchwork-Id: 39552 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:999a:b0:a4:2148:650a with SMTP id ve26csp196139pzb; Thu, 1 Dec 2022 00:15:28 -0800 (PST) X-Google-Smtp-Source: AA0mqf6L7wuA7m/2OkQIDXDX3DVzJWgLjkTH4v20siBalEDzZrFGjIdEMMlYQbsVWRNq/x1fRmk6 X-Received: by 2002:a17:907:2a10:b0:7a7:9b01:2a6c with SMTP id fd16-20020a1709072a1000b007a79b012a6cmr55294908ejc.153.1669882528548; Thu, 01 Dec 2022 00:15:28 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669882528; cv=none; d=google.com; s=arc-20160816; b=iR7uaVZlrVjyuUKXNvBIHPtRmchIrkoGvsFvyrciaRBBA8tOJS7ARhxKxa/WtRHsay lG0FVzU8wseKZDPwQYdB6D+8/vgNd8hXox7hVm5Rq8OwYaoArZCEEKUGDkftaKeHn1/S IL60quTUNbRXBQFWOCsorq/KIWg8UpRb76OrILsGx6g5lJ2nhxBxAmt4R+X1K79+hXqp VvGKaVELpLzG7dunyRz3gpw8tiOQzeJ50m34WsQFednP3fNl8Etkd28cYPW3uFmVKtSL ehCyXItRmf1Cq3V2YJ8zo+KncrS3WBI1Xr3httZg6y3rHwvkXxN0h5SiqrjWnxC4WZ3i A9IQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to; bh=f7wnqKXCrmv3y/CF1gyOE57VLA38wxPqgHxjMtMR7h0=; b=bdDND1URU48IU2zR2e/w94DDrJj5IJ5+aT6+M7ljdkonIHCCU8Xd1sOdib5x7jbpre Q/89h63T3TGuLTpRrMLYHExTyGHkW6k0ZQgk2/SFZldGO5hicn6ofFpYUY9l2IbM4jcg sPxkEA8LnqpLLMV3/8kw+i7MJ1OyYiLJ6SK6eLJdXap0/SC8VNtwO7gKxZ19+N638iHh Br9j9qB8vPa4PpvYRfMGdHwKXk+QVPVsKMe6ONbt3Wht353UHOwtlI44YQnUojul8okp KFONItmPoe+x8dEVgYOCc7moZX5QFEGIcgNDbTIQysIN9DZMSiVkD7ZaTMdpBKRExXVt o1/A== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@intel.com header.s=Intel header.b=SPiZLqmY; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id di10-20020a170906730a00b007aea0bbe2e2si3957255ejc.394.2022.12.01.00.15.22; Thu, 01 Dec 2022 00:15:28 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@intel.com header.s=Intel header.b=SPiZLqmY; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4785368B945; Thu, 1 Dec 2022 10:14:56 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 68F9B68B081 for ; Thu, 1 Dec 2022 10:14:48 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1669882493; x=1701418493; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=k0HRBr/qKok5hY78TAMX4n/HYpbCjOQyOpOnjANEq6g=; b=SPiZLqmYBTy02yNJbIfApHtv2EUtYypdFbo+e/sMCoTFoN3IjjX/hmNA IJYv/hCeoaMxAoQCo4lNaCkcSdmJcJp5efNLmwPK403+58nHbZSMSEV+l bFuuvrnyma9SDFj8XVoMwkpUgoK/1YbD0IvRnj9caeziDgpTEcSbUEF5u /1wix+tH1e1L3S5gyN8ZNSSvQCUw3M2J3Jxp6ykAJB83snnWXTrzgmA6o 4L/yJgkiDoVmx4W35b4qg9zmxRgBJV12DUJ/6INVz8uvMH3H3w7AJt1Qg f87nQqh439oUkjta+9B+yrpUmYmAG5qxltJlx7yKy00dx9795wcXiCMlh g==; X-IronPort-AV: E=McAfee;i="6500,9779,10547"; a="298989822" X-IronPort-AV: E=Sophos;i="5.96,207,1665471600"; d="scan'208";a="298989822" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Dec 2022 00:14:46 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10547"; a="675341730" X-IronPort-AV: E=Sophos;i="5.96,207,1665471600"; d="scan'208";a="675341730" Received: from t.sh.intel.com ([10.239.159.159]) by orsmga008.jf.intel.com with ESMTP; 01 Dec 2022 00:14:44 -0800 From: Fei Wang To: ffmpeg-devel@ffmpeg.org Date: Thu, 1 Dec 2022 16:13:59 +0800 Message-Id: <20221201081408.2194579-4-fei.w.wang@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221201081408.2194579-1-fei.w.wang@intel.com> References: <20221201081408.2194579-1-fei.w.wang@intel.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v1 04/13] lavc/hevcdec: Add slice parse support for HEVC SCC extension 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 Cc: Linjie Fu , Fei Wang , Linjie Fu Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: GMOHN4xbIqaj From: Linjie Fu Signed-off-by: Linjie Fu Signed-off-by: Fei Wang --- libavcodec/hevcdec.c | 6 ++++++ libavcodec/hevcdec.h | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/libavcodec/hevcdec.c b/libavcodec/hevcdec.c index fb44d8d3f2..edf3a2b134 100644 --- a/libavcodec/hevcdec.c +++ b/libavcodec/hevcdec.c @@ -857,6 +857,12 @@ static int hls_slice_header(HEVCContext *s) sh->slice_cr_qp_offset = 0; } + if (s->ps.pps->pps_slice_act_qp_offsets_present_flag) { + sh->slice_act_y_qp_offset = get_se_golomb(gb); + sh->slice_act_cb_qp_offset = get_se_golomb(gb); + sh->slice_act_cr_qp_offset = get_se_golomb(gb); + } + if (s->ps.pps->chroma_qp_offset_list_enabled_flag) sh->cu_chroma_qp_offset_enabled_flag = get_bits1(gb); else diff --git a/libavcodec/hevcdec.h b/libavcodec/hevcdec.h index 9d3f4adbb3..7841ba8565 100644 --- a/libavcodec/hevcdec.h +++ b/libavcodec/hevcdec.h @@ -295,6 +295,10 @@ typedef struct SliceHeader { int slice_cb_qp_offset; int slice_cr_qp_offset; + int slice_act_y_qp_offset; + int slice_act_cb_qp_offset; + int slice_act_cr_qp_offset; + uint8_t cu_chroma_qp_offset_enabled_flag; int beta_offset; ///< beta_offset_div2 * 2 From patchwork Thu Dec 1 08:14:00 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Wang, Fei W" X-Patchwork-Id: 39553 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:999a:b0:a4:2148:650a with SMTP id ve26csp196158pzb; Thu, 1 Dec 2022 00:15:32 -0800 (PST) X-Google-Smtp-Source: AA0mqf7cSckeQjbG/khcwl+PRjwI0PmFAmvm/CBN/XBCwDhxCqIAwIjU28WIyMr3cO/NjXtBSbPQ X-Received: by 2002:a17:906:1748:b0:7b2:7fa8:3d84 with SMTP id d8-20020a170906174800b007b27fa83d84mr13006535eje.650.1669882532276; Thu, 01 Dec 2022 00:15:32 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669882532; cv=none; d=google.com; s=arc-20160816; b=qL9ohEN3S3Mn4dHAwJNlNKc8KpJSKYjshPP5tousLSS4+BzLFIpq8pC3tPmEdOw4+5 Hl+phQbR3neg2xQi2slfbcxPF6Zsi2pvL4Wvj6/MIz4QjIjK1wBvpI9LU8WDVEG+XpzS JQR4wMXN7sqEjDBFvpJAdXnQ5HhbAIBEIguR0QQQwpHeKChwSLgmcl7grntXBYWJFLTe 9grw/7xi89pikOQCWXXIXz77uXsevcxys2B1fzASsm+PaPdFEf2BzQ1gzX9DXc9PySCV Vo5tTwp0Wk23i06wpp3kRt5i6fHjxiGRV+PzRCLtqNOVl9g1GlGVhSNJAP+o7LuBvfe3 PH1w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to; bh=Fm5eYqA3f6yv9Bng+7FcvnKxAvVa4dv5i7YXidpgcJI=; b=K5Kufes2jrWl4VJabUphYkPnqWa7f5y53q1BShXLJO8L2sPxohbxDZMBS4FvzH10VR zCpVDXATcKQkz7PuYHOnDlqO5MT8adru04lQ0RmfVA0EDBGIGb2BgRHpaCo0O7Gy21wl 3Snmg/IhL4p3RzWERuJXBtRglam29fPAvpywuX98bmmWFzjlvBQFZaJlgb9/tkwvFoLO 6O904sYPE//k+WuRv7h8AEW4s7f0jrxxO+rgMOggZpM2MrrIOFdF0SQf4pchVX6lw5Jx Qo8/bNzPMmyBQ8IBE+uL20HDCq1dXt8DYeXTH4VfTGw7xb7xWPeHgeud5JDBIUnY/DqI cYRA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@intel.com header.s=Intel header.b=km41VSp9; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id r13-20020a05640251cd00b0046bc9cbd8f0si2603781edd.504.2022.12.01.00.15.31; Thu, 01 Dec 2022 00:15:32 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@intel.com header.s=Intel header.b=km41VSp9; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 38A8368B99F; Thu, 1 Dec 2022 10:14:57 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id EB1F268B91B for ; Thu, 1 Dec 2022 10:14:49 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1669882495; x=1701418495; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=lG4KkFKx6Z7LUXmYOa4gde41HIhoYgBQCyJQ8B0eOmg=; b=km41VSp9fI2V6Bi6ZcMKIdrk5g99AfdNRSqeVpABxEaoDNm/sInnsYaK G/x+m/Dr6OO15XD17It9Vw12BBRYJU9cjGrpftFJe8imu64xB3Q4h+IOg c+UoUhk7fiKhVY2zLixk5RnKaPt1AX+egwA2iZ9W3e2+XBwX52zoVKdA/ 4C4e7hhi5Bai43VlL9d+qK4Ljpno4F4VfX8iLJmkU37/CiehfjR5sdU3r Ck51qT7/KaQbZ/J9+ju3pU4MwLsM5AJnsQFKIwqqEHBCCdWfmfPHIkJJO Kiu4tmG+RARqmFzgmk1zZJgeX7tFisDxXzQwJA7nIO+ARLVLik4z6jvXI A==; X-IronPort-AV: E=McAfee;i="6500,9779,10547"; a="298989828" X-IronPort-AV: E=Sophos;i="5.96,207,1665471600"; d="scan'208";a="298989828" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Dec 2022 00:14:47 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10547"; a="675341744" X-IronPort-AV: E=Sophos;i="5.96,207,1665471600"; d="scan'208";a="675341744" Received: from t.sh.intel.com ([10.239.159.159]) by orsmga008.jf.intel.com with ESMTP; 01 Dec 2022 00:14:45 -0800 From: Fei Wang To: ffmpeg-devel@ffmpeg.org Date: Thu, 1 Dec 2022 16:14:00 +0800 Message-Id: <20221201081408.2194579-5-fei.w.wang@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221201081408.2194579-1-fei.w.wang@intel.com> References: <20221201081408.2194579-1-fei.w.wang@intel.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v1 05/13] lavc/hevcdec: Fix the parsing for use_integer_mv_flag 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 Cc: Linjie Fu , Fei Wang , Linjie Fu Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: L+LMqzmtRDwq From: Linjie Fu According to 7.3.6.1, use_integer_mv_flag should be parsed if motion_vector_resolution_control_idc equals to 2. If not present, it equals to motion_vector_resolution_control_idc. Signed-off-by: Linjie Fu Signed-off-by: Fei Wang --- libavcodec/hevcdec.c | 8 ++++++++ libavcodec/hevcdec.h | 1 + 2 files changed, 9 insertions(+) diff --git a/libavcodec/hevcdec.c b/libavcodec/hevcdec.c index edf3a2b134..50e7fd4465 100644 --- a/libavcodec/hevcdec.c +++ b/libavcodec/hevcdec.c @@ -840,6 +840,14 @@ static int hls_slice_header(HEVCContext *s) sh->max_num_merge_cand); return AVERROR_INVALIDDATA; } + + // Syntax in 7.3.6.1 + if (s->ps.sps->motion_vector_resolution_control_idc == 2) + sh->use_integer_mv_flag = get_bits1(gb); + else + // Inferred to be equal to motion_vector_resolution_control_idc if not present + sh->use_integer_mv_flag = s->ps.sps->motion_vector_resolution_control_idc; + } sh->slice_qp_delta = get_se_golomb(gb); diff --git a/libavcodec/hevcdec.h b/libavcodec/hevcdec.h index 7841ba8565..a7fc669bcb 100644 --- a/libavcodec/hevcdec.h +++ b/libavcodec/hevcdec.h @@ -305,6 +305,7 @@ typedef struct SliceHeader { int tc_offset; ///< tc_offset_div2 * 2 unsigned int max_num_merge_cand; ///< 5 - 5_minus_max_num_merge_cand + uint8_t use_integer_mv_flag; unsigned *entry_point_offset; int * offset; From patchwork Thu Dec 1 08:14:01 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Wang, Fei W" X-Patchwork-Id: 39554 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:999a:b0:a4:2148:650a with SMTP id ve26csp196225pzb; Thu, 1 Dec 2022 00:15:40 -0800 (PST) X-Google-Smtp-Source: AA0mqf4eIRxJ++cg/KAUiLEKuIsq4DQ95LQ2mY2VxU2BQ3NQouH6DfzN+CVdf1+v0VHXPTCJYab+ X-Received: by 2002:a05:6402:444a:b0:459:401:c23e with SMTP id o10-20020a056402444a00b004590401c23emr44854206edb.23.1669882539906; Thu, 01 Dec 2022 00:15:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669882539; cv=none; d=google.com; s=arc-20160816; b=RHPHMfjMXs1dJ4FjqLWL7s2WUzOiaIblESR3ZvVSZ3luRJ+5vqDBlWQI9Rr0/+n5Fp XcuQxp89cS/ZD7Bf6u205wATNMkDkogOcpc2VcS6yFw3MCYlh8+mCjFx6zBr/PArVPUL ukon6nEImOp0FQKShULfsPb91flaGLg63QXPauGUFq3Jxn8dfzJIGwSb/B25fpTo7uEa qJxbxnOcRWa7eDPwNvvlALDVYJGBvNsesJQIm3PKOQmpwYvqKTEkkcV8nOMXQxeA9dad ztBjKgrthC2pFLBw1hHcK2hWt8pK+AAM7MqS082Bqj0EzcMbS1XL6ycgIvMejHSIS/3T ewPg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to; bh=EvA/KiwpYfQrT5s8+tk8tz/WVhAOq56XwT3lQwjXMKM=; b=HZGqjGLdO2pun/NEniLLnGjgbTIJfqmnEgVm4/XfoNvlxxGaAxuz4LkFePS7JfOk4g boNMN5tVIGcJ4AUAN4+3oYjCFAujBRDipj23WuTtQK4J6TyHRPeeQAloUGlLDFG1OrAZ Uq3qvdvMft5jtdM6kWc1o+Ytt9cVoUj4IpiOyR9Z8SFjsdwcegLui5+J7YcCLJt0mzon R7A6OuFZVwDnk18Kym1uaExnFaFR8AffgM1zUi/nalBcaoXC7VcVYGVKwigVX/7l2pu2 5KIXTeVquHai2PpuMTyHArkJqTPM/AVXk47oevVSzj7dlOgOiyXWRbvJuY6FEbWWI4TZ IsSw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@intel.com header.s=Intel header.b="V5/MF90D"; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id a8-20020a056402168800b0046b3407a453si993738edv.162.2022.12.01.00.15.39; Thu, 01 Dec 2022 00:15:39 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@intel.com header.s=Intel header.b="V5/MF90D"; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2ED2F68B9EC; Thu, 1 Dec 2022 10:15:01 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E586F68B9E8 for ; Thu, 1 Dec 2022 10:14:53 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1669882499; x=1701418499; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=RzgeT27PLmco4fUtOCQPH5gyzkPiewt4BvWtHoO78Fw=; b=V5/MF90DuBbr5yhz6FlCd7S78eecz04PysOH/C+qYSOMYag305pApGhE k3xiAf19HsxyfJ/GTfzlqP5UnEso999zognIEL2ErTkbGQZ41nBC4g/qs ND13jmOfq/Hej4uZ97MzZPbsXxqLeKLrmeYQbWX5dS5Qused9+bkx2ljs Bod6wrAUyuCC220s1Ch8WBx3ufmMLj1VDARALAoCY48iEsN1UC+ulot1I BOHbP07tyEDAy/qM9CzVXSvUxrCgM0zGOyaInNmhbQPEBXGTV4/y5hVP4 ONQ06qvFTq/ULN7StGCszyV6AzGnBLgCnsXhBkix0uoqIfNqjGZBn6eAH A==; X-IronPort-AV: E=McAfee;i="6500,9779,10547"; a="298989838" X-IronPort-AV: E=Sophos;i="5.96,207,1665471600"; d="scan'208";a="298989838" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Dec 2022 00:14:49 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10547"; a="675341750" X-IronPort-AV: E=Sophos;i="5.96,207,1665471600"; d="scan'208";a="675341750" Received: from t.sh.intel.com ([10.239.159.159]) by orsmga008.jf.intel.com with ESMTP; 01 Dec 2022 00:14:47 -0800 From: Fei Wang To: ffmpeg-devel@ffmpeg.org Date: Thu, 1 Dec 2022 16:14:01 +0800 Message-Id: <20221201081408.2194579-6-fei.w.wang@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221201081408.2194579-1-fei.w.wang@intel.com> References: <20221201081408.2194579-1-fei.w.wang@intel.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v1 06/13] lavc/hevcdec: Set max_num_merge_cand to uint8_t 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 Cc: Linjie Fu , Fei Wang , Linjie Fu Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: A/N3HkYD9D4b From: Linjie Fu uint8_t is big enough and keep consistent with the definition in cbs_h265.h. Signed-off-by: Linjie Fu Signed-off-by: Fei Wang --- libavcodec/hevcdec.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/hevcdec.h b/libavcodec/hevcdec.h index a7fc669bcb..aab816791e 100644 --- a/libavcodec/hevcdec.h +++ b/libavcodec/hevcdec.h @@ -304,7 +304,7 @@ typedef struct SliceHeader { int beta_offset; ///< beta_offset_div2 * 2 int tc_offset; ///< tc_offset_div2 * 2 - unsigned int max_num_merge_cand; ///< 5 - 5_minus_max_num_merge_cand + uint8_t max_num_merge_cand; ///< 5 - 5_minus_max_num_merge_cand uint8_t use_integer_mv_flag; unsigned *entry_point_offset; From patchwork Thu Dec 1 08:14:02 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Wang, Fei W" X-Patchwork-Id: 39555 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:999a:b0:a4:2148:650a with SMTP id ve26csp196281pzb; Thu, 1 Dec 2022 00:15:49 -0800 (PST) X-Google-Smtp-Source: AA0mqf5FZZsnsMhEuvaE7swAw1hKg8QvGa2NchkZUq21p9fm4LnS/gMg1Qm5etac7lUJe9yLc/Xi X-Received: by 2002:a17:906:ad8e:b0:7c0:a247:357f with SMTP id la14-20020a170906ad8e00b007c0a247357fmr4865009ejb.159.1669882549113; Thu, 01 Dec 2022 00:15:49 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669882549; cv=none; d=google.com; s=arc-20160816; b=06GG976qrn+q6TglKL61vgdGnoe1BffbWEygh0jfw934mH2+DPhMd1nX44fT1kpe9N MFxmwZg9Wwh7kmnYnwUE6P/M49yVYsrJPLjdS81r9KnZhRi8uQwQleNWLwEE2ZfYTyoO DShmgEJMgN2f8ZjwiXqQNzr0QWoZbRQ78NEQy3FcQfJ/ZccHy3FfoRLxaNuYxViwzcLm dMwmjSTrPFccCSmGhnSwQPl3neVL8oD87/fEnQIs79IBKhRjjitp0ht3znVH7fohQ1WM mhtg60inTii4kULuvz8aXPhwKrWVqyyVLPqgD/x/tVFmEcYBghYk2qD3JHbmc4K5UiGF AF9g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to; bh=qx/VutW42/8fP9B5GdisNiYtoarNEiiGXE2L8VmycEQ=; b=M2QsYuos86T+MbkKYCzI7NJXBxWCJcNqZ5i5S3zXMbpED/iuEBh8GxLnC3I8ljW3mh wfxgVdadEzOT45zvzB1WBtd2mJFPISednWUe+167Dr3rN4Fei3EKubQdzAyoHSvj4vj5 n04EcAc03KzuKflRD56HtNtAsI/IRQ95jdbaDzDYhpift1l51ZkhI/MAPWrP23oRDe0e QOdb8bECuub8oam3X+zrZzW20GNRiGa27VCldrJI5um3inlQm6rZ4lCFazC+Tqdkb1CQ af5qSmcdgJ0XyTqiiJnBPqiFXAGQGocOuW73/WH4JgvUWKyqptxtBdbVDegst69yQGW7 /HVQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@intel.com header.s=Intel header.b=nXaF5oB5; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id hc44-20020a17090716ac00b00741a18d4a5asi3546427ejc.994.2022.12.01.00.15.48; Thu, 01 Dec 2022 00:15:49 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@intel.com header.s=Intel header.b=nXaF5oB5; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 11D4B68BA82; Thu, 1 Dec 2022 10:15:02 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 56C2468B834 for ; Thu, 1 Dec 2022 10:14:54 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1669882499; x=1701418499; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=9/PFuSvmZ5ES+MZ7+Zk//0gUVv1sHKHPp9bwYPZsP1g=; b=nXaF5oB50r26i10SW4vGZiW1weaFqzHd7VejQ7lUrbWU4O4bPGuk5n/c W4H3BFoDeSVLi+IXDfeCxF9zsHlRg880F4+UvP1pi+05FI7L9cEjf2N38 /vYmGqST9z9AogCYhr+H/UyXtN+5hXJAD15Zo51PUwOO7k12erUTH7Awm wye7fVA8zZVefPptmsBxY4Jg2mdpq8cp4e5tMGsTN7mHh7C+ExqclCvos mHyWXKCh8nKNJoHiTQr2UvHIriCmaE1UaXHNp2rpKrlTzpN3jHbajxMEC YaXSs0uOV+tXd2lS3puUEctEvl7sJBNyoSPFRCIGA5Ci4g2H6sAkFLgEm Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10547"; a="298989844" X-IronPort-AV: E=Sophos;i="5.96,207,1665471600"; d="scan'208";a="298989844" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Dec 2022 00:14:50 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10547"; a="675341759" X-IronPort-AV: E=Sophos;i="5.96,207,1665471600"; d="scan'208";a="675341759" Received: from t.sh.intel.com ([10.239.159.159]) by orsmga008.jf.intel.com with ESMTP; 01 Dec 2022 00:14:49 -0800 From: Fei Wang To: ffmpeg-devel@ffmpeg.org Date: Thu, 1 Dec 2022 16:14:02 +0800 Message-Id: <20221201081408.2194579-7-fei.w.wang@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221201081408.2194579-1-fei.w.wang@intel.com> References: <20221201081408.2194579-1-fei.w.wang@intel.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v1 07/13] lavc/hevc: Update reference list for SCC 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 Cc: Linjie Fu , Fei Wang , Linjie Fu Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: N/zSJQSFB6Z1 From: Linjie Fu Screen Content Coding allows non-intra slice in an IRAP frame which can reference the frame itself, and would mark the current decoded picture as "used for long-term reference", no matter TwoVersionsOfCurrDecPicFlag(8.1.3), hence some previous restricts are not suitable any more. Constructe RefPicListTemp and RefPicList according to 8-8/9/10. Disable slice decoding for SCC profile to avoid unexpected error in hevc native decoder and patch welcome. Signed-off-by: Linjie Fu Signed-off-by: Fei Wang --- libavcodec/hevc_refs.c | 21 ++++++++++++++++++++- libavcodec/hevcdec.c | 10 +++++++++- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/libavcodec/hevc_refs.c b/libavcodec/hevc_refs.c index 811e8feff8..96153a2459 100644 --- a/libavcodec/hevc_refs.c +++ b/libavcodec/hevc_refs.c @@ -322,7 +322,7 @@ int ff_hevc_slice_rpl(HEVCContext *s) return ret; if (!(s->rps[ST_CURR_BEF].nb_refs + s->rps[ST_CURR_AFT].nb_refs + - s->rps[LT_CURR].nb_refs)) { + s->rps[LT_CURR].nb_refs) && !s->ps.pps->pps_curr_pic_ref_enabled_flag) { av_log(s->avctx, AV_LOG_ERROR, "Zero refs in the frame RPS.\n"); return AVERROR_INVALIDDATA; } @@ -349,6 +349,13 @@ int ff_hevc_slice_rpl(HEVCContext *s) rpl_tmp.nb_refs++; } } + // Construct RefPicList0, RefPicList1 (8-8, 8-10) + if (s->ps.pps->pps_curr_pic_ref_enabled_flag) { + rpl_tmp.list[rpl_tmp.nb_refs] = s->ref->poc; + rpl_tmp.ref[rpl_tmp.nb_refs] = s->ref; + rpl_tmp.isLongTerm[rpl_tmp.nb_refs] = 1; + rpl_tmp.nb_refs++; + } } /* reorder the references if necessary */ @@ -371,6 +378,14 @@ int ff_hevc_slice_rpl(HEVCContext *s) rpl->nb_refs = FFMIN(rpl->nb_refs, sh->nb_refs[list_idx]); } + // 8-9 + if (s->ps.pps->pps_curr_pic_ref_enabled_flag && + !sh->rpl_modification_flag[list_idx] && + rpl_tmp.nb_refs > sh->nb_refs[L0]) { + rpl->list[sh->nb_refs[L0] - 1] = s->ref->poc; + rpl->ref[sh->nb_refs[L0] - 1] = s->ref; + } + if (sh->collocated_list == list_idx && sh->collocated_ref_idx < rpl->nb_refs) s->ref->collocated_ref = rpl->ref[sh->collocated_ref_idx]; @@ -541,5 +556,9 @@ int ff_hevc_frame_nb_refs(const HEVCContext *s) for (i = 0; i < long_rps->nb_refs; i++) ret += !!long_rps->used[i]; } + + if (s->ps.pps->pps_curr_pic_ref_enabled_flag) + ret++; + return ret; } diff --git a/libavcodec/hevcdec.c b/libavcodec/hevcdec.c index 50e7fd4465..bd8199d1dd 100644 --- a/libavcodec/hevcdec.c +++ b/libavcodec/hevcdec.c @@ -669,7 +669,8 @@ static int hls_slice_header(HEVCContext *s) sh->slice_type); return AVERROR_INVALIDDATA; } - if (IS_IRAP(s) && sh->slice_type != HEVC_SLICE_I) { + if (IS_IRAP(s) && sh->slice_type != HEVC_SLICE_I && + !s->ps.pps->pps_curr_pic_ref_enabled_flag) { av_log(s->avctx, AV_LOG_ERROR, "Inter slices in an IRAP frame.\n"); return AVERROR_INVALIDDATA; } @@ -3256,6 +3257,13 @@ static int decode_nal_unit(HEVCContext *s, const H2645NAL *nal) if (ret < 0) goto fail; } else { + if (s->avctx->profile == FF_PROFILE_HEVC_SCC) { + av_log(s->avctx, AV_LOG_ERROR, + "SCC profile is not yet implemented in hevc native decoder.\n"); + ret = AVERROR_PATCHWELCOME; + goto fail; + } + if (s->threads_number > 1 && s->sh.num_entry_point_offsets > 0) ctb_addr_ts = hls_slice_data_wpp(s, nal); else From patchwork Thu Dec 1 08:14:03 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Wang, Fei W" X-Patchwork-Id: 39559 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:999a:b0:a4:2148:650a with SMTP id ve26csp196584pzb; Thu, 1 Dec 2022 00:16:22 -0800 (PST) X-Google-Smtp-Source: AA0mqf4T+Jt2aWCg9eaf0KCSid2DpNKfmznZKxd8cH6UXSIADG8tvuLBatcqC3QZx0et3fLgOYUE X-Received: by 2002:a17:906:2ec7:b0:79b:413b:d64 with SMTP id s7-20020a1709062ec700b0079b413b0d64mr37729340eji.538.1669882582432; Thu, 01 Dec 2022 00:16:22 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669882582; cv=none; d=google.com; s=arc-20160816; b=pUqgr2VZxoNn+tVBhPOgSBm6jCW1YX5O65Y39rMZxe0uj8zdPC/v0pRvwdRvKGHiFE csZsTEug1lMCcJKlcjaBnK8kDCHz85sE4TMFlPGvs1dBbOphi7QPasEjHa3I7xADGCji /Ep08IBwhbnlLDj9+UduzBo/dYaLJJscP4bd1kDrUl29lf2D9JXmao6gWVn3T+6CfiMY ctSc2DrmRl1IU7asXX30TPSq5NeejCHVmSyAL20JBO9asYYP2KwtmTPgmqy9J2jPBAOw CdSgz7VNkgxK4WYQ1y4buzt0b9rHpC6wzi28m9GBypdFSlYkXICh6miWkBvra7oFDgVv 5sZQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to; bh=xLGz4NMHwOQ4682HDXfgghQVZ3XKrL8gxmJ1jhP3Y44=; b=gszube4A07H6poEuhF4jW1wc+XQnNQM8cvJFWeObHe6W2GJAioQRNd1de6yEql3DXR 6AFNSNP05X+i1eoZstsAWOV/aMPONqxN1poE+QPdJ5uTbTCdFDt/FP3+VACfbGrW4rgv gwqZ2XjcLQJEM1QRenyyuELcxPfdrJYPYeYBglH5vNxc7UjYBfcGQv7XaFpWDzSsBVbV W4KVz5dMJWgQFnHze/Y68SSRvvYUC1nziU7Lz2ue/uU+DOhG0T/hO1LkUq89lp8I8ZUg mxV12lBSyFqVulPLlDCo7OzEGB4osPyqAV11UVoW5rTveovrzK0n7OIZylbwwoy5TS0G cHGA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@intel.com header.s=Intel header.b=hydKAskM; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id ca5-20020aa7cd65000000b0046bfb391d2asi668787edb.472.2022.12.01.00.16.21; Thu, 01 Dec 2022 00:16:22 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@intel.com header.s=Intel header.b=hydKAskM; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id B8B6468BABF; Thu, 1 Dec 2022 10:15:05 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E4E6768B9E8 for ; Thu, 1 Dec 2022 10:14:55 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1669882501; x=1701418501; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=tpIDWWgFTgVzU0k5XC7gNPOxg3GY0wNEkCbn23880zY=; b=hydKAskMLcdZ6mL/c3zAGBXEbnk0jrLPiEYVkO0NWJMjExXyfzZPzZsb Q4DRUdnzUqUJ/CUozTIPlLrXGSPriYE8QDFp4aQx+CIfxyaD5ZMUbnqgi L6HdZ63avUHjQCLO7E+HpK2XbUZRLpORXYbu/Qyg9NNBj8YeWiLm42DX3 eCBe1EUF02nJBCXl/I6zv8gH3RvlxckjPTowtRI/Kepp1WxHX9E2jQwqX x6ibfmUj2qbHPftF3BuZkXplC+cGD9cSXuC013Dk53dB5g1BAi2MlxBZS F34MqMxQwpG8LTkyB7ZP5zkat2huiufkhGF9UTEzTm0XOR3YjZNdLUpsx Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10547"; a="298989855" X-IronPort-AV: E=Sophos;i="5.96,207,1665471600"; d="scan'208";a="298989855" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Dec 2022 00:14:52 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10547"; a="675341779" X-IronPort-AV: E=Sophos;i="5.96,207,1665471600"; d="scan'208";a="675341779" Received: from t.sh.intel.com ([10.239.159.159]) by orsmga008.jf.intel.com with ESMTP; 01 Dec 2022 00:14:50 -0800 From: Fei Wang To: ffmpeg-devel@ffmpeg.org Date: Thu, 1 Dec 2022 16:14:03 +0800 Message-Id: <20221201081408.2194579-8-fei.w.wang@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221201081408.2194579-1-fei.w.wang@intel.com> References: <20221201081408.2194579-1-fei.w.wang@intel.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v1 08/13] lavc/vaapi_hevc: Pass SCC parameters Through VA-API 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 Cc: Linjie Fu , Fei Wang , Linjie Fu Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: v2eYlLnn2sgE From: Linjie Fu Including sps/pps/slice parameters. Signed-off-by: Linjie Fu Signed-off-by: Fei Wang --- libavcodec/vaapi_hevc.c | 52 +++++++++++++++++++++++++++++++++++++---- 1 file changed, 47 insertions(+), 5 deletions(-) diff --git a/libavcodec/vaapi_hevc.c b/libavcodec/vaapi_hevc.c index 20fb36adfa..750738d36e 100644 --- a/libavcodec/vaapi_hevc.c +++ b/libavcodec/vaapi_hevc.c @@ -124,7 +124,7 @@ static int vaapi_hevc_start_frame(AVCodecContext *avctx, const HEVCPPS *pps = h->ps.pps; const ScalingList *scaling_list = NULL; - int pic_param_size, err, i; + int pic_param_size, num_comps, pre_palette_size, err, i; VAPictureParameterBufferHEVC *pic_param = (VAPictureParameterBufferHEVC *)&pic->pic_param; @@ -245,8 +245,46 @@ static int vaapi_hevc_start_frame(AVCodecContext *avctx, for (i = 0; i < 6; i++) pic->pic_param.rext.cr_qp_offset_list[i] = pps->cr_qp_offset_list[i]; } + + pre_palette_size = pps->pps_palette_predictor_initializers_present_flag ? + pps->pps_num_palette_predictor_initializers : + (sps->sps_palette_predictor_initializers_present_flag ? + sps->sps_num_palette_predictor_initializers_minus1 + 1 : + 0); + + if (avctx->profile == FF_PROFILE_HEVC_SCC) { + pic->pic_param.scc = (VAPictureParameterBufferHEVCScc) { + .screen_content_pic_fields.bits = { + .pps_curr_pic_ref_enabled_flag = pps->pps_curr_pic_ref_enabled_flag, + .palette_mode_enabled_flag = sps->palette_mode_enabled_flag, + .motion_vector_resolution_control_idc = sps->motion_vector_resolution_control_idc, + .intra_boundary_filtering_disabled_flag = sps->intra_boundary_filtering_disabled_flag, + .residual_adaptive_colour_transform_enabled_flag + = pps->residual_adaptive_colour_transform_enabled_flag, + .pps_slice_act_qp_offsets_present_flag = pps->pps_slice_act_qp_offsets_present_flag, + }, + .palette_max_size = sps->palette_max_size, + .delta_palette_max_predictor_size = sps->delta_palette_max_predictor_size, + .predictor_palette_size = pre_palette_size, + .pps_act_y_qp_offset_plus5 = pps->residual_adaptive_colour_transform_enabled_flag ? + pps->pps_act_y_qp_offset + 5 : 0, + .pps_act_cb_qp_offset_plus5 = pps->residual_adaptive_colour_transform_enabled_flag ? + pps->pps_act_cb_qp_offset + 5 : 0, + .pps_act_cr_qp_offset_plus3 = pps->residual_adaptive_colour_transform_enabled_flag ? + pps->pps_act_cr_qp_offset + 3 : 0, + }; + + num_comps = pps->monochrome_palette_flag ? 1 : 3; + for (int comp = 0; comp < num_comps; comp++) + for (i = 0; i < pre_palette_size; i++) + pic->pic_param.scc.predictor_palette_entries[comp][i] = + pps->pps_palette_predictor_initializers_present_flag ? + pps->pps_palette_predictor_initializer[comp][i]: + sps->sps_palette_predictor_initializer[comp][i]; + } + #endif - pic_param_size = avctx->profile == FF_PROFILE_HEVC_REXT ? + pic_param_size = avctx->profile >= FF_PROFILE_HEVC_REXT ? sizeof(pic->pic_param) : sizeof(VAPictureParameterBufferHEVC); err = ff_vaapi_decode_make_param_buffer(avctx, &pic->pic, @@ -299,7 +337,7 @@ static int vaapi_hevc_end_frame(AVCodecContext *avctx) VASliceParameterBufferHEVC *last_slice_param = (VASliceParameterBufferHEVC *)&pic->last_slice_param; int ret; - int slice_param_size = avctx->profile == FF_PROFILE_HEVC_REXT ? + int slice_param_size = avctx->profile >= FF_PROFILE_HEVC_REXT ? sizeof(pic->last_slice_param) : sizeof(VASliceParameterBufferHEVC); if (pic->last_size) { @@ -413,7 +451,7 @@ static int vaapi_hevc_decode_slice(AVCodecContext *avctx, VAAPIDecodePictureHEVC *pic = h->ref->hwaccel_picture_private; VASliceParameterBufferHEVC *last_slice_param = (VASliceParameterBufferHEVC *)&pic->last_slice_param; - int slice_param_size = avctx->profile == FF_PROFILE_HEVC_REXT ? + int slice_param_size = avctx->profile >= FF_PROFILE_HEVC_REXT ? sizeof(pic->last_slice_param) : sizeof(VASliceParameterBufferHEVC); int nb_list = (sh->slice_type == HEVC_SLICE_B) ? @@ -478,11 +516,15 @@ static int vaapi_hevc_decode_slice(AVCodecContext *avctx, fill_pred_weight_table(avctx, h, sh, last_slice_param); #if VA_CHECK_VERSION(1, 2, 0) - if (avctx->profile == FF_PROFILE_HEVC_REXT) { + if (avctx->profile >= FF_PROFILE_HEVC_REXT) { pic->last_slice_param.rext = (VASliceParameterBufferHEVCRext) { .slice_ext_flags.bits = { .cu_chroma_qp_offset_enabled_flag = sh->cu_chroma_qp_offset_enabled_flag, + .use_integer_mv_flag = sh->use_integer_mv_flag, }, + .slice_act_y_qp_offset = sh->slice_act_y_qp_offset, + .slice_act_cb_qp_offset = sh->slice_act_cb_qp_offset, + .slice_act_cr_qp_offset = sh->slice_act_cr_qp_offset, }; for (i = 0; i < 15 && i < sh->nb_refs[L0]; i++) { pic->last_slice_param.rext.luma_offset_l0[i] = sh->luma_offset_l0[i]; From patchwork Thu Dec 1 08:14:04 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Wang, Fei W" X-Patchwork-Id: 39556 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:999a:b0:a4:2148:650a with SMTP id ve26csp196370pzb; Thu, 1 Dec 2022 00:15:57 -0800 (PST) X-Google-Smtp-Source: AA0mqf6rBPDvWRQ6g0mgGyR/3LGHnCkrwlUUY/h+nVXJIiolirlSKf2DHuvHTUb7QU42NiPP10fA X-Received: by 2002:a17:906:6b1a:b0:7bb:32f2:720b with SMTP id q26-20020a1709066b1a00b007bb32f2720bmr29515002ejr.550.1669882556939; Thu, 01 Dec 2022 00:15:56 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669882556; cv=none; d=google.com; s=arc-20160816; b=mNKfEjFnQlKTZsX9eHiE70u7ycmO2U4g/MV4qj2T5hkyGkVW2/Bc1Jh6zgFNi3k/or tjj0ooKfO3kac2Z2FcksGLeVzaAjzqviADxrORdmm9HahcY3WG3Wk/oveegVyguwEE5u +hWt9SXSWS8adGuJwXG8ABX2puYja7f+mXlsMC1VdDCyEyLcmXylTMX9gQjBGA1PWfhy n8kBNWbCeYYNcVYTT642G0mBOKXJ5/RsCl2qDZD+lPlOX5XQQxax/ImafbOr5dO+V94w 85dvqHJuMhKrDvswV4Iq2pE4mnsQWKLxdIlJjmg7HqFtAjta6D3cQQAygluQV4UJ2qh5 C/qg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to; bh=t2Biqpgr+ZrhNlwNTJ3Vx3ZYlTYx6NxMQaPoJHLPouM=; b=gGKk9yEwQYA8tfwWvPyIg89HYQcJU21o+Yp9pVQ9ovXcvcitscf/eKH2QbDjPAxJzh HqyYke9SrqVg4u8Zf7mROvLntv/DLM4AkVUuhoz1JmZRsiGNQmngBkZLEnn2f3C7vDDK WJmX5zsDdoR/k52+zBHIZNzAJdlRR/YQVdvCdiYmN6wP88HKV+OU6uE0F54p4WFIXBEY S/lAZSQ/DHf5REGzg0Z8jRB6vOOil3vDh+2WBd78QpJYG42R1GnzjjQJ3vb3shTdDBgT vLFIQpWxLBdRMRFbB1AReYyetZrXMQaXdaZYJtuem6Pv6LwqcMparBso6R4D1D7O/a+y ecZA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@intel.com header.s=Intel header.b=lDNI9WAQ; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id hp8-20020a1709073e0800b0078d027ceb41si3744849ejc.857.2022.12.01.00.15.56; Thu, 01 Dec 2022 00:15:56 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@intel.com header.s=Intel header.b=lDNI9WAQ; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id F0F1F68BA85; Thu, 1 Dec 2022 10:15:02 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E8E2368B081 for ; Thu, 1 Dec 2022 10:14:59 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1669882500; x=1701418500; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=5YtNoxcg/LlwrY39YL4G4jb4Z7PMtw9f2BnfVdO2gz0=; b=lDNI9WAQjSZhXHPFk/brRRPT+0HRJfUxUxUCKUXQoECzUd8Ud3WYrrRF mWM8/SI9wLCP3P55jVGDXbxVpOfUeMWR0aF1e5WzcmNWwYnYWRjz7SFtL auIRo7MJhejskVuixxhqO88gEWpNKUifyl9SOx5u6YkkyyeOx9nP3Jjt2 s5xXXBD67iRn3S6MnXJ0aVTgZRGbYvAFmuaLb6IURlvic10hGQKe3KSzw 7N98IuOm7p5HTLqT7rP8stQVa0QuVADeghw6R909ULur1uEDDL8ZD5p3x DN3+b3R0uYfXpeA0xCcp45y3OEdNNLo6dDBXzGNha6WYO3fpOmIPnjNdu A==; X-IronPort-AV: E=McAfee;i="6500,9779,10547"; a="298989859" X-IronPort-AV: E=Sophos;i="5.96,207,1665471600"; d="scan'208";a="298989859" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Dec 2022 00:14:54 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10547"; a="675341788" X-IronPort-AV: E=Sophos;i="5.96,207,1665471600"; d="scan'208";a="675341788" Received: from t.sh.intel.com ([10.239.159.159]) by orsmga008.jf.intel.com with ESMTP; 01 Dec 2022 00:14:52 -0800 From: Fei Wang To: ffmpeg-devel@ffmpeg.org Date: Thu, 1 Dec 2022 16:14:04 +0800 Message-Id: <20221201081408.2194579-9-fei.w.wang@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221201081408.2194579-1-fei.w.wang@intel.com> References: <20221201081408.2194579-1-fei.w.wang@intel.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v1 09/13] lavc/vaapi_hevc: Add vaapi profile parse support for SCC 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 Cc: Linjie Fu , Fei Wang , Linjie Fu Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 0p2Xz/bmqwg4 From: Linjie Fu Note that Screen-Extended Main 4:4:4 and 4:4:4 10 supports chroma_format_idc from 0, 1 or 3, hence both 420 and 444 are supported. Signed-off-by: Linjie Fu Signed-off-by: Fei Wang --- libavcodec/vaapi_decode.c | 4 +++- libavcodec/vaapi_hevc.c | 14 ++++++++++++-- libavcodec/vaapi_hevc.h | 2 +- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/libavcodec/vaapi_decode.c b/libavcodec/vaapi_decode.c index 134f10eca5..29ac439b36 100644 --- a/libavcodec/vaapi_decode.c +++ b/libavcodec/vaapi_decode.c @@ -410,7 +410,9 @@ static const struct { #endif #if VA_CHECK_VERSION(1, 2, 0) && CONFIG_HEVC_VAAPI_HWACCEL MAP(HEVC, HEVC_REXT, None, - ff_vaapi_parse_hevc_rext_profile ), + ff_vaapi_parse_hevc_profile ), + MAP(HEVC, HEVC_SCC, None, + ff_vaapi_parse_hevc_profile ), #endif MAP(MJPEG, MJPEG_HUFFMAN_BASELINE_DCT, JPEGBaseline), diff --git a/libavcodec/vaapi_hevc.c b/libavcodec/vaapi_hevc.c index 750738d36e..6ce1e17fa8 100644 --- a/libavcodec/vaapi_hevc.c +++ b/libavcodec/vaapi_hevc.c @@ -586,9 +586,9 @@ static int ptl_convert(const PTLCommon *general_ptl, H265RawProfileTierLevel *h2 } /* - * Find exact va_profile for HEVC Range Extension + * Find exact va_profile for HEVC Range Extension and Screen Content Coding Extension */ -VAProfile ff_vaapi_parse_hevc_rext_profile(AVCodecContext *avctx) +VAProfile ff_vaapi_parse_hevc_profile(AVCodecContext *avctx) { const HEVCContext *h = avctx->priv_data; const HEVCSPS *sps = h->ps.sps; @@ -627,6 +627,16 @@ VAProfile ff_vaapi_parse_hevc_rext_profile(AVCodecContext *avctx) else if (!strcmp(profile->name, "Main 4:4:4 12") || !strcmp(profile->name, "Main 4:4:4 12 Intra")) return VAProfileHEVCMain444_12; + else if (!strcmp(profile->name, "Screen-Extended Main")) + return VAProfileHEVCSccMain; + else if (!strcmp(profile->name, "Screen-Extended Main 10")) + return VAProfileHEVCSccMain10; + else if (!strcmp(profile->name, "Screen-Extended Main 4:4:4")) + return VAProfileHEVCSccMain444; +#if VA_CHECK_VERSION(1, 8, 0) + else if (!strcmp(profile->name, "Screen-Extended Main 4:4:4 10")) + return VAProfileHEVCSccMain444_10; +#endif #else av_log(avctx, AV_LOG_WARNING, "HEVC profile %s is " "not supported with this VA version.\n", profile->name); diff --git a/libavcodec/vaapi_hevc.h b/libavcodec/vaapi_hevc.h index b3b0e6fc1e..7662dca510 100644 --- a/libavcodec/vaapi_hevc.h +++ b/libavcodec/vaapi_hevc.h @@ -22,6 +22,6 @@ #include #include "avcodec.h" -VAProfile ff_vaapi_parse_hevc_rext_profile(AVCodecContext *avctx); +VAProfile ff_vaapi_parse_hevc_profile(AVCodecContext *avctx); #endif /* AVCODEC_VAAPI_HEVC_H */ From patchwork Thu Dec 1 08:14:05 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Wang, Fei W" X-Patchwork-Id: 39557 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:999a:b0:a4:2148:650a with SMTP id ve26csp196513pzb; Thu, 1 Dec 2022 00:16:13 -0800 (PST) X-Google-Smtp-Source: AA0mqf5DxXTdaZPmjU3AADj12kPCNlCKN7SiLqEc9OQQW9TnRXoa7gSPV+fxcutWqML3VE6rGdwF X-Received: by 2002:a17:907:d48a:b0:7c0:9f24:af95 with SMTP id vj10-20020a170907d48a00b007c09f24af95mr5562695ejc.526.1669882573607; Thu, 01 Dec 2022 00:16:13 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669882573; cv=none; d=google.com; s=arc-20160816; b=Y9w9eO8x66GTDHhoCpEMc03ODQn4zx3TESxRjiDyteDA5ei6hv9GueUhPHyKDX+doZ 94EEP7hbGtCHhzsAkXaeFX7N0w+AwjnDXjIjGqrGmrm/Psxk+XINADoFWIiMpTa14SsM eGN8/bzJwGOKWFihputMa4fpuVuhTlhhoVONWQDr0hQgbHq7NJh9CubCT8vMOnjH42YE oFU6NVKDhCqY/8YBiCSdjBknEK0X4H5UFX/+fKegA1GL/lJTsJcsJhZnmf2IRxyJg7l9 nshTFxr043Pp2ii+FcvVvVFxHyF9WJD9TXIORlmjqLr3I+SoT/XhIph19cOyTF+3CxPr jhxA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to; bh=wBEZiqEzkEiVNTfbGcahTxTMXysj/gslBYcYzXRHFl0=; b=qCz9qdUmQTh7qjicOy5zWDo9H4wdI8RT3FHGM7L5L2ROR8ZY3vc12xvT+mTZdFlLC6 8KKGClot+HBtwgxXCbUWIhYyjGOla8POoGupgvUPqjcj/cO/S4PX2Yn2ZvDDoI9nxxId K5WozMBM/AURiqug5Mn/RKr/JR5VAIbAgsmAA5uMFVuAHhePT5ZCsmx+6E/0beJPMhw4 bRps0SgLCYcJODyC04y95h5w9OIra8PVaX1ZoQrXowmGH+CbHYsk5smeZNdDe3lH7jH2 GTXg9xU+FzKda8E9KDauHWldvE9ftY2LbyQFjJawoXAjWh76A6eS3VvbZPrDmZhbXqVS pFKw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@intel.com header.s=Intel header.b=Vtys3+iv; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id k14-20020a170906a38e00b007c0a7286cbesi1792618ejz.708.2022.12.01.00.16.04; Thu, 01 Dec 2022 00:16:13 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@intel.com header.s=Intel header.b=Vtys3+iv; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id DF74968BA6D; Thu, 1 Dec 2022 10:15:03 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 55A8168B834 for ; Thu, 1 Dec 2022 10:15:00 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1669882500; x=1701418500; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=p5/cStIiif4By1hMBXhVKX5ovXQz/wqMfXl432s10Tk=; b=Vtys3+ivFp5vv+cXBxu6F/k6EMtKfvr52BgPAlTKWdBxfliyIuMQrxyv MxMyShjeaBRvZdFcZ3VW2TEC+961BNqU1tCAZZ0/YsmlQnIcQygSvwIS5 cvIRxfckvxLJxyNIukckjpa4Hqvag8lEFvmNCeYnPBuOustMJl1e94TdR Iz9jdEpOSbIRDzHBsgFG6tuChJqTWPoySHNiBC+dqVM9bnLpJCElS7vin cMEb/HbK4TOxD0DsEUC4JNhWMIuVmeXcwxxxjgwqqLlTSSLIOoBdb17wZ ok5Iy0DB/Qb5tDNRPjAmyzLm/0bpHC6G4/8kY7rrzBEk6oqRcJGa5pt1X Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10547"; a="298989864" X-IronPort-AV: E=Sophos;i="5.96,207,1665471600"; d="scan'208";a="298989864" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Dec 2022 00:14:56 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10547"; a="675341793" X-IronPort-AV: E=Sophos;i="5.96,207,1665471600"; d="scan'208";a="675341793" Received: from t.sh.intel.com ([10.239.159.159]) by orsmga008.jf.intel.com with ESMTP; 01 Dec 2022 00:14:54 -0800 From: Fei Wang To: ffmpeg-devel@ffmpeg.org Date: Thu, 1 Dec 2022 16:14:05 +0800 Message-Id: <20221201081408.2194579-10-fei.w.wang@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221201081408.2194579-1-fei.w.wang@intel.com> References: <20221201081408.2194579-1-fei.w.wang@intel.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v1 10/13] lavc/vaapi_hevc: Set correct rps type for scc 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 Cc: Linjie Fu , Fei Wang , Linjie Fu Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: Csoqr4h1SKgc From: Linjie Fu According to 8.1.3 and 8.3.2. Signed-off-by: Linjie Fu Signed-off-by: Fei Wang --- libavcodec/vaapi_hevc.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libavcodec/vaapi_hevc.c b/libavcodec/vaapi_hevc.c index 6ce1e17fa8..005d782819 100644 --- a/libavcodec/vaapi_hevc.c +++ b/libavcodec/vaapi_hevc.c @@ -71,6 +71,7 @@ static void fill_vaapi_pic(VAPictureHEVC *va_pic, const HEVCFrame *pic, int rps_ static int find_frame_rps_type(const HEVCContext *h, const HEVCFrame *pic) { VASurfaceID pic_surf = ff_vaapi_get_surface_id(pic->frame); + const HEVCFrame *current_picture = h->ref; int i; for (i = 0; i < h->rps[ST_CURR_BEF].nb_refs; i++) { @@ -88,6 +89,9 @@ static int find_frame_rps_type(const HEVCContext *h, const HEVCFrame *pic) return VA_PICTURE_HEVC_RPS_LT_CURR; } + if (h->ps.pps->pps_curr_pic_ref_enabled_flag && current_picture->poc == pic->poc) + return VA_PICTURE_HEVC_LONG_TERM_REFERENCE; + return 0; } From patchwork Thu Dec 1 08:14:06 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Wang, Fei W" X-Patchwork-Id: 39558 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:999a:b0:a4:2148:650a with SMTP id ve26csp196561pzb; Thu, 1 Dec 2022 00:16:19 -0800 (PST) X-Google-Smtp-Source: AA0mqf6A0M3mi4C2w7O8PXpZ/GJOiO7FUsbC90Sb8Ba57m2VBGX9n8RRG5QiSNX2uj9WVBOQm2IC X-Received: by 2002:a17:906:a113:b0:7b2:7c9a:1849 with SMTP id t19-20020a170906a11300b007b27c9a1849mr54478166ejy.733.1669882579480; Thu, 01 Dec 2022 00:16:19 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669882579; cv=none; d=google.com; s=arc-20160816; b=jBAcaH1fSdAMgcD7dSd/SA9QrOEtEXSU2qMgiQqqE//D2qFPm3fTDKrKL/AvXKOsre YnzLbLBGOwbvdFg+GHQbLhj9fDhaeo3/bqmKi8rDo+cs97dMXoFZS7NsZWj7971ZUHhT vEajAPAXnxGeZRoN4qQ7RgnZHka3RePQ/4C/m7COU3+64cpW39EiTxU6uXM7MTt0yf0p lAPuc7rvlk6J5zzt7w/EAbJIhI6zIBK7RD4IE+TTzE2y8wdke8rJ16eJvkyLZVpkMGHQ 1sxtYf40kXsp8exin3x4mQTRS8jxVdAQaRWVKSFze0sTEAEHsXJ59f8wQAqL4pGcXKWK 5bqQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to; bh=CACMbwAk92labDBNC3MJAcZLDsdvqmCyx4hH5748EIY=; b=obKv2hzK7qGaqag9vKO+9ZscfBDB6d/IJFyZr3njyviYsfXvlHkqOBpIvH8an9+LZ/ jXxgL6dN7oCwueHU7iFEP5dTsbgOV8L+uSJnaPPV9LAHOQYcvJQqteomCw0VG46xarLf S4ZeQ6jOZo1Gv09Q/DOpVSZERn5myRneQ/oSqXtAWq/9cfG+XK00WjwV0TZ6jNREpAmo A+CWI1P7tNoJXfIeKZAK9EXdeIlPT6zWrWGBpd0c1LkLjidZGaMjFb19JCfi6LqbjqJF hWK4nRpTOIHs1m8GwOLpkMRoKK+E8qyM1YKP32B4O7pJdOBppwFRD2MfDGvDoJCgz1Na OYGA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@intel.com header.s=Intel header.b=OQC2AiLa; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id o18-20020aa7c7d2000000b0046aeb223d08si2702192eds.450.2022.12.01.00.16.13; Thu, 01 Dec 2022 00:16:19 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@intel.com header.s=Intel header.b=OQC2AiLa; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id D1C6068BAE1; Thu, 1 Dec 2022 10:15:04 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D8D6268B081 for ; Thu, 1 Dec 2022 10:15:00 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1669882501; x=1701418501; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=OAjrQI7H5aWX5rsa3qZxDU6ypz61VZtQrWcH4A2cZMw=; b=OQC2AiLa4NVFuY10P/Kr4ypIJoTLE8y35eZR1mVI4AKP+r45bmhi3x3a P2CiMpL+qKuFmYlCZdXVA8ix7bptnCsNiSw13ri1WSzjgA3yX/Knvk9kq Svt+jD/+a7IvVstmzhrF3nGRlL0CSBGfLh8WJEYrznlG+LeCRkhfYLVed I16vBsl4ndG8du3OhCO5FM1GonFUBt0jpD9uUGhWDCP71dHXTBbnRM/f6 Wndvd++yMpD+2tmSe5yhSvcBVoYfrGDJvU6NoqXG6iKTxto+hIkmVb762 ocJ9BYYCcn07Sdf14TeB4wz6GlwqiS2xz9z5whDUGOKz/Xd5ApN1Gr5bt g==; X-IronPort-AV: E=McAfee;i="6500,9779,10547"; a="298989867" X-IronPort-AV: E=Sophos;i="5.96,207,1665471600"; d="scan'208";a="298989867" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Dec 2022 00:14:57 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10547"; a="675341796" X-IronPort-AV: E=Sophos;i="5.96,207,1665471600"; d="scan'208";a="675341796" Received: from t.sh.intel.com ([10.239.159.159]) by orsmga008.jf.intel.com with ESMTP; 01 Dec 2022 00:14:56 -0800 From: Fei Wang To: ffmpeg-devel@ffmpeg.org Date: Thu, 1 Dec 2022 16:14:06 +0800 Message-Id: <20221201081408.2194579-11-fei.w.wang@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221201081408.2194579-1-fei.w.wang@intel.com> References: <20221201081408.2194579-1-fei.w.wang@intel.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v1 11/13] lavc/vaapi_hevc: Loose the restricts for SCC decoding 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 Cc: Linjie Fu , Fei Wang , Linjie Fu Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: hs2hzYJOUegn From: Linjie Fu Allow current picture as the reference picture. Signed-off-by: Linjie Fu Signed-off-by: Fei Wang --- libavcodec/vaapi_hevc.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libavcodec/vaapi_hevc.c b/libavcodec/vaapi_hevc.c index 005d782819..ca14052d56 100644 --- a/libavcodec/vaapi_hevc.c +++ b/libavcodec/vaapi_hevc.c @@ -104,7 +104,8 @@ static void fill_vaapi_reference_frames(const HEVCContext *h, VAPictureParameter const HEVCFrame *frame = NULL; while (!frame && j < FF_ARRAY_ELEMS(h->DPB)) { - if (&h->DPB[j] != current_picture && (h->DPB[j].flags & (HEVC_FRAME_FLAG_LONG_REF | HEVC_FRAME_FLAG_SHORT_REF))) + if ((&h->DPB[j] != current_picture || h->ps.pps->pps_curr_pic_ref_enabled_flag) && + (h->DPB[j].flags & (HEVC_FRAME_FLAG_LONG_REF | HEVC_FRAME_FLAG_SHORT_REF))) frame = &h->DPB[j]; j++; } @@ -222,7 +223,8 @@ static int vaapi_hevc_start_frame(AVCodecContext *avctx, } #if VA_CHECK_VERSION(1, 2, 0) - if (avctx->profile == FF_PROFILE_HEVC_REXT) { + if (avctx->profile == FF_PROFILE_HEVC_REXT || + avctx->profile == FF_PROFILE_HEVC_SCC) { pic->pic_param.rext = (VAPictureParameterBufferHEVCRext) { .range_extension_pic_fields.bits = { .transform_skip_rotation_enabled_flag = sps->transform_skip_rotation_enabled_flag, From patchwork Thu Dec 1 08:14:07 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Wang, Fei W" X-Patchwork-Id: 39560 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:999a:b0:a4:2148:650a with SMTP id ve26csp196684pzb; Thu, 1 Dec 2022 00:16:30 -0800 (PST) X-Google-Smtp-Source: AA0mqf7563zZaWNESwo6T/R4thiC5QrD9j8uxMOeC9ZRK8CkB7uecAD5ORrZJ/H8i8/HsNIPWRbK X-Received: by 2002:a17:906:d211:b0:79d:f5f2:6f55 with SMTP id w17-20020a170906d21100b0079df5f26f55mr36609367ejz.531.1669882590333; Thu, 01 Dec 2022 00:16:30 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669882590; cv=none; d=google.com; s=arc-20160816; b=p9BB5Fy+guZwcMS/aFIHMJETfLIThn7+J2MnMOQS+WEravbElRwj49+OZzmV4wuGg8 DRhXtwnBVcF1mQQE8b1lcOGG3LdomxWEbEcjDsB5czlCftHGc31q/OTD51BdBDt1v3rP TfwrQZ9ZhyFmOo3RkFS8EZP8BMUwvbMX6R+YAcxbjMFgq5t0aMH1d8wQXO+edmNLhyuL 7NyuQdGJjqwXmtSjaH1rw7Dy46HowQtRAHGElKF+CbavadM56+HgNtUlKdt/URUlFZ+G seYv+O5dXiobHl6B5seTatvlcBJsu8f+kTxWicOR58JMOiNyx9E3CRHhiwS6UiS+Sd1j pCeQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to; bh=d0KfVYsD3idYq1KYCa0gPCCUS46apI/blf5XtaOiLhs=; b=HrrT7CIV8g93gLEkYZypcf68FPeXhUBHOk1Yr+iJ0QJdGdIXrtGtCe8gm6IHdIH6MK 2pbrGG/7KB7mg5fWf06uOWXt1YQeM7JKW3gJdiCzg6i48OnFn9HuNm7Fc+mXjmqWObYu RdgC0kYZGhFIKKi6zsKghkMS/nJc4pK8hUDV1rOahqD9/7er/F11VKmW6eZJZcgfW1Hg Q9MaiqakyV7unrO266IDosbNlq4If5IkU+8TrKK/F00HEtUJ2NrTQ2eP25Y9/gWTfqf+ H59Wi8IW8eTGL1rkPosu023IVCBTw6GSXMp3gaIqcRpb765WLN8JfFtkIP7RV8vHQKB/ LBuQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@intel.com header.s=Intel header.b=EwT13oil; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id ga5-20020a1709070c0500b00788a4c018b5si3012610ejc.806.2022.12.01.00.16.29; Thu, 01 Dec 2022 00:16:30 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@intel.com header.s=Intel header.b=EwT13oil; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id C0B8368BAF5; Thu, 1 Dec 2022 10:15:06 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5B80668B937 for ; Thu, 1 Dec 2022 10:15:01 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1669882501; x=1701418501; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=OHUixGZsACCW5pMzYM1ZohkUKZtuOF6n2w2a3NdJRVs=; b=EwT13oiluzZJlGvXVNCz6vyqtiwMdJbeyMWBZnjGYDTfdUkFIN8jWiBe tHv4l9NI8qJsZtMki6x2Qk/MklvoJpHdFQRp8BTbjGz9+1woMkk22c3KT g63S+WxbsznijsQBFy6SdjIBIDq8Xy88np1DVorodIYBBQBGSjOkbkHOU qPAZQS9aHirpEyazcXGX4ZGDNIwtjfh17qJvNMHUih2EZsXKSGXz5ufNd n+hBGvdBSBWCvc94GS+zXpZp1VxsSN2CYH6+jf6KWX9gnXf0NfMgUTeJi Q+JTYosqskGWdKmBgzdrbKb/aK4d5iE8vYXP3I9PRE8HWp5E2Hi/K/wXw g==; X-IronPort-AV: E=McAfee;i="6500,9779,10547"; a="298989870" X-IronPort-AV: E=Sophos;i="5.96,207,1665471600"; d="scan'208";a="298989870" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Dec 2022 00:14:58 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10547"; a="675341799" X-IronPort-AV: E=Sophos;i="5.96,207,1665471600"; d="scan'208";a="675341799" Received: from t.sh.intel.com ([10.239.159.159]) by orsmga008.jf.intel.com with ESMTP; 01 Dec 2022 00:14:57 -0800 From: Fei Wang To: ffmpeg-devel@ffmpeg.org Date: Thu, 1 Dec 2022 16:14:07 +0800 Message-Id: <20221201081408.2194579-12-fei.w.wang@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221201081408.2194579-1-fei.w.wang@intel.com> References: <20221201081408.2194579-1-fei.w.wang@intel.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v1 12/13] avcodec/hevcdec: Replace number with enum 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 Cc: Fei Wang Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: oOYawSAbrDqR Keep same style with IS_IDR()/IS_BLA(). Signed-off-by: Fei Wang --- libavcodec/hevcdec.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/hevcdec.h b/libavcodec/hevcdec.h index aab816791e..94609e4699 100644 --- a/libavcodec/hevcdec.h +++ b/libavcodec/hevcdec.h @@ -75,7 +75,7 @@ #define IS_IDR(s) ((s)->nal_unit_type == HEVC_NAL_IDR_W_RADL || (s)->nal_unit_type == HEVC_NAL_IDR_N_LP) #define IS_BLA(s) ((s)->nal_unit_type == HEVC_NAL_BLA_W_RADL || (s)->nal_unit_type == HEVC_NAL_BLA_W_LP || \ (s)->nal_unit_type == HEVC_NAL_BLA_N_LP) -#define IS_IRAP(s) ((s)->nal_unit_type >= 16 && (s)->nal_unit_type <= 23) +#define IS_IRAP(s) ((s)->nal_unit_type >= HEVC_NAL_BLA_W_LP && (s)->nal_unit_type <= HEVC_NAL_RSV_IRAP_VCL23) enum RPSType { ST_CURR_BEF = 0, From patchwork Thu Dec 1 08:14:08 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Wang, Fei W" X-Patchwork-Id: 39561 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:999a:b0:a4:2148:650a with SMTP id ve26csp196757pzb; Thu, 1 Dec 2022 00:16:38 -0800 (PST) X-Google-Smtp-Source: AA0mqf7O+3kASP0ea4jVbpAvgCMQryHDLdbPmoL3QQ6iDJ4JUpDrEYz92WXQbYsC5zWpaTik9eWO X-Received: by 2002:a05:6402:35cf:b0:469:5ee9:4a76 with SMTP id z15-20020a05640235cf00b004695ee94a76mr40754406edc.405.1669882598342; Thu, 01 Dec 2022 00:16:38 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669882598; cv=none; d=google.com; s=arc-20160816; b=e5e6hPsYft9ZKukOi9k2gJ2OakVpw68++CkwZay4xsjerqZD4vdbJdoAva55soc3zD +18dzDIdxSoZZcsonZqWqSsPdtqId0xCFHI4B9CyGyng4ZaUcpO4CHNsaLqwcLNmdE8n F1hwcLSAhpEDx64hEvhyjeWMOinJ266+Su6jR7cjmzyRhX/o95kqiT2J3KJcCNF7Hz8c MADKm4icWFCf9TznuhAqTjVl7zlClZJ5152fPbVaLgQkG4nHmy/3dVhlFUTTzXr+hCjq EhED6ySr4XurKqW7Nh+tXk12HmW+sCzrkG3KuZvJmFz4uzFujTc6z9Lkkx3Jx1jK9ST5 IjHg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to; bh=LLCoUL1Y5ywOJOr41nReVTyM9DcUTlsgtscX7nrW6G0=; b=iz1huigPvoLte3jldlf7JI4veaWZZdtw2IQD1rRrSy4TQgNnQyswedefFqFHcPUwci tszYsloAy+Yd3ij7QRh7FMMIhT3wQM7k9tsE9dVwAm2uG7x2hVKfrk3dR8QLmoru1WB9 Mw4r/Ouusu2Ck+l7HIOwudhT/x/+BxoUZ8NwgA3Eiwtafzz/wXDSxxVP16HgZPwlV7/e v8k9qgB1SzjP3mL0ptiyEETs+q9/pv356efdhsuswlHj5x6fgciHoRxA0NhYwi0aKGQP DMGKUcbzEOMjOa8J7oG7H50KXdwKq2FH6AL10oeFkupkY7caEeCxbsafhFIUQuS/dero bjAA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@intel.com header.s=Intel header.b=EVOYXV6O; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id s18-20020aa7d792000000b004697e00bf31si2979724edq.90.2022.12.01.00.16.37; Thu, 01 Dec 2022 00:16:38 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@intel.com header.s=Intel header.b=EVOYXV6O; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id DA6A768BA53; Thu, 1 Dec 2022 10:15:07 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 43C8368BA90 for ; Thu, 1 Dec 2022 10:15:02 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1669882502; x=1701418502; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=EOIJ5tAAJuBBGhjJVSvTwosLxPXhjmBMmpAjC6/v2hU=; b=EVOYXV6OzMV/D8NlLWnS5zdIa3/2VQq/b41XujxJCTHPl//L07QBWjGO 5e2FFhZhGd5nN+ECWavhTwJKY9dch8IY5dKxD+QPC2BAhCpORu7zKIWEV MJ+gep9AuSY255HtyJMKpGAGof6rdrLqUPUn5dGkYvsH0obWPpwrBiP9h ivZqrqe6n130n2xZYqbt4i9gYTVdE8y5of8KOw3ZC2DHejWck8sby6B+K OZTXe5ynSizRbVt3u+PE5VCQeeRWk7bFpZQYwtm4Wr1ZTRHN5zfQU5tgb ZVE9lzupQLB70x3asqR3NA8FIdEtL6wrxdMluR2S7sz6L2MqrK6pGovds w==; X-IronPort-AV: E=McAfee;i="6500,9779,10547"; a="298989876" X-IronPort-AV: E=Sophos;i="5.96,207,1665471600"; d="scan'208";a="298989876" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Dec 2022 00:15:00 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10547"; a="675341802" X-IronPort-AV: E=Sophos;i="5.96,207,1665471600"; d="scan'208";a="675341802" Received: from t.sh.intel.com ([10.239.159.159]) by orsmga008.jf.intel.com with ESMTP; 01 Dec 2022 00:14:59 -0800 From: Fei Wang To: ffmpeg-devel@ffmpeg.org Date: Thu, 1 Dec 2022 16:14:08 +0800 Message-Id: <20221201081408.2194579-13-fei.w.wang@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221201081408.2194579-1-fei.w.wang@intel.com> References: <20221201081408.2194579-1-fei.w.wang@intel.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v1 13/13] lavc/vaapi_hevc: Remove duplicate code 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 Cc: Fei Wang Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: O+XxqNgMUeUW Signed-off-by: Fei Wang --- libavcodec/vaapi_hevc.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/libavcodec/vaapi_hevc.c b/libavcodec/vaapi_hevc.c index ca14052d56..b3ff2f7344 100644 --- a/libavcodec/vaapi_hevc.c +++ b/libavcodec/vaapi_hevc.c @@ -538,12 +538,6 @@ static int vaapi_hevc_decode_slice(AVCodecContext *avctx, pic->last_slice_param.rext.ChromaOffsetL0[i][1] = sh->chroma_offset_l0[i][1]; } - for (i = 0; i < 15 && i < sh->nb_refs[L0]; i++) { - pic->last_slice_param.rext.luma_offset_l0[i] = sh->luma_offset_l0[i]; - pic->last_slice_param.rext.ChromaOffsetL0[i][0] = sh->chroma_offset_l0[i][0]; - pic->last_slice_param.rext.ChromaOffsetL0[i][1] = sh->chroma_offset_l0[i][1]; - } - if (sh->slice_type == HEVC_SLICE_B) { for (i = 0; i < 15 && i < sh->nb_refs[L1]; i++) { pic->last_slice_param.rext.luma_offset_l1[i] = sh->luma_offset_l1[i];