From patchwork Thu Jun 30 22:29:36 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 36562 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:8b27:b0:88:1bbf:7fd2 with SMTP id l39csp620558pzh; Thu, 30 Jun 2022 15:30:55 -0700 (PDT) X-Google-Smtp-Source: AGRyM1uviha/M3xVaa/WZU7av3Xzy1pk7g73RZ1Kx0zUtesnx5HweDIYzH15Yjhi5GLh3W3as90f X-Received: by 2002:a17:906:c150:b0:726:b82e:ffd4 with SMTP id dp16-20020a170906c15000b00726b82effd4mr11443963ejc.19.1656628255495; Thu, 30 Jun 2022 15:30:55 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id cs12-20020a170906dc8c00b00711d9021212si22983302ejc.566.2022.06.30.15.30.55; Thu, 30 Jun 2022 15:30:55 -0700 (PDT) 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=@outlook.com header.s=selector1 header.b="XQ6/kJHb"; arc=fail (body hash mismatch); 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; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=outlook.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id C78D668B7B8; Fri, 1 Jul 2022 01:30:43 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05olkn2046.outbound.protection.outlook.com [40.92.91.46]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9E9FA68B77F for ; Fri, 1 Jul 2022 01:30:37 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=W6m5DbUlYfdEyqlDFUXgmEBYKiSMj/0qijp8vvFa2J88tGpMDi+dbvPc1KhbBfx3V/Rz173fJaPusO1clG5+wM/31I57U9dRO+2GzrAm+GEuAsXGu0e5w9Sm48/yKbippcCcQdD9++0Q/KCo/hJxDZiojU3TgASxJ2CbnFole8UbkpLt6CsT+bnqaX33rO3zzfk9N+zU1gwZHoPCfjZWU3AsX81NddJU46KawkugxoHOYwkEt1TFCmHgjzsGbw13YIhP0Tt2S+0PBoJYcsdy+fbdK1DQ2w43U4K4liaT2zKa6eoJ4yb7pK1n2iUIqLHhGK3HzWJYhHKUbeyOQ+8sAA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ovuepMygSgjoArTjgd4auUR0pO7nNTKYQUTMzKZ1otA=; b=lch8gUFSLVz713EgOvTy1LGvCWEhLE4RsFXgZRCclQyq65Ty6elkFrbrQYMPxrl4r1O801v3jOl+OolWsHZCeJFxnbi/fzjMPSSRW9joNfPX+cwrxgHGEjvvoVV7z7jGhCZ3lN1/udXwTOdW7NZmNpgamjl2aeiS6fRKz8jOC9Kg2L5FikkqxZgCeFsPn7gOwi0k3stsw0DeWQpdA5LCE1bSWiLKba/tfrx7rqof0K5/m1iKGqH88mChNzC4c9lZKpBzdKSwbxnPC9PkxlwGIwsQDrPfPi6Uu7Mdn4NdzDX7h6h/KyO8694bLtlFuVNE5ZVJ4DAqTJru3XZzcfjTkA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ovuepMygSgjoArTjgd4auUR0pO7nNTKYQUTMzKZ1otA=; b=XQ6/kJHbZ8Um/ol/MmqdzJhWw5Mh6XLbSIpoq7VK9oIpTjoHpgNMMz/CF8EJtD5TC+VKe2BVrBKeY1UAM/I1nKrObOYUfPok9r7Jy1rs0D5MKACYrX2mIxVDR5ideZgle3SONTIY9C3XEteRIy+Ey6EV3mVqEXU8nDfcJfR9qq3f8a6OPrjWhDcl5j7y2LjNzAxJHSGTaaFyG4ayTrk3MNjwUp+8cZfqdQNrArsp14sDfLDNAqadkunrNH7H5aTAdbndi2S8EgIoRgjMQsB51jJzXVEFtU9jOdYAhSbUZoYKHn/VC5ZZI+bS384isRFUJIC1rIFR+rJCZOHje/WfWg== Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) by DB3PR0102MB3546.eurprd01.prod.exchangelabs.com (2603:10a6:8:d::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5395.15; Thu, 30 Jun 2022 22:30:33 +0000 Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::60b9:9f29:40cc:f01c]) by DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::60b9:9f29:40cc:f01c%10]) with mapi id 15.20.5373.018; Thu, 30 Jun 2022 22:30:33 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 1 Jul 2022 00:29:36 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [sEiYgezVhSlV6B/8hv7EEhP6iBMIVVgb] X-ClientProxiedBy: FR0P281CA0099.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a9::17) To DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) X-Microsoft-Original-Message-ID: <20220630222949.1758625-4-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 724ea7a2-c1a7-4dff-a05f-08da5ae82529 X-MS-Exchange-SLBlob-MailProps: q+fD6XS3/UIsx7KfB5fXwX9/lr2btQgA1S/E/O/N52vhp0/lQns23JRbmn2Q5ETIWjlKXf48qroKcETiXsVaJTa7VPXpSgDdlhvE05GnVntIDIsveJgg2oQjR5lAC7RX2FTKBL/3OxGNBA1rysAMHg9/smWo6SV2Ye+javlY9bzGaiRvxDgum82O2/CYojygF964cAzi3shOAJZgl40v8Jh2ROGeDmfD+8DH/3x7E3CIhR7XwndQzy18xs0+CtdcYB2C43icw0Dw9zjD5WyfqIvWMIkW9FBzFyY3R2pfmJeEVsElJfv6RNmLppUv8dzBq8ej5O5Bgrl/J57LnL2O1QK+gu1gTVbvY3S5pt1biIbzhqBryhy/ACzTBsLy53s6Wz/fYrfrSiAyk5gDlbkT/6vPwxfpi684NjKf+3KAg1T2sy0x/dpnniBedJiRkI/cFXcytIvLOGKAEuX7xD8l1fQp5OdgCl+z0BdPQVQbVs7g96bTw/jWRS96gA1Y8cXg2Gd1ni2uncwCPZy9W4dOrQhgySgwz5SFzGMuijiOkhe2CbTgDlqhpVjJMX1CNzRtNJFH1uXZy9ANjCLfW9Z724XlYMy9kYjgSV/FSCsoXgSA5U3X49fBcvUZLzNHpxkRdJNVHqFtw5Qwu8imbZZ/AIuJN1YzJsbYwn/RerA42ZYP7yN1RKHYawCE8X/7AYrd5RhmZKW5PB+0O7Mc6zWm7g== X-MS-TrafficTypeDiagnostic: DB3PR0102MB3546:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: POq61vfGqQEvY/itMtTX/WggbVO5I2jxF4qMVldBRiBQLcbjKYpBG0RjXQ8oGJR/AvJhPbCzZdFb82WFSFakPiNSScsW2M9quiWo8lj4txXNVomMhNSsEhIibUPAX4TtHd67R0jOEn9Vql3sMDC6GbXK74sD7R60WidciSfkmW1kF+9DE6NRqx+Id3EQd8E6t+v0YRz8YQbrRYTrM9FM0kEREOmnQC1CSJMgJtDEyou3VISXUdSFD2QQ2GRDhlp9SDe5QWKHWW8z7pGA3vf4qKP70hgllrvHxYrOs3hmJvrO7+/gxgYfbdwXs6bvaZqZf4jiraU+WES1qVlNsxxPj7vEQ/REXs+8t9xTnq9S12ysbj8eJE7kHq5sAkF9OMZ4uku4JO/gqyo5vwJJZ0UFeZ0c4UTLAn1EtmnoIbMGM1l7Ey/WrrravyK6dX1aFJHZuFw5mzSjF+3OmDrbh/7UEhUZadqg4/FnFNS/sv2ozXGbsNmPKqc420+Xticxy1WwE1s86jOzBQXfjAAECBPoaYm0uVJwU2pKOBI/vRtxCQdjWr+lhnwdTEbNzvtjt9sZwpKD87W/uop4B4UC4USNJTrU/MdJLXY7Gd2ZLw3mn3H23fF7/eZ4hjs5BBWep2fex0PCe7ONinF47DtR9q0J0i19+7vxyekfGwO5Ai4NL+7eLdTiUF/+Rm6gyYl2f4srnXxBEo2ErBvR3+eyVf5X3w== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: N5wHK/jMtjxB+0thPSubgWaD69umhV7s3a46OgrTJd0WYgJpeQWHLQYtcV3c2qVj/J7SkvCiz0sWdtX2+rrcrkvV7oN294Obx/23TcoyLut4fO5FBLqybqoEG0Kh6VCHNzOuBiyCRitiWBPIbg9vN/7MlmF+kLvvqy4MNFLMYlB2cn2+E9i7ZTOtyoLjstLF85kOIimsfUe93nB8WWafSTF1TkGBdT2HOBgK9SnSKihRAEYjhA3vNxZSGBUq411k2zUGWEFyTtArXUYWfAa8Yfljg7oHF/pjdU54w0LUkvdxCPZqhzcR5RGRycbyYMjN1tqeenEqXcirse4IqvDB/CEk00+3l23BqxNWjKT4sChRjRcSwBKkq3NPov4JeN3GczDtg80kn4oWX/Dl3eSl4czje8eDsMR+M+uhjiXZy0sIXF9sEFVROYCtc4gkQg74liVZJoA+Qh6MEWtOsQq+KlDH5bSqvbd5ltI+avK4Or+4Lu/43yZ2yWX7nAOQY8ePlafFaoypqFbvkm7h3fVWVMO/4xMXPv3puloFYDSmZrNNtNTnZa/3FOucvzck7SdPpXe1Te+KAOv13kL0wr9vok4sgfurR28H8Uwt5O1v2xklhXH/kwTvxzied+FcdNOVI48GZJW0r/RdxtEINjyARM/UcRuEFkExbAfG8fG+WbVl1nI5zrflMf6XDLZYT9tyTljm0N/evAXikK3h5HByaYBA4wU04uvZ7IYaIz85BXaAWT5J6auf75mKoF8cnJ+KctiYnSh7ir2Z1lMXbiVUscXXRmbnaplX/orukA9EQC7JHFwll5e7+JdZN3WKcxttpWGeXyXuK2LLcYnxNm+ttAxrpqlK71cwfEHfDbQnliFTKNxQd8GrPY7NqkJ7AGkdlyQo24FfpAGUAUt5kvQsH5yehOGRY91ldubXxZZVJpBI+s/ZGj8QpofMcihtTgEDSBBXSRPhs9k3IuSavPlRtnsrW2/qiPDYFs5vdQirReHJP3yICPwp7+ecQDDR1WR9g19zsW9Gkilo6BCoVqT/K8zjNZmmhrcqqDc0UbjBMvsnn5HTl0JpbzrMpA2zWjmHsKBf9pt5YsmFHdbsb5FthB6Lk4A8QPrVTj/OxAa+v8ozKD/CCo9cIxjz5gQORWtiDXV5oGW1Gt0zR6aD2f2bPm5zSzZ3sNcJG2PBP+aiYyQJZvKUbuOS435YLRlVb65b/HBR862mkLh7ufQioHDLXj2z0MlOXEnTElgSPMi7mUg4cwvMQHC1eeJrdlKDh1/bxtf0JCjOAQSyymOjKxPxo8AhA2uvH6PCiUsQNWHfA2o= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 724ea7a2-c1a7-4dff-a05f-08da5ae82529 X-MS-Exchange-CrossTenant-AuthSource: DB6PR0101MB2214.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jun 2022 22:30:33.1712 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR0102MB3546 Subject: [FFmpeg-devel] [PATCH 05/18] avcodec/hevc_refs: Constify ff_hevc_get_ref_list() 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: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: +LKgt9j2HrfP Signed-off-by: Andreas Rheinhardt --- libavcodec/hevc_filter.c | 16 ++++++++-------- libavcodec/hevc_mvs.c | 10 +++++----- libavcodec/hevc_refs.c | 5 +++-- libavcodec/hevcdec.h | 4 ++-- 4 files changed, 18 insertions(+), 17 deletions(-) diff --git a/libavcodec/hevc_filter.c b/libavcodec/hevc_filter.c index 1ef214b0ff..7b53c66c3b 100644 --- a/libavcodec/hevc_filter.c +++ b/libavcodec/hevc_filter.c @@ -645,8 +645,8 @@ static void deblocking_filter_CTB(HEVCContext *s, int x0, int y0) } } -static int boundary_strength(HEVCContext *s, MvField *curr, MvField *neigh, - RefPicList *neigh_refPicList) +static int boundary_strength(const HEVCContext *s, const MvField *curr, const MvField *neigh, + const RefPicList *neigh_refPicList) { if (curr->pred_flag == PF_BI && neigh->pred_flag == PF_BI) { // same L0 and L1 @@ -734,9 +734,9 @@ void ff_hevc_deblocking_boundary_strengths(HEVCContext *s, int x0, int y0, boundary_upper = 0; if (boundary_upper) { - RefPicList *rpl_top = (lc->boundary_flags & BOUNDARY_UPPER_SLICE) ? - ff_hevc_get_ref_list(s, s->ref, x0, y0 - 1) : - s->ref->refPicList; + const RefPicList *rpl_top = (lc->boundary_flags & BOUNDARY_UPPER_SLICE) ? + ff_hevc_get_ref_list(s, s->ref, x0, y0 - 1) : + s->ref->refPicList; int yp_pu = (y0 - 1) >> log2_min_pu_size; int yq_pu = y0 >> log2_min_pu_size; int yp_tu = (y0 - 1) >> log2_min_tu_size; @@ -772,9 +772,9 @@ void ff_hevc_deblocking_boundary_strengths(HEVCContext *s, int x0, int y0, boundary_left = 0; if (boundary_left) { - RefPicList *rpl_left = (lc->boundary_flags & BOUNDARY_LEFT_SLICE) ? - ff_hevc_get_ref_list(s, s->ref, x0 - 1, y0) : - s->ref->refPicList; + const RefPicList *rpl_left = (lc->boundary_flags & BOUNDARY_LEFT_SLICE) ? + ff_hevc_get_ref_list(s, s->ref, x0 - 1, y0) : + s->ref->refPicList; int xp_pu = (x0 - 1) >> log2_min_pu_size; int xq_pu = x0 >> log2_min_pu_size; int xp_tu = (x0 - 1) >> log2_min_tu_size; diff --git a/libavcodec/hevc_mvs.c b/libavcodec/hevc_mvs.c index 7477efcf52..516e4a6b7a 100644 --- a/libavcodec/hevc_mvs.c +++ b/libavcodec/hevc_mvs.c @@ -113,7 +113,7 @@ static av_always_inline int compare_mv_ref_idx(struct MvField A, struct MvField return 0; } -static av_always_inline void mv_scale(Mv *dst, Mv *src, int td, int tb) +static av_always_inline void mv_scale(Mv *dst, const Mv *src, int td, int tb) { int tx, scale_factor; @@ -127,10 +127,10 @@ static av_always_inline void mv_scale(Mv *dst, Mv *src, int td, int tb) (scale_factor * src->y < 0)) >> 8); } -static int check_mvset(Mv *mvLXCol, Mv *mvCol, +static int check_mvset(Mv *mvLXCol, const Mv *mvCol, int colPic, int poc, - RefPicList *refPicList, int X, int refIdxLx, - RefPicList *refPicList_col, int listCol, int refidxCol) + const RefPicList *refPicList, int X, int refIdxLx, + const RefPicList *refPicList_col, int listCol, int refidxCol) { int cur_lt = refPicList[X].isLongTerm[refIdxLx]; int col_lt = refPicList_col[listCol].isLongTerm[refidxCol]; @@ -163,7 +163,7 @@ static int check_mvset(Mv *mvLXCol, Mv *mvCol, // derive the motion vectors section 8.5.3.1.8 static int derive_temporal_colocated_mvs(HEVCContext *s, MvField temp_col, int refIdxLx, Mv *mvLXCol, int X, - int colPic, RefPicList *refPicList_col) + int colPic, const RefPicList *refPicList_col) { RefPicList *refPicList = s->ref->refPicList; diff --git a/libavcodec/hevc_refs.c b/libavcodec/hevc_refs.c index fe18ca2b1d..6a70c817b0 100644 --- a/libavcodec/hevc_refs.c +++ b/libavcodec/hevc_refs.c @@ -55,13 +55,14 @@ void ff_hevc_unref_frame(HEVCContext *s, HEVCFrame *frame, int flags) } } -RefPicList *ff_hevc_get_ref_list(HEVCContext *s, HEVCFrame *ref, int x0, int y0) +const RefPicList *ff_hevc_get_ref_list(const HEVCContext *s, + const HEVCFrame *ref, int x0, int y0) { int x_cb = x0 >> s->ps.sps->log2_ctb_size; int y_cb = y0 >> s->ps.sps->log2_ctb_size; int pic_width_cb = s->ps.sps->ctb_width; int ctb_addr_ts = s->ps.pps->ctb_addr_rs_to_ts[y_cb * pic_width_cb + x_cb]; - return (RefPicList *)ref->rpl_tab[ctb_addr_ts]; + return &ref->rpl_tab[ctb_addr_ts]->refPicList[0]; } void ff_hevc_clear_refs(HEVCContext *s) diff --git a/libavcodec/hevcdec.h b/libavcodec/hevcdec.h index a4cea2284d..271a55df2f 100644 --- a/libavcodec/hevcdec.h +++ b/libavcodec/hevcdec.h @@ -587,8 +587,8 @@ void ff_hevc_clear_refs(HEVCContext *s); */ void ff_hevc_flush_dpb(HEVCContext *s); -RefPicList *ff_hevc_get_ref_list(HEVCContext *s, HEVCFrame *frame, - int x0, int y0); +const RefPicList *ff_hevc_get_ref_list(const HEVCContext *s, const HEVCFrame *frame, + int x0, int y0); /** * Construct the reference picture sets for the current frame.