From patchwork Sat Jul 2 22:21:49 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 36604 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:8b27:b0:88:1bbf:7fd2 with SMTP id l39csp1883971pzh; Sat, 2 Jul 2022 15:23:21 -0700 (PDT) X-Google-Smtp-Source: AGRyM1slKvIiPvQ32j0YZrbrxaKC6hddlW1W4aEMDmudTyzvvVuIKFincncem7K7tezj9mvlXiFu X-Received: by 2002:a05:6402:3481:b0:435:b12d:a66d with SMTP id v1-20020a056402348100b00435b12da66dmr28276692edc.135.1656800601036; Sat, 02 Jul 2022 15:23:21 -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 co6-20020a0564020c0600b004357dec2beasi2399698edb.73.2022.07.02.15.23.20; Sat, 02 Jul 2022 15:23:21 -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=doVYVw78; 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 C299E68B978; Sun, 3 Jul 2022 01:22:41 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-oln040092073040.outbound.protection.outlook.com [40.92.73.40]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C05D168B967 for ; Sun, 3 Jul 2022 01:22:37 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=V4YFmRFDdANx82Nu5GdZh0Iq67s0sFGPbAroe3SRkUOzEMwQQ22uI0m9Pndq1xRie5CfWi8abIJSXMyLs3q9Ag/S/RW4XBMHYHZlWAJ01jM8DmjMxIFB6J3+B8q9WXG/LfaxX0RuW+IKzYaUnzqF3vFns4i3DD1bnYIotNljmFifeu2W11I2hHvtkAwlrMAvYakwpZq5vzXxNAOidgYP+mCRvVs3C9uOBFa0qyXQtbso3sT88CK9gxrofAdgxfOLIblirUidH8N102nyLm/W9w3WYW1e7q82wCGiWSRIrX+nFs5wTfkSP5asBYB6edppuruyK+8/KNiOmY7phA8YSw== 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=OLyQzMdjrSjcYu7ygRHu1MqWgP2fTrodgpNOHr7PnO0=; b=XmwzEnslK/FtZrnJSAXBMUY2oqUIlLub1rH5CkFovlXyNIkgzQmY+N28+o9LXhe3sIjaNXIH85zcb6Nk0D4qQZXJkHY24DJCP9hqgd6j9iK/6+4tONtmTsbiYVODdbQPEPNHgm0j0gXFsgJ6rbVyTbSHoow2soHYoIL5Ow7ZTFTC4WMjaY1VyTalyIq7/vYYe97o4A8wRtFgqsoV3Dr259bMDywmcNHYqCthCohH81GNglETMGSCSUycAjQTAxDNTntJhMbDb/u7rVvVJFmcvjcjk+yzHTQzcKu1cqvm5Ow29lkmXXLjJZaIVKmbX6dY6d6K5ffDAxtwS8xr4BNxLw== 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=OLyQzMdjrSjcYu7ygRHu1MqWgP2fTrodgpNOHr7PnO0=; b=doVYVw78n1T9AXqEAm28KTJJHaFfl9ux1qN0UmgXXhl/KTEXe5KsoVWWbtEX6+VfRZJ/RPAKI7ugaECNL4NFMbhUf0PbsezEVYVGkCplCcI4OFN+R4l7R4TPlK2M6jFz/OcDnynZBH+X8JPsCz0TCHs1NNo04LbDxXHCue8V102JQJO1QlnsAx3cRMbU3iEeNHCtIGM5YsopAQi9TtT5o1yn+4GYRCWeE9BUs1TULpS+sMKb8fuCV8GDu6VnmMbE7vYLTVR8HxK32JXy10VtNwLhkzOiVQRuqw4AP1Tnrye3hMSo+VpbqcV6HG384c4I7YyEh5W1fkHMdObC4jhsWw== Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) by VI1PR01MB4240.eurprd01.prod.exchangelabs.com (2603:10a6:803:6e::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5395.14; Sat, 2 Jul 2022 22:22:28 +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.5395.018; Sat, 2 Jul 2022 22:22:28 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sun, 3 Jul 2022 00:21:49 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [dCgovCDH4rqtR5L9ntciwSKIGp7y7zP7] X-ClientProxiedBy: FR3P281CA0089.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:1f::18) To DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) X-Microsoft-Original-Message-ID: <20220702222200.169681-8-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 107355d8-a6a2-4ea1-3ac9-08da5c795953 X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNXwBRntoGkOsgo00FNZK4OlhmlsvD377a7ApZC5pSPcG+iFLMaOSMG1rL/51EdJtEL4sRx/PFMNu9SDm2cQrPJItZh2Dhnj2AVtgYN3nXC+zrHtC/8wDyfVz3KXe5AzMmdPw1exxFvWlmVMhrOL7mIS/2m2SzrKUKdMAtep6GCsqHSfW5ksOXD3W91v+JzekSMXfzsLZpSu0QcXZMQh66CmGmSYegxV6WbwHNzGrxxGmMlAT1q9UIKGWyZiODlntci4jFtMzjlA94rVpSbFmiZkeMRTo+BfjqTEW9iYh/don+NKkMKbJX3AmzHrc6BWS1Ix63da/8/6B/o//f7+3ppji8EqguCXLPzsN4imubuWfgrS/WZVOJ6g+yU1sZeoIv0H5dsPiD0aTVHbYi6/X7DTDbDKsoV7zFumZLSdJg7kodovaYUQLwXd/sWYU38HWqN2bVcfSMUcfZuThm/z4CqxMx81UPu2cXkSU03gCXF7rxsRD9LbAfQfO1xQtMo7frsowuKKdez8nS2RdIvhHBxL65frhZri1DnED194qCB3GkR8WxqYKky0trDV/MEyMa+kuyyhRCGvOCMhGj0JbLIPkfh9PMy+MiNmD3nmhh3uaZXCmd0LyXGlZpbjsMnhrXRtoNZeU+4EMRTt4j1iPrIDNa/k3ByC9dDbnr15ipQ9kBI/KnWeUSzjX0pYpVgA7ilLtMB5+s46BR/OKEvCjXtvPKACMGWcNsE= X-MS-TrafficTypeDiagnostic: VI1PR01MB4240:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ZiIHfSz6thDtGo/Tu4AXOt1whYU1FFyvgFdvSHCAMfK5t/pu//vV2K/ApBw4YjHR1BXkmfJJjf9rSII2MTENfb79HTQm7mKGy6lPzB7oZWMn3asc+be216XIWwqAudz+079iQl7Oed67QhYyRllxo6Tqf33KVyA7l1MWjwp4lyq670znEo2SImvoGQzLLVuw5bPVjtANxP8X9xwN/adFQN61jvjRCFtxUeukJqXk415bKgr2uRkTXiBWu5zkxS94Bj8YYu98Wi42i2a8bsC+eEz8mGGSRWvK1t2WZOeUgTbQR6Qk6+epjQSXOwIap9rmxo9wP7SjL4OOWxyKcGmI5ZrID/khi6gsBJfDpnoLPiKyzRFCeYSuMHS75KNQiQ7dfKYspXJUDca3YuRb/A/mn7THe/bxdD2M8n0XNP1Z05nEkyR7i7SikYllHi8aIdhQ6arJPH1VZeHH/iaAbtHXnzIwB9G/RE1DnDSenO5P8vJapCSfGc2f8RAex9L2UhgYH223yzqpHM2xHPtG3Vwd2x34lUkQSW9+LX9fiZX4OM8a/tJLbu1cnWat2565lGsVLCrv3q547jKbpaFULC6eLgHLdGeDFpHcZx7//FoEU9Od6yzPJThLgKhietZyRzeowp3LmXwTyhDDWjhUt0TTvg== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: wURESCdtpjUXzWl6jPOQTOnylBmuy9IPYDinaPGe14evj8H0LLtWGRekFOuLQEayZd7QGWyxLdwRolw91BIiZaVO9eoTejAxWhMAB0eXUK/mdhCfq5wAaxXhw/5dQoHXeaYr4Onnir0Et9yCeZVDRXb3fObpiDCGKk/e5OUHEDC57le4fkGMC5KS9f6ONys3hPTqDjoR/Yxl86htKnXRoQHSySic4nrgnNjzR2bPioV6qqg3my+z6m1GHS2o0BH65uXORrWUAZcHrw6zJCM8QeS2nyxTBh+rBOjXNxZYFqBq670g/K2JhVIt6gibH7gpWZeiuk2VyUQ2rezFbhNufaB/mpTBIcU9YgAmNy5r5ak4DBC6/mwXOHyfMvA/9IOsOfJnJwE/F9lhiR0SiJGOPwjVH2n/PZBfc1yrJ1JCXSJHV50Z0BfdcMrTExUp9shrScKacTXY7+bAHK2cLrDYDkSznU/Z2Ttt5k+ETAgfDWefQLpNMXMV0jA3KAcveIeB8QLlFW9bk2p/My4mSLu4PybMMg4C83an9DDKuY0vPrmfBwclKLr2UdH7u/vNDYd2k+ju2k65nFJHwPfiZ+EAq1NCB2aSe2N2BHMoTgYUIBvsBykLSMMskUZrj55uvHjlQrvLaUTDSFyIiMzetAP5QVtJPglRfr8ha1jX43UkciLYBQ7z+jc+hbr7tyAn/ve2EMEt4hbuqE78s1Fy6iNRa5kltbG3p6U6pBCeq1cDUKkKpPvYP/KaYWZ/5PyxLGEPe1ZeP7rGLvSsLDC0HgTN+zhT69TdD1vyq2jkaQpcMOLp6DrDWDwpxP8M9KWYhDPzBYYXElGTri4XR7JUAHPhSeq1uKhx6F01sKlG6thIvRfcdbn9STr7iGyLsb4EGnQJahiTqQdRmkxgJfWY7lUeX4wS5ywz6WkIl3tusSPfkgoDac8mPhnUAwpsoO0rDie/ek9YbrVQQv3CA+qJILks7SkB8bSIjYeW1KTvGPJxZlFN/QTZRvZEUecabRUT6Vo7PNhpkOJQcqOf/PmoglQn2Sfe6Io8saDj4VkvsbuGFXsWvxAyn++Lm9p9zWana0SckzGmpGINqMn5fBGO0Ci1BvanV4yttG9RTs//NpbDW/cqe8aw0zQ72sQj655rIM/6mJJUyFOUOi39W9e03PGDR+p2mnvJVwf6NG3dxuSmETlWf8bZtyQdtzmXpJyhJWOdRsrKSPK5gnokDGi9upr/VNaabqIOOAWYjsyXLjxCQNLfJZ2gUywtzHHoBOjogOiiyRVXdn72TD5yaMyrSA7ykikmBVBG3kdo4FZ/TXvyW0E= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 107355d8-a6a2-4ea1-3ac9-08da5c795953 X-MS-Exchange-CrossTenant-AuthSource: DB6PR0101MB2214.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Jul 2022 22:22:28.8180 (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: VI1PR01MB4240 Subject: [FFmpeg-devel] [PATCH 09/20] avcodec/h2645_sei: Factor out freeing common SEI parts 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: gisTtOrsoGD5 This commit only factors out freeing the common SEI parts, not whether the fields indicating whether an SEI is present shall be reset. H.264 and HEVC differ in this regard (ff_h264_sei_uninit() really resets, whereas ff_hevc_reset_sei() only uninits.) and neither actually honours the persistency as prescribed by the relevant specs. Signed-off-by: Andreas Rheinhardt --- libavcodec/h2645_sei.c | 12 ++++++++++++ libavcodec/h2645_sei.h | 2 ++ libavcodec/h264_sei.c | 6 +----- libavcodec/hevc_sei.c | 12 ------------ libavcodec/hevc_sei.h | 7 +++++-- 5 files changed, 20 insertions(+), 19 deletions(-) diff --git a/libavcodec/h2645_sei.c b/libavcodec/h2645_sei.c index 21208fa920..6be3d97c92 100644 --- a/libavcodec/h2645_sei.c +++ b/libavcodec/h2645_sei.c @@ -418,3 +418,15 @@ int ff_h2645_sei_ctx_replace(H2645SEI *dst, const H2645SEI *src) return 0; } + +void ff_h2645_sei_reset(H2645SEI *s) +{ + av_buffer_unref(&s->a53_caption.buf_ref); + + for (int i = 0; i < s->unregistered.nb_buf_ref; i++) + av_buffer_unref(&s->unregistered.buf_ref[i]); + s->unregistered.nb_buf_ref = 0; + av_freep(&s->unregistered.buf_ref); + av_buffer_unref(&s->dynamic_hdr_plus.info); + av_buffer_unref(&s->dynamic_hdr_vivid.info); +} diff --git a/libavcodec/h2645_sei.h b/libavcodec/h2645_sei.h index e87a669b3e..3e088f3307 100644 --- a/libavcodec/h2645_sei.h +++ b/libavcodec/h2645_sei.h @@ -132,4 +132,6 @@ int ff_h2645_sei_message_decode(H2645SEI *h, enum SEIType type, int ff_h2645_sei_ctx_replace(H2645SEI *dst, const H2645SEI *src); +void ff_h2645_sei_reset(H2645SEI *s); + #endif /* AVCODEC_H2645_SEI_H */ diff --git a/libavcodec/h264_sei.c b/libavcodec/h264_sei.c index c62aef9246..f11f8371f6 100644 --- a/libavcodec/h264_sei.c +++ b/libavcodec/h264_sei.c @@ -59,11 +59,7 @@ void ff_h264_sei_uninit(H264SEIContext *h) h->common.display_orientation.present = 0; h->common.afd.present = 0; - av_buffer_unref(&h->common.a53_caption.buf_ref); - for (int i = 0; i < h->common.unregistered.nb_buf_ref; i++) - av_buffer_unref(&h->common.unregistered.buf_ref[i]); - h->common.unregistered.nb_buf_ref = 0; - av_freep(&h->common.unregistered.buf_ref); + ff_h2645_sei_reset(&h->common); } int ff_h264_sei_process_picture_timing(H264SEIPictureTiming *h, const SPS *sps, diff --git a/libavcodec/hevc_sei.c b/libavcodec/hevc_sei.c index b0a4a8b035..3c6bde1b62 100644 --- a/libavcodec/hevc_sei.c +++ b/libavcodec/hevc_sei.c @@ -292,15 +292,3 @@ int ff_hevc_decode_nal_sei(GetBitContext *gb, void *logctx, HEVCSEI *s, } while (bytestream2_get_bytes_left(&gbyte) > 0); return 1; } - -void ff_hevc_reset_sei(HEVCSEI *s) -{ - av_buffer_unref(&s->common.a53_caption.buf_ref); - - for (int i = 0; i < s->common.unregistered.nb_buf_ref; i++) - av_buffer_unref(&s->common.unregistered.buf_ref[i]); - s->common.unregistered.nb_buf_ref = 0; - av_freep(&s->common.unregistered.buf_ref); - av_buffer_unref(&s->common.dynamic_hdr_plus.info); - av_buffer_unref(&s->common.dynamic_hdr_vivid.info); -} diff --git a/libavcodec/hevc_sei.h b/libavcodec/hevc_sei.h index 2bb6b7e48b..4189f5e6f7 100644 --- a/libavcodec/hevc_sei.h +++ b/libavcodec/hevc_sei.h @@ -117,8 +117,11 @@ static inline int ff_hevc_sei_ctx_replace(HEVCSEI *dst, const HEVCSEI *src) * e.g. Caption data that was extracted during NAL * parsing. * - * @param s HEVCContext. + * @param sei HEVCSEI. */ -void ff_hevc_reset_sei(HEVCSEI *s); +static inline void ff_hevc_reset_sei(HEVCSEI *sei) +{ + ff_h2645_sei_reset(&sei->common); +} #endif /* AVCODEC_HEVC_SEI_H */