From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 307BD476C9 for ; Tue, 19 Sep 2023 20:03:12 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id F114768CA04; Tue, 19 Sep 2023 22:59:21 +0300 (EEST) Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01olkn2042.outbound.protection.outlook.com [40.92.65.42]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5861368C9FF for ; Tue, 19 Sep 2023 22:59:21 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=e1a6e3Zrhj/NzO/CIjDjdEiBvazEnZQY7EWud1DBC6AMay3765xdLlIciFp138ZdZCrIxcMHpUCkpbFA4ACiemcGtigJzB6vecVkJuraLo4Rx2hMzTkr7ml6M6r4eh1AtnMsorkXjwVIIhiX8XC/6CRCFHHwgOYgVZc+nnAKQHp6h5dJIRAdGiPlNAjsYfjp1tK6Yg9SdXrN87FRyO9clVpgyKJNEwlZPLnicTLSd0d+fMFX+ls6+KuSeiM+/eDsDbQP280BJNmjDca6hmPfJBc9LsKX//maTKVi6OKzAGe1w3/1PXn2GFtIaltrlcVEkQ6UQJH+KQojGJIgicqYSQ== 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=IXG/RcVkdoPVXd183wHHga6F35BDW8CMsY6332TZoss=; b=T9FaA8X2R16UFqGJBTNBJbW6HhK7elUb8l3QyJ8QsutrpHuKho5iB6fibPbyebpjjFdq6R/G78XOhwlLMoxvq1yFhBU3/MlznB7BNp8ctjkigUW7k2F9tWLmom7c63yGfAf7vKZzchcsfymO16u1td9X/NNP13FXTaBvLf0YbF3yIV0TUQhohtAoVcb8DlaPDKSTQU5sh1JGlJiB4RxFWNVrvS23YDb5BQmVcca0bAyobSzks6/kXHwhKBJ9hrdD0oryui5yIb7TNoB56jnnItda2Jmlm6QB5fOlVIDSRN47aASa1TFde2MSnFH3PJyfi//kZhiGkhoK2aLpo9hdWQ== 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=IXG/RcVkdoPVXd183wHHga6F35BDW8CMsY6332TZoss=; b=avwa2+Aan/rraXBVGN+LbRJEB1GLTE9ad6OCvztTUDjEgGxYaxle8eR+2mig8mjVl6GWfflv3OkTUbwXtdRimsQ5MOYEK46ZSjnscWMcm80uJTs9YomVC/Q5rxyVhh7vp5lWNy9GSVzlV1mfOlPglZ4YKWQ3rWZqPOuUF8gvr10/t/I2E7Y3oblb8lx4Ha4GREnJpo81L/GgZ5gBL8jcrJvZrbV3DO4xojCoxIPhS7pwGNdcju0z8UixO4YuBs+jFRGc6sajnN0j2YYXsH5cmtYN5GlzauENQMb9/vaXAX4ZZZun+0MAHmEXjmnjgo71nSLYyleGV2Lt3NI4Jd4tgA== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by DU2P250MB0237.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:276::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6792.26; Tue, 19 Sep 2023 19:59:19 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::5e01:aea5:d3a8:cafa]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::5e01:aea5:d3a8:cafa%3]) with mapi id 15.20.6792.026; Tue, 19 Sep 2023 19:59:19 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 19 Sep 2023 21:57:31 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [vmPZBXUhZxYKiuVfre1GuBFt4UJxM6xm] X-ClientProxiedBy: ZR0P278CA0086.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:22::19) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20230919195734.1005750-39-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|DU2P250MB0237:EE_ X-MS-Office365-Filtering-Correlation-Id: 8d8908f0-c232-4935-6632-08dbb94ae937 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: W02OrYe6643+IXGvsGLxQMHiXhsIKsuf7GyHa7rP5nnKWCKYQgENWfyvD3BO/RQG6pyC/zqvOw/gRHG8jEihZ4aDstd17Ki4qerUfRnSqgGfLtin9aeUKZ7lqaeKqoNtvBh9iLbo0rdPN0mVENquwsmOcAypY+xcqlTv0F9guKNu3bpqfnsl8Q0xIc7KisMqHuDHx6jRAWJXhbnCVGDLGi3Hj0nz6v4wSAShtqGjEsxKwmkOKtPHWStxv35EBDfIYwcCsHzVS4l81fpxXx5Yzmhceo61qTtFqyOEDm2QO6Y3d7Xw9yJ6DwBdCzaUGQfA6uUlXAnQbw+4nO2XVcanF5OQjupfIsuwqR5E2zeuwmiN3TvR/9j/J/tH6U9ayuecbUvTKasvhI8uStdPKOfrGJcCBaYJ7y7jgvZ5eEu/5Go3NZghpFV38JFABzGW5sNYWP6Ngw8FYYkmZ6Yk6wXLYMWXKi/zy1LZ0K+MaCjw3lpM9mLRu6/5pTk39IU/6Rbds9Od4EqIkuXTBMOW/Plf2tmaNNHm3ajqLVknd+t8cA5jyR0IR9cWI6nJtj1ZiwA0Gz6w2PNv/1YUsQxwFYKlo0cMwXUcyrtroVyrScChFbfxZyMX+aNfuOXCKwZfY5vD X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?TIdexnT22soIW+l0O4dD5B4pt+KqAku9HyKwgUOEw1SlTEm4XAHmmetROJlv?= =?us-ascii?Q?Xljg3jPYZIrXS/97llqyF64uax3VwF8ISJUaRlri5GAi6nvVMHDBzrgsqwm/?= =?us-ascii?Q?F8br+1BvgBWnXTNqco0AW7oeZV3AuGT6caQWhLqD6QT4ZYdgL1ZBcYxJVkQt?= =?us-ascii?Q?fqXZPt2RXHxvFagZI6HYkA/ZqxqCh0+A+cTKb9sbgILfJ6Q6DcazGsim5sxb?= =?us-ascii?Q?h5F0eaPPwQzWGR5aQ2m+9l9q8MSiC0merS1/CUPbjQDR9O0cb4+4bTl5N6kf?= =?us-ascii?Q?4xaczQJhgZNht07ARcVplFLlMlwOBYqOVwZ3SLmUqi/lureDwc9WyMYJlBnR?= =?us-ascii?Q?9MF/Ao2rSICTTg9DzCDkenqLZ8QQNtrKGcFA/OaJz09xGYeFD7fHhIuJBOZw?= =?us-ascii?Q?xYZz1nW3rzP5oXs2V0Y3pDHtzA4EhcHYdzUflFg1d/OHcT08mJZRWT8NeEtI?= =?us-ascii?Q?frKGTOdMYPcrf9u4zDPxiRsMTNWyj3ZLZq+rULW0P0z3aDoHr54ZSd2TlhoT?= =?us-ascii?Q?ubH3mOGPe/4uNhT7p1/LF1IIKnKQEzJULkICMUPnjcXzyPyUhRoPc4SKCfv2?= =?us-ascii?Q?RoL1J8L5T8gF1SmieQeIJBjMv7DDaEZ9d90tFvjq2KC5yMI/7xaU83Mat4Gv?= =?us-ascii?Q?2Tz/UBqVg5kpQNDCOqLs6DifhSo584oWLkO3t8tHEypN7furBmsL8zI6xLSK?= =?us-ascii?Q?c13QVtdyezDtr2yvVRWzJMnMOk/TsjStLZaFOlmfeXvdk3Q0nW88+thHqG6J?= =?us-ascii?Q?3WxTX3d11HaGMQ9aztudTCzTyc2btBUaSJTYFbUpTvdqqL/p15Rm580UNjel?= =?us-ascii?Q?JYEyrORO03aBUxrGk7kBZhHCbfqsyoWHiP07HxDk1GJdQ/knuw0yk9/YLOHm?= =?us-ascii?Q?wMqdbgoLSrtjNszgXYeTxDcJzvrF84zFAkQoTezifKoMiqXtCTQlrpk6KjgB?= =?us-ascii?Q?M8N3gLoQ5gd/RQsbr41xQtxFTIPXzT/iQPRqCGqTyB0t8AL/4jXj2sFDrtza?= =?us-ascii?Q?5jowuoHb1MrCpUGVhUPTQ7lGob68b6YZF6l/IEDdY39rZ72XdpPAHEnR/o4b?= =?us-ascii?Q?i/ejOYL40LhvwtVFd5avk0FcIhnwv2gOD12VCQl6GhyI7DD4P94w0TkhFKnl?= =?us-ascii?Q?AZkvZ10/XpyGYz4922r3HjPFrjLqCMsQS147TaEzFkjjPzocO94W1aM2POWI?= =?us-ascii?Q?qc+CcYukvaUEhDjGJw6NrM8r+0b9D/Y3Xd9DMm8ksj7TmXoUMM+LMoUnm8aI?= =?us-ascii?Q?fbq3rMnNVnW5pehR+VUb?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8d8908f0-c232-4935-6632-08dbb94ae937 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Sep 2023 19:59:19.6678 (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: DU2P250MB0237 Subject: [FFmpeg-devel] [PATCH 39/42] avcodec/hevcdec: Move collocated_ref to HEVCContext 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 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: Only the collocated_ref of the current frame (i.e. HEVCContext.ref) is ever used*, so move it to HEVCContext directly after ref. *: This goes so far that collocated_ref was not even synced across threads in case of frame-threading. Signed-off-by: Andreas Rheinhardt --- libavcodec/hevc_mvs.c | 2 +- libavcodec/hevc_refs.c | 5 ++--- libavcodec/hevcdec.c | 6 +++--- libavcodec/hevcdec.h | 2 +- 4 files changed, 7 insertions(+), 8 deletions(-) diff --git a/libavcodec/hevc_mvs.c b/libavcodec/hevc_mvs.c index c231797a57..0a8cc2c43d 100644 --- a/libavcodec/hevc_mvs.c +++ b/libavcodec/hevc_mvs.c @@ -227,7 +227,7 @@ static int temporal_luma_motion_vector(const HEVCContext *s, int x0, int y0, int availableFlagLXCol = 0; int colPic; - const HEVCFrame *ref = s->ref->collocated_ref; + const HEVCFrame *ref = s->collocated_ref; if (!ref) { memset(mvLXCol, 0, sizeof(*mvLXCol)); diff --git a/libavcodec/hevc_refs.c b/libavcodec/hevc_refs.c index fa53b273c7..9cdc4233df 100644 --- a/libavcodec/hevc_refs.c +++ b/libavcodec/hevc_refs.c @@ -49,8 +49,6 @@ void ff_hevc_unref_frame(HEVCContext *s, HEVCFrame *frame, int flags) ff_refstruct_unref(&frame->rpl_tab); frame->refPicList = NULL; - frame->collocated_ref = NULL; - ff_refstruct_unref(&frame->hwaccel_picture_private); } } @@ -152,6 +150,7 @@ int ff_hevc_set_new_ref(HEVCContext *s, AVFrame **frame, int poc) *frame = ref->frame; s->ref = ref; + s->collocated_ref = NULL; if (s->sh.pic_output_flag) ref->flags = HEVC_FRAME_FLAG_OUTPUT | HEVC_FRAME_FLAG_SHORT_REF; @@ -383,7 +382,7 @@ int ff_hevc_slice_rpl(HEVCContext *s) if (sh->collocated_list == list_idx && sh->collocated_ref_idx < rpl->nb_refs) - s->ref->collocated_ref = rpl->ref[sh->collocated_ref_idx]; + s->collocated_ref = rpl->ref[sh->collocated_ref_idx]; } return 0; diff --git a/libavcodec/hevcdec.c b/libavcodec/hevcdec.c index c8067a736e..a476a7c7ce 100644 --- a/libavcodec/hevcdec.c +++ b/libavcodec/hevcdec.c @@ -2910,7 +2910,7 @@ static int hevc_frame_start(HEVCContext *s) fail: if (s->ref) ff_hevc_unref_frame(s, s->ref, ~0); - s->ref = NULL; + s->ref = s->collocated_ref = NULL; return ret; } @@ -3131,7 +3131,7 @@ static int decode_nal_units(HEVCContext *s, const uint8_t *buf, int length) int i, ret = 0; int eos_at_start = 1; - s->ref = NULL; + s->ref = s->collocated_ref = NULL; s->last_eos = s->eos; s->eos = 0; s->overlap = 0; @@ -3339,7 +3339,7 @@ static int hevc_decode_frame(AVCodecContext *avctx, AVFrame *rframe, if (sd && sd_size > 0) ff_dovi_update_cfg(&s->dovi_ctx, (AVDOVIDecoderConfigurationRecord *) sd); - s->ref = NULL; + s->ref = s->collocated_ref = NULL; ret = decode_nal_units(s, avpkt->data, avpkt->size); if (ret < 0) return ret; diff --git a/libavcodec/hevcdec.h b/libavcodec/hevcdec.h index edf2f188cf..bed8716f99 100644 --- a/libavcodec/hevcdec.h +++ b/libavcodec/hevcdec.h @@ -413,7 +413,6 @@ typedef struct HEVCFrame { RefPicListTab **rpl_tab; ///< RefStruct reference int ctb_count; int poc; - struct HEVCFrame *collocated_ref; RefPicListTab *rpl; ///< RefStruct reference int nb_rpl_elems; @@ -527,6 +526,7 @@ typedef struct HEVCContext { enum HEVCNALUnitType nal_unit_type; int temporal_id; ///< temporal_id_plus1 - 1 HEVCFrame *ref; + HEVCFrame *collocated_ref; HEVCFrame DPB[32]; int poc; int pocTid0; -- 2.34.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".