From patchwork Wed Jan 5 21:53:24 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 33099 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp1109783iog; Wed, 5 Jan 2022 13:53:53 -0800 (PST) X-Google-Smtp-Source: ABdhPJwkiHN8EGB1x7HTE08KPMAt/VT2bgeiIEnDgxAu+3eR3gMn0Tv3ca9KihuY73KsEB9sespf X-Received: by 2002:a17:906:2a41:: with SMTP id k1mr42552300eje.512.1641419632690; Wed, 05 Jan 2022 13:53:52 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id b13si92913ede.239.2022.01.05.13.53.52; Wed, 05 Jan 2022 13:53:52 -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=@outlook.com header.s=selector1 header.b="K/TrmC0L"; 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 0F7A868AA82; Wed, 5 Jan 2022 23:53:49 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-oln040092071012.outbound.protection.outlook.com [40.92.71.12]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 246BB680157 for ; Wed, 5 Jan 2022 23:53:43 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=F3qzyhza0PwwHso5DkIhUZHLNJ0Bop0DSwBGfzow1L8smeEc9Zi3rZjgJs3xcEJfKlwX+aJzi3WYXGdtdoJA8ASwTxHyXfsLCH/D8WEG/rFKdLcaYhOICNw43FdfFdrBjP/OXUxUIYhLwm5tIBP64CX9bv3De+nm+sJh1cxkKLlWhhqzvaGH+brcieXZIDv1tr8rkB4e5DJitbuc0WMbEBQ0DcQleYQS7YDnxoemfCUI+5LWpJWMebZBxy334e4RmqJ51i+2Hf8hj+FHp5SupmzY9bdI47Lt4pFLZY7XGYjSAs/lZ2Q3ixyUCFEIC4egwZW9FgAo+DM+uJL0mUTZSA== 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=afDDQLRW7RuPdRytWIC8ujYhUbpR/h4UgoRKOIccnRQ=; b=SZV42vMtQgUubM4dFgjrJmX1DkbqVqrtdqa+fxrR6jASlQXooMU7Dtg8AlZnI5NnwCmXWFXxf8tFL6eNPeeAXPJsHoN4RGASFcN+d5SvUpXt5R/6QVxLrpKoDW8CBRVHsouSSioARrI3i+G4Yga+CgK3yVYX2UQUcQwa9jG6D1pgQCebAQ7ANZ4GE8Ai5WgzTjNc7CiKgdKCDFLE2PU0nr5FAh5gNKFpGgO/dMOu0eiAIOFx2XdJwy210Q18y5KjCWCmsaQsxeQDtLfbZzBjXFge+MndpayolDSOte3iCRgEtse0YDi6MSlVc53zbzhQ9OgFpXTRrhqpYRjTktWQuQ== 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=afDDQLRW7RuPdRytWIC8ujYhUbpR/h4UgoRKOIccnRQ=; b=K/TrmC0L5TYo2EwN0X/tpjiIGsaK5gLzzWx9B0OqB8zM5nsmAwCjkeltMxlZym3GMpU8eLcZGuml6pqneD10FnD5N0MSZr0Q87bfuGbb2oMU60gSJ8EKAJANmg+ev9Sawd7wJKhvMWp8JQWGm1gw8XeGnoJMSNUq1RkZd8Jaf/Yu7pg76BbKQuycKHvAxQdIZp7ccgTrjaxub24wNsW8u+VF7dPWI5cbaG+VZoCqIfFFRKLcdG0T8ITFel3eBqzPGI4GXb8jgTMHDadf5GL2rqgLKMz9z7ilbZ4dqwAKZDpGdw0RtaAPlzQABYS2c2ZiY9UkvzK3bN1QXNrrOdR5/w== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM7PR03MB6450.eurprd03.prod.outlook.com (2603:10a6:20b:1b2::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4867.7; Wed, 5 Jan 2022 21:53:41 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::19fc:be9f:2c9c:53f5]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::19fc:be9f:2c9c:53f5%9]) with mapi id 15.20.4867.009; Wed, 5 Jan 2022 21:53:41 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Wed, 5 Jan 2022 22:53:24 +0100 Message-ID: X-Mailer: git-send-email 2.32.0 X-TMN: [a92kUcy7N6bD8gK2V9gzIlPgjaPEqsBT] X-ClientProxiedBy: AM5P194CA0022.EURP194.PROD.OUTLOOK.COM (2603:10a6:203:8f::32) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20220105215333.812978-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 6f9cf708-a167-4ff2-208a-08d9d095d649 X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiR3EehW4kxQzdNcP2D/mG1JPpvWGnTy2aYAVQ6vlU/69DqYSJQARtO/08HhUcdkMHDEK/8+C5wFdD49m7marOfAUFWsSrtmBRd70l5kgeMc9uQZpC1TIhEk4fHIpjtrtgx6gUDAt69tLnQHfWFrHh06QJeEA1pVWGBXcSEsGnHusu78DR7WuwccyBnMpn22PNUMKC3U3cBvZq9ebzzNTH7OkhcJ24Km/ijdxzGXhFs7Iij2knxAp0WifeWfv5iGXCPxODvxWROlNoFcvvCbKG9/fyf+L+2Lg7E9wryM13EKQkw1ppupNSZVlQ0QtFafwMz7B9on4v3ULd1kE2W1lece6FV7gDDpKOevE0t2dORe3GeFW3vpZ9ZD6MNnjRwE/eVX7BExLuU3quIcNnIDHDynTQRurfStYVC7lsrwwRkjULv7JB3aotIp8jW+jXqwUITH/EA45XUZq1+HDiGk1LOV9yldcwPttqAoGKIThPBi5kcBO4nJQwEQqyRom6kafQ72WWsDZc9VMpSo1J77ND89W0K+354cAB7epKaLPobCxPAD8dp1+h7+ShumFNgJ2MB2Kq8HA1EjOzCxt9msiDOifI+Gy+q/qvjQPGiPdt5jEmCHxe6BnfHWQfqYEEQA4xbxY/Ck7XRfBXejasJKlSUIloqmePq63nGnJ06JEKJnq5bKZi96kDYWLaYK8rkkzdMQ7FAsJrOBIjxvtvInm3Yj5OUABd3xipadE4d9Jf7LzVC4wJjYxHirre1EPRQz+1o= X-MS-TrafficTypeDiagnostic: AM7PR03MB6450:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: j0B1g1X4cNro25uFDfBJ6bWOHtgAFpHjSBRJ4wY7zbVZBXA/t1w+Ppy7BzrpRWygssfLuI0qVK3M5hQ75IBOJx7HDlakQh2ofo7GLKECV+j8yqBFfmM5FBpd0D6EQTjuHe7fAXSY1A0/Nm+gBA/YdKzA5WokPWOu/l5y/0PZQmrI/y/+6W2wiVfIqfmChnoeB79qBTcUOUDq4YhyojNLJzWkwCijj7rJ2w6TCWKG2CSKOtuCed2uqCQ2UxfzhroRuBoXmlScveMtsM1RaFlQ2Oyi12vgmyb/XnSGP353lbgtlMf9x1a8MrpwqsaJ4Kj3s3tR5H2y6TjdX0A9D8kO+GBeELvx1bBZqxHhB+ec7+TcZFkHNyw6FEwTcZXoSzymt9J+C7Xls0vceiujCE007q+y438HwKlzsG91LBkNLC4ronHiTWRqlG04n4a3/Thc5kCw/kRFH2BSLK70O/T50hmAzig8RMDmHW7/JCBlFl1B5e4IiogNtklEYDjW24aGjEQc+lL8N/351S5FZupr57h1g1ZU5LqlCpCNgCuJiUXobm13cU4DyzHJTAXr7ZMZeJIdEXOhyIrtnDbAfKC9gg== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 3E/sz1DaHZ8Milt0s4MH1LxN8dIVY6+GcRFRzmF9AbXVkh0zdxzpRC1uYsgD9mgyku/b1YwLDNmIuYyBRqxwyXR8IfkEBj5mgiDTOJZugavCtikkqgIlVfYB2Oy1KWJ02ui7Pdh+bCtgeYm5qQuqiM5e5Hvyp8tEXoznZb2ll4w87stpVtbJvaEALZ7Y6oM48gltJNCjfcsElijanXSVnGhtmd5uqa62rFRehbgRt5Dgy1lTXnQ1om4YjnsWSeCxRA8lxhbmBWIHIgr4tGPYPfFYFqBmgZ7DlqffAW+iIZP5qDpEfLKSVw0ZXP6Z2HeBEAkwnK+0pQVle8MVzgeR1eW7a8UGz/JSkPd86fs8Ap4aiXLzensjG8txbrmViYu7maMXcFxcc1P2PksizT1Sd1YFYGqrpTxthgeYx/6+pOL77kAngbTnqyvJ7VNOlt+0v+u+qrvZWTXicaPayYgF69aO4mG7s0H9TTEdIRjdxxzlBe8TjZ2Tzrji42x8rc+6062WaFe5ZnbCnUszCifxQ9RjcVT+WAmKUhgw5hZNIPOvHcto66qjX+Sby8thQzM+3NMON+A+QW9hREooGltGzVNlxdExL1PRcYVP0SPmWLM8c7uMxRG3FeiOxERRa2ITa8DCn4bH6BY9yFPfXKqhxu+kLdeor+Q8frONrTWW7oN+3NYUL19kpSeGYV9WrcI0AbWRNRrSicL2nr5dSg7K2w3T3DlatRvVLyaOEXU1zZcEJt7vydj1vJqYpoWRLj7y7kvKywBNpY6D/lDdJA2KzfLxU6YU4EML240BzqClPl5U+IoirXqsxu3M44/zvWIv+uDxHRGmORHQk/HXHDIc/NTI6vMHMvT7J7m2TJAQinno0gWgrJz3m4bqPc7++utIIylyubv7nfsMDEfOL8QKspz+RLnVUBIjDJR5a+KkHeBNg5JCPDEN4jMqeqxWRpyQKi4Iywl82yE79rnbBD2SGQ== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6f9cf708-a167-4ff2-208a-08d9d095d649 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2022 21:53:41.5956 (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: AM7PR03MB6450 Subject: [FFmpeg-devel] [PATCH 01/10] avcodec/mpeg12dec: Don't set write-only variable 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: IwBI14VWbzuX MpegEncContext.picture_number is write-only for MPEG-1/2 decoding. Signed-off-by: Andreas Rheinhardt --- libavcodec/mpeg12dec.c | 7 ------- 1 file changed, 7 deletions(-) diff --git a/libavcodec/mpeg12dec.c b/libavcodec/mpeg12dec.c index 35dfc74fe7..6ad9fb245c 100644 --- a/libavcodec/mpeg12dec.c +++ b/libavcodec/mpeg12dec.c @@ -1066,7 +1066,6 @@ static av_cold int mpeg_decode_init(AVCodecContext *avctx) s2->chroma_format = 1; s->mpeg_enc_ctx_allocated = 0; - s->mpeg_enc_ctx.picture_number = 0; s->repeat_field = 0; avctx->color_range = AVCOL_RANGE_MPEG; return 0; @@ -1092,9 +1091,6 @@ static int mpeg_decode_update_thread_context(AVCodecContext *avctx, if (!ctx->mpeg_enc_ctx_allocated) memcpy(s + 1, s1 + 1, sizeof(Mpeg1Context) - sizeof(MpegEncContext)); - if (!(s->pict_type == AV_PICTURE_TYPE_B || s->low_delay)) - s->picture_number++; - return 0; } #endif @@ -2072,10 +2068,7 @@ static int slice_end(AVCodecContext *avctx, AVFrame *pict) ff_print_debug_info(s, s->current_picture_ptr, pict); ff_mpv_export_qp_table(s, pict, s->current_picture_ptr, FF_QSCALE_TYPE_MPEG2); } else { - if (avctx->active_thread_type & FF_THREAD_FRAME) - s->picture_number++; /* latency of 1 frame for I- and P-frames */ - /* XXX: use another variable than picture_number */ if (s->last_picture_ptr) { int ret = av_frame_ref(pict, s->last_picture_ptr->f); if (ret < 0) From patchwork Wed Jan 5 21:56:02 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 33100 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp1111380iog; Wed, 5 Jan 2022 13:56:29 -0800 (PST) X-Google-Smtp-Source: ABdhPJzFDluVE7OJA2/vRgFwCvkvsC6C04SXLDey/ZAZkV6Uuqc+LhSmigx3e3Fy3DHkFNfuA9Bg X-Received: by 2002:a05:6402:424f:: with SMTP id g15mr56224984edb.217.1641419789369; Wed, 05 Jan 2022 13:56:29 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id et3si38439ejc.301.2022.01.05.13.56.29; Wed, 05 Jan 2022 13:56:29 -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=@outlook.com header.s=selector1 header.b="uGuy/mwQ"; 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 80FCF68ADAB; Wed, 5 Jan 2022 23:56:26 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-oln040092075100.outbound.protection.outlook.com [40.92.75.100]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 23D3B681871 for ; Wed, 5 Jan 2022 23:56:19 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WKRZCMXC83JKgg9pzLWbNN5m5Jgfh5pMxoGGmscY64XWbB/K9LitudYdfW5Vf3kXbJXIBsH6jENfEjUx5DEeCPGRccdJFhOsB5cjQ/7A4gCQiRVCocJxwxYYoNdWilpnzwnyDRtrwXkc87W7aQ5kiD3ZlgmOwbP+j3u80Om4y3f7q4DlBn/kkWWKMlBEOVIwLM+sQjflyC04pHkIZO5Ul3V+RzTGT+Wc5PGR2G0E9WYYx4hGl6JXIZ2EAyY3PK9aO09x0smOy3oCVkzYzC9Rpo3GG4/IL2GRg0xFTYlBscZjuWhmeuD0ZXnoTZVZlPTfZOfu/NK0iFr8N8yoZvb+9Q== 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=lSPE4LwgXCSEJyvOdl0KmQ+l7ZNiM9dY8KpWOxfDHUA=; b=HAxW7q0P0MpM8adZLfCkANXXa0mqtOFUiOcsQhZf6a/CcrJgRZrxUq1UfiAQHFUzD6Acgujjd4SqMSGUpFjS4tEZPUDnhzFBlORbUPIdkC5MFP5Jd3Th1kAM88Hud11iwAOVjgx1Rx8tIEQGnlq4Dp7fh5aa3a3iTQoFMQdjFfOyaERWEVOblCYC1XyEWjbsSYXnYf+Tfn6wrbsSrWYZ7V288GCwFpjytk1LMqzNrrACgGmYbxoyBtaS4UFwLF+IU3v06qIfvEdZp3OPUCD6yDGJsXkQfrcyHlVaDz0otzJ1ErjXdA0GPNhCEGKKD+FNG2SHPVAlmzlYQchyHOazGA== 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=lSPE4LwgXCSEJyvOdl0KmQ+l7ZNiM9dY8KpWOxfDHUA=; b=uGuy/mwQnKg+7CcurTgzmeS50z0YpmloXfDHsCnRvANH4k8dp5ZiYkjBKLqM65SVR6H7FW1srXbT2jDnanpXLXLUN4QLq4Wm1mu1A2Hu6ZIMIoFGlkmxARFiXAHl8zBj+a20khxrOsPPQANp+j6yzEicClI/xmfaVOEfIBgMc8oIyLtEfmSNqm1g2nOw3ECXHnRYfHrnJPn5CSSQBQZ78zdMTBsHN39ge8VjDf1m2XQl/ykm1EupW0LwBBjvZnatSrnUyi7dyICSZTSZ6/o5NyUO92FiDWgBV8z519TlewUNW74MHrYHgUCbazvKRXw8Xj7WcBn7281kZNc2CcSVMA== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM7PR03MB6450.eurprd03.prod.outlook.com (2603:10a6:20b:1b2::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4867.7; Wed, 5 Jan 2022 21:56:17 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::19fc:be9f:2c9c:53f5]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::19fc:be9f:2c9c:53f5%9]) with mapi id 15.20.4867.009; Wed, 5 Jan 2022 21:56:17 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Wed, 5 Jan 2022 22:56:02 +0100 Message-ID: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: X-TMN: [oB7szFi9woCIeNDh14alLrPyqeon+5Er] X-ClientProxiedBy: AM0PR02CA0183.eurprd02.prod.outlook.com (2603:10a6:20b:28e::20) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20220105215610.813119-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a3dbeea7-5b65-4721-b0df-08d9d0963321 X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiR3EehW4kxQzdNcP2D/mG1J5im7yoFdrO8UM0gN6XZ//KZNulHI3fZ6ZyCbtQg/OVk28skIDO1CLAWH1e5KpgDdzx0oMoG5Cuh7p9QgkFhfkMBwpgXCqBUsPm5tUe4elMwDSiUpVTvIBLsON+YSNz0WN8JxfLXR4Tt52GAemyuFBmRbEn3YgYtiVgIsCimLWwlypAHMRKfJwydyyroo8sGkZ7O66B/r4VdtuFInIm6XI4oPqZvS6fPX3Qw3GyY1gQHT6+wURrAYG2tzOLzXXnQiWRzI9n0HD7HX5UVcPPf4lXdQAw9aMByMJ5pdi83QnFbLfnV3y7qmmy9nn52UDrKghERkOdvrQFC/uhrLOpbAcdCTzpfHCCocsb7DbIi8kSUz3TC/7aM/5YvG8CuDXyWQwE2mwuNxWarHnrQil1LrMykEqs1BwwU5pdfzIxs8MynnvskrRBSDl36GBFn0AstfSetIu71jKk37jZhtURxPOBLO3dGOxNF2ewQ8n+X0UzRokzZ3smUEByvHqg9+cfU1QKV3ewg2eTZlHzNeptMVIkQm3PIkkzOnj6q7KJIhj/JaM9SBw96eVxkldUzPD0xBnV/+9apf9f/aObae42C4+KZUMQJ5NUJxiKa8M8vktJgtmOQDA85a6+y2VOIWDDfWQJfKsjbYZMBOdiYw4zSj4okZZuLCdvZzh1BlerTTTcQKxOKUdMN7RpNH4XCsdicwTKvXJT9rrvdg+ENHRM3GgP5zOCRgY8NUNtqr3m1FImw= X-MS-TrafficTypeDiagnostic: AM7PR03MB6450:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 0uw7WXCrR2LGjvNoTKIbb0lApeREltnuZSi+u1agLzlBquxQpfCdNpxe9TzMKQJS9BRK3akPIOjQo+6I58Sa2BRLzVqEzIXtki8eRHpa+bbi24NVo0xVoaviX1ZDLNMeoDpZEJwWJEKeyJq+GpIOXkclaQaqzdYYLMNE7GdN5L8GcT63sU/33xPK65ryxS760Q5/5Fp3NC+zrbu2pJKNQ1specua67Zly/u8tkvRsjNKGFkPCzZy1qPzYMC49dUhc7qcdbLXM1bx+LXPCuA3w/rDao7ZJEYL1bL6aUGEO+hufAxkFPMedPw0ortIy97X1dXHT3iy0lDIhgAsQpNKJ3tds4nKnMsLYxI9NF4YQUFi6BIHCQAaAJB/0k+R+p1aeGODWg5a0/Y4iwBJIPwQyVjvI4hEbuEFE+HcmlYGjmHCGXWKHuN2s+dC3OSP84yzRJcdTkmDctxGvLKCI0szDo8pZCHfevso3tuP2AbzyHvv0HCNSYTg8l8rFr3NNPlT149jaApULNEnzXcScmy3NHpTo9vlJkfJ3KC64Au+xAmbe7BElISpCxbrXfJqZzETatSpCuTNFWY31S0EM2PjZA== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 2DdTGThNILtTicePbzrUPg00h2I2/ugztKJY6OsRKsefTerZiedKFIiHNEsZgIfdO51U1tjyuqrSjQAZUZrSNjFeESfZw3IRhL9h0TQJkTtwUhuWAbBhkDRV+Mvqpp7zxuiyZH7+h6A3i/X9mvk4N0uOS2HqaVa35ZJiK34K5rkgc9c/AqUfO01286vZYHCSZib6BeQSQVEGlbnTSlfb/vgcFkDdrJfXsy9N3OcS4G4yg8vNEffiq6ha6UVBqUitohYJNx5qq5DhwWRA0pZUN83ujkk40vP1wba20Cn9VJl+zvb+0XX4vbcVnJv8+pVb+Nos3auczHVjlK5dxDUkMZGiJTs/RYN9GRGFEbUNlKAxtWFfw0gByeXGv57Fx21WyH0FiLuTdEiu4ZfBEzLj6AEnHmBrFqzEYCoLMN5Qznpsei9r64aeqdS6F5bR9+PoU28sZrDRUXmaQz50xFT/tE6ffee3DiE0yDkeEXauvh7Zg3MhXB2EqLSO7LKPLtaLMIhVI8Pf4dISNDoAA7C/SlDXRncZK4iTK+1pPR0HrAGZ2DgW8wQyn7nlr5Yv42SIHGCQa9QJttt9xSbWeFgibV9gc9ILP7byUCnlE+I3U6Zod2W19PtrI76WMORNevNtBTOJXDIsV5y6AZ2nnRGMRTyR7+Xhl4A5s0VXv7v0R2456EDLVvK0WqMyBc2g2TjYqcHoLrmI8m5hRnmhY8GZwbboJrHxeBTnRwAtZmm7MdSllDuoJR257idPZurpiETeUxNCr5qRd0+hD6eR6MTisSaf3ByiMZUHO9BkIe4Pl5P5XlP0V9kMIQ1fM2JKvB/quhRiNF+JiAQW8JyJJSkBpFNNbEt/f7V/gvSKwOVyjficv+92NYN+VzMHMCpCebuAWM3kFVvFpN5xyQ6csc3/gV5b8K6gAmyYNlf9Tqv08TK5NDfJ6dwIoezujCizz4u/BD7LoA+YggIuiyOosPGfWg== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a3dbeea7-5b65-4721-b0df-08d9d0963321 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2022 21:56:17.3341 (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: AM7PR03MB6450 Subject: [FFmpeg-devel] [PATCH 02/10] avcodec/mpegvideo: Don't unnecessarily allocate buffers 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: ubsELjBbPQ/L Signed-off-by: Andreas Rheinhardt --- libavcodec/mpegvideo.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c index 1c2b28f450..af433153f2 100644 --- a/libavcodec/mpegvideo.c +++ b/libavcodec/mpegvideo.c @@ -371,17 +371,17 @@ static int init_duplicate_context(MpegEncContext *s) s->pblocks[i] = &s->block[i]; } - if (!(s->block32 = av_mallocz(sizeof(*s->block32))) || - !(s->dpcm_macroblock = av_mallocz(sizeof(*s->dpcm_macroblock)))) - return AVERROR(ENOMEM); - s->dpcm_direction = 0; - if (s->avctx->codec_tag == AV_RL32("VCR2")) { // exchange uv FFSWAP(void *, s->pblocks[4], s->pblocks[5]); } if (s->out_format == FMT_H263) { + if (!(s->block32 = av_mallocz(sizeof(*s->block32))) || + !(s->dpcm_macroblock = av_mallocz(sizeof(*s->dpcm_macroblock)))) + return AVERROR(ENOMEM); + s->dpcm_direction = 0; + /* ac values */ if (!FF_ALLOCZ_TYPED_ARRAY(s->ac_val_base, yc_size)) return AVERROR(ENOMEM); From patchwork Wed Jan 5 21:56:03 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 33101 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp1111437iog; Wed, 5 Jan 2022 13:56:37 -0800 (PST) X-Google-Smtp-Source: ABdhPJy5hTRngleTyA+KaDzW6azjgJhTXUM4+PTynCU175orl2pEGgibHR9C5lkKtE4ycS2O5FL3 X-Received: by 2002:a17:907:d93:: with SMTP id go19mr46545179ejc.537.1641419797229; Wed, 05 Jan 2022 13:56:37 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id b18si77508eds.12.2022.01.05.13.56.36; Wed, 05 Jan 2022 13:56:37 -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=@outlook.com header.s=selector1 header.b=OelLC9fv; 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 B1FA168ADE7; Wed, 5 Jan 2022 23:56:30 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-oln040092075100.outbound.protection.outlook.com [40.92.75.100]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 908CE68A2B2 for ; Wed, 5 Jan 2022 23:56:24 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Fu8349Miiz6FOTHGTjRGLRA/DLYcxPWQN2suW3s3ffRxDOcDMsHV+wuYEHwiLExuMv5oxOdfu6aO0/2Q5olpEQabRA6c04T9rDgrJlkwmiO4Iggk/Cg68mOwDH0nuCbMAU5bAG3o/eK6eQ5/bnGoK707EzOlNQUlyS0cw0bxTOJjFI7VeKYsj9taQKTz1TILW3Gzw/GoWuT4UgVdEkZRGa2vWj4jbH37wyDl/QHt445Q/rmDTxJi6NLBPVpQmbora0wwzAVQF8tz2AvWEiLd7qlFZJ4svgSmPALKlXEvRMWxwQUVCOd+87/av060GNHxnv+LAPmYGFSlQqj4LTV2nA== 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=Lgwebj7ORfQS1Ye0BnDGhDbmjYGoOneM4/UgWWBPjUI=; b=HoXhpumrFP/DE6w8heokk5pDu1IGWqq7+5GcRmGbzNcraeR8PE8tmCpyMbxbVdY05OaVzMbmZpEbD8k/o8HsahbKs6Xxg6gvUYWOh1/p85fzcxdfRSx6S0ZXZGvpXhcBaiGVbVEpzgvbKG3s9fwnA4Butu5OlwcVrsGZmnD8Ak7+/yKjKguLIL6WMjIMzXaeeYJgopZ18DGDlqokbMHf1C8vH7Vq8Yk/80xDR7EPfcOdqABUonwhf5UtZYM8gVpjVaa39voAYz9JIEqFYrREUklI7rzH2rv9lw1KjLrHQ59P+Ae1IQO1cI0iWE/Me8rzx97kdNc8KCHEtu3qkXQteQ== 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=Lgwebj7ORfQS1Ye0BnDGhDbmjYGoOneM4/UgWWBPjUI=; b=OelLC9fvfMbOih1DJ4oXqY3vfHhMVZr80rENajaxf+b3fn1bVr81L6rNORumuHJXK3y33l+SxZnQBHfXKTatLwboe/1NBHEqRi583Di2Hr/+sAby7sj8IzBGIrKVHbGZXbykHwZv0ZUUjgICs4RXx3hU2eNbDFxiLGjqAAvJ2sV3SWopMT8nfkJK74z+ZqUDSLlkS392PXWFrk0oVekpkId4hRMorMn51yogmrK7gMjd0VoyTKccKnRnER600vZ8gPEpPCzIYeGfxyFycLVw6djeSuEFU/KubmNErScmAMibaI2aqVONv3jRGA1kS3Lu2Mb3Ic7Ua3Op0EJeTEEyag== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM7PR03MB6450.eurprd03.prod.outlook.com (2603:10a6:20b:1b2::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4867.7; Wed, 5 Jan 2022 21:56:23 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::19fc:be9f:2c9c:53f5]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::19fc:be9f:2c9c:53f5%9]) with mapi id 15.20.4867.009; Wed, 5 Jan 2022 21:56:22 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Wed, 5 Jan 2022 22:56:03 +0100 Message-ID: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: X-TMN: [6s2AkddWeIUa66D+pgy0rfTo8+R+4vsP] X-ClientProxiedBy: AM0PR02CA0183.eurprd02.prod.outlook.com (2603:10a6:20b:28e::20) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20220105215610.813119-2-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 60b9224a-08f8-4122-8b4a-08d9d0963672 X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiR3EehW4kxQzdNcP2D/mG1JWcnJQnOnRCyJLEhpml9UN8+dCN8dIh8sqAn43IrVneGdsEVbmJfnQ+cRFDJY+Z6ehs/96pA3X073IveT2enCaoquBX9pf2sC1nh7UMZY6e+WMY6SPnVgq+wIHxbx2w8j+cwmPQ1dV68hfi4+MBiAfQfQEX34g9s9xAOK9mwFR5yFvE478wzQZUW19aAfZLP+yQ0WvouY9p7vot2XaPeyIE59UFrQmXFBfotIvhw1rFbEdC6eHI9RuFw/2w9QVpcqRbBGdTfZHLNCq1/aG6ug35Ji/k/Q1OSfUl1Gpu0uP6ASlg0TPnfu9sdir9gOFx6XJNzk4JVs0cF6tzvaAcelLHNxjuBhPrE+YoWGHXnVNQzTw88CDW7kbIZQkN5XSG96Vd3shuMMC3eH39q9mokunUl11usqkTIOQk1nsig8XIPtnyGPtXwXGselN+PBOafxoUa5YqkD+jaY0XcDZQqgXEfM9+RMh6WRf3Zx2PhUDhLidP4Wc9LzMhCmGpIY5zrvxR4dRnSXOGQwdS6KQjonLSlSK1O+m0d4RlhA5pTnypblyS9kpHXABuzoBvoU4f+2C9N0ZgJAHSlyVRJnObKtXcm4Ev8iuuew5TZNVMMtLdeFRu33ML+o864T4hqAe4Gd9OO/sosAPIQPyKbdf6HQveYG/DArw+hSaEbEtkcFIJjwicRC9T+AE97lSol0s4v6taOE9yizvzqOH69GWyZGC5KCR34mDTM1QR34GyATfU4= X-MS-TrafficTypeDiagnostic: AM7PR03MB6450:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: bfm+51+8gYt5Q4vMs+YJQ8IdZP/EcfkMJ9UyfS9NutFtoYN4XaFpgZHnn+Iz/PnsyATCZXC+5nEO9SeQXqNve/CWMTTgh06eIdaRtNy8sOk/cRfjzxmKLYZF+9osEOTrSX6jYQOtQbo4YO5X2gOnNyqsdkU+7QtjRmuo7QSYSSClYJ3VnJi37sBUzpoER/EjYlCUQ5PuHWB6EHwHrazGPkMTWwuRN1qHyMTDuzOd5fWBNMQqaKBBVJ4329KiorfS7hIFgOMp0Z6vbejavmt/6Pn4RDx1Ab8ITC3f75Ssbp4+A3Jgw2SFbfps6EDhKiqC5gMZLG99JwWg15HIVFVjoi4+I8B2k841Jr30rN+tiZz+bP8iJiBIRHM/ttE6n2KixL/FALhi+O8y1x7cg3tgMdLrjyNbMM2pQILYbNNUidri5Vqd4R+ZTBVXgYxToFY4ZWiM307VwluctW/fmzBm3Pstaxgjj3B5rDvH1686RJQ35lXP8JPWoRBdjy63cIbr42H4eUQ5Bzdy6NmtL+Y93Z7KzagLXvluRvaOc4e+lXgaKH5OA3S6tlKxsXd6+QG4j7DhT2Sqx8fPKUYfxQt86A== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: O5Kxon6fja8pj387HxcZkUAClw+9QErNoikzLkBJ9mejKKCYBsk9/y+e87Z43OuVSdYAUSg1CuSFpCblGMp/9RvddMS6W3xJfEqeH0j0Gv6uTgWq4MphkdvKqESWo+4bO2dRcNoLoI3rWENANHxbW2uAD1XFBAa8cxJPPhj8KaE80+9lYGYTbXu0N48lZQ6aXbEk8n95pQie+pLD2vDrDT5ILnI94AKG+cmW4gDuOdHZlmZLZOPGasRNL7z9TR1QoUC9c1q+g2LnqvfO1eJKmaz/lHX2udrNdCJwVGKSNIw8fFYuOj51c/haspiz2rMynq/bt8dTradvcZvXxyN0aqLgj50sOoh9VyeYwdHzONTYazH2+lWsmLhnN3hTxVwEOXBEJYc8EFERa4aTEO5KclQJ+CyvdVYC58oXZ2tEjossIMmFYTV6mB7vPdAibF8xOgtY1ynbFU6U+EJaIQzH9/BKjR+CexA8DMGCHBc3mxEB7ermdgDQGzamRzIAk3MDCGJEzBF5E9IL55t6fkxaiaxTsBV+pO8ybxrTh1Ta27vDWEp9qP+h1V13u+Hqys5u5LseWWH763pGHYvqeXoZBeqQ1r/0/yhdYmHbNjY29yvod3i2Lzd2vuW77JZkvyFw5LraWYLYrWcOXIiFWlg4CXJDbBEKnZtbQ6IlAPo042ChTh9VWqqaaWkzDb01Jx/E6r8XtXZNyRyIWzouKoANmu2BlXVZkcVx5BxcUWJ1jJbd7oRT1DxmZwLtYARujEE8tBGRxENdbd0ZddcbHI8LaxKQKk3EgdPkDuIBX4Q+D/AZyMYYIkOsQFBylW5lLylTHMmG/gCdIW9I9AUzcJAJDJ1tmhknciLE+jrzwS8THHLTpO0MxnIgbXFfTCcLGpM3sTmlpBBcHSyH8mo4GzWhFxWw0WAJaNnDDaNRDWM2hjdXzDsY9bHItbJBZaSFgdIUT8896+vNZjjDriDe6Bz6EQ== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 60b9224a-08f8-4122-8b4a-08d9d0963672 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2022 21:56:22.8815 (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: AM7PR03MB6450 Subject: [FFmpeg-devel] [PATCH 03/10] avcodec/mpegvideo: Avoid macro/av_calloc for ordinary allocations 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: givZuoOWD+YB Signed-off-by: Andreas Rheinhardt --- libavcodec/mpegvideo.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c index af433153f2..e9f2fb212a 100644 --- a/libavcodec/mpegvideo.c +++ b/libavcodec/mpegvideo.c @@ -632,9 +632,9 @@ int ff_mpv_init_context_frame(MpegEncContext *s) if (s->out_format == FMT_H263) { /* cbp values, cbp, ac_pred, pred_dir */ - if (!FF_ALLOCZ_TYPED_ARRAY(s->coded_block_base, y_size + (s->mb_height&1)*2*s->b8_stride) || - !FF_ALLOCZ_TYPED_ARRAY(s->cbp_table, mb_array_size) || - !FF_ALLOCZ_TYPED_ARRAY(s->pred_dir_table, mb_array_size)) + if (!(s->coded_block_base = av_mallocz(y_size + (s->mb_height&1)*2*s->b8_stride)) || + !(s->cbp_table = av_mallocz(mb_array_size)) || + !(s->pred_dir_table = av_mallocz(mb_array_size))) return AVERROR(ENOMEM); s->coded_block = s->coded_block_base + s->b8_stride + 1; } @@ -652,9 +652,9 @@ int ff_mpv_init_context_frame(MpegEncContext *s) } /* which mb is an intra block, init macroblock skip table */ - if (!FF_ALLOC_TYPED_ARRAY(s->mbintra_table, mb_array_size) || + if (!(s->mbintra_table = av_mallocz(mb_array_size)) || // Note the + 1 is for a quicker MPEG-4 slice_end detection - !FF_ALLOCZ_TYPED_ARRAY(s->mbskip_table, mb_array_size + 2)) + !(s->mbskip_table = av_mallocz(mb_array_size + 2))) return AVERROR(ENOMEM); memset(s->mbintra_table, 1, mb_array_size); From patchwork Wed Jan 5 21:56:04 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 33102 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp1111548iog; Wed, 5 Jan 2022 13:56:47 -0800 (PST) X-Google-Smtp-Source: ABdhPJxw2eZyU2fLkjP6yS70Y7GIv0XP2oByYQmgwY2HMaIO/LjbaNf8rHVQVpwx34J/aZbOc8yq X-Received: by 2002:a17:907:7602:: with SMTP id jx2mr1201113ejc.92.1641419807629; Wed, 05 Jan 2022 13:56:47 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id gw26si38669ejb.533.2022.01.05.13.56.45; Wed, 05 Jan 2022 13:56:47 -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=@outlook.com header.s=selector1 header.b=onyeZlp1; 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 AA7A568AE47; Wed, 5 Jan 2022 23:56:36 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-oln040092075100.outbound.protection.outlook.com [40.92.75.100]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id ACBB168ADF2 for ; Wed, 5 Jan 2022 23:56:29 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nUpoS59S6Hs3yQ4Uff+v1QZuYAeXz6W0u3eFGYDgVciYqQbJSVGwV3n8L9rHUbfBQ/E19DY8X1N6PEa87pQ98kcRBIgaACP3xRq+NNfcM890o1FWYdsIhrozeVXpVnWOyNu5d9XOWAnqW22Os9ccwkED3X56n8zshLmzxMQz9MkdJSOfXAPmRnrpwbPrpRVwJ39bTYFkM9FwGjpbhuIoe1193RYfTWL0XYgekhYIr0otmlqMgMCbexysTUgJZvgy6t9Kc2j+75s4hun9+uJMcoKrl/p1mgfTTfnDEY6rU9tajGqCJ1FSVYCeREfE12WQzKXJMpLDbgZK2OgJ9qgUnQ== 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=ZLUlr46pwrHd3LJlQhstcVQCIuJBQzHElHF/qFl7TPA=; b=LiTp7nxJ/LFgJsbkJQTWwUwIdZUP05V2+eZSqO+mac9VWXjwTVuwUFZ+i9M384NwhM+c8wV81TSjo8kYKq6jr5XVozvpELyEwKAXSckO3BTcnPcMnBQWnPEXvQRYVVj9BDn8BTNeI+RQJPlr2EHPdl9xiht0p1mOCPTav/pI5RP9jPtem58ZDEc0Ov7qtrORFhThrZMkzjYF6Gn0t62Zl8Mvwxq1Ou2TeoHSIZwAmELvKqBVdL+jv2uB9SKH1pTGQq29vboW7KP9qXGMph00b16qAMJKfjiPjYVpjkN+Mx/JK03MUob6E5d9aHkA61lGJrvmY4i7vb8iBq6VBdPcUw== 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=ZLUlr46pwrHd3LJlQhstcVQCIuJBQzHElHF/qFl7TPA=; b=onyeZlp1QsEE8VvYZ4ITrB9fnvF2i5qCvFXXXBARmYf9ElTpCnwVsMdsfamAR1zsAjA6HvvDu4nFQD55MwtK5eiaEf0nsAQSCYTABDiY8ouFKrQywfzjHiyZIAaVsotMgTAbw2NOXKvxsw6PlAoRp29iU9NvG8dw562fhv7YRiCjYZZcaAVA2oiASa6zSyaSigaM7TLAuB6cXMSYmldCaumayBP7vtZsqPMBJ7fv/BY3zldUixnoNDIrTMjNh7vNJSIHr1at3nblXAO5zUmI0j0S/bE/mz1bQ3ADRo/GphOIyRd4lS4w16sj4zZUook6Js095TwlrpaCrZpscuf1xw== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM7PR03MB6450.eurprd03.prod.outlook.com (2603:10a6:20b:1b2::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4867.7; Wed, 5 Jan 2022 21:56:24 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::19fc:be9f:2c9c:53f5]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::19fc:be9f:2c9c:53f5%9]) with mapi id 15.20.4867.009; Wed, 5 Jan 2022 21:56:24 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Wed, 5 Jan 2022 22:56:04 +0100 Message-ID: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: X-TMN: [tGKcMFtRBdYxd+hQu/D8fsBDSPnq5UlM] X-ClientProxiedBy: AM0PR02CA0183.eurprd02.prod.outlook.com (2603:10a6:20b:28e::20) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20220105215610.813119-3-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: ee190680-0ca6-4888-5af2-08d9d096371e X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiR3EehW4kxQzdNcP2D/mG1JSQdmdgchly91t8zvYniWOPLIOdUCOtw1iOsHjC6iPo+GMJc2Z9NVbEBcLxkPVSM6seR/D65WIPE3ZXNo7m3/Ama1EnffkLLieAEHEt5oTUVBJiV2iF+ybSYKYjD8mTXDX2oMg4fAQfo/UCceqxfMUV/TTJW0J6RV7+pTctG6K8ZhB2srJ2v8xi6JlQ2c66T3bOk/QprVSrvRg6iBM6YMjCZW7322nT30Mq0QuAfyVtP0axrB9LPwkkC5HrRvm3gBD0e8AVZJaAC35NpwhIWf2q5bEheLrl0znkCMY7ZueOSEO7dww0QeqQaMKzl8bTQ8vTGdhzGs2elKN2dPUsxGKb1QJ9ycNhMRdCO78RLuZLP2fbTa8i+X6A4lmOawkJbF3MC2lajEeCIDOu8/zDS/CzuGM9I81inGkHKnWdNaK6MIf5VIctxozEATbWoPTSuflih6OeS5uN+8eK0InoovvK0UKhX1kXJnMT5nldeNRNRlplFoJwehjkpZDHkdyCrdUA7+kH8rqLUTFmxpxbfhvrP/LmZnUNHZa6tsQqxOA4c16Kk96eaf9QFXVFzk1oiBWzEUIeuT3FlFohIe5vftrrxEi6HlUPTOO56lU+BfnSh9Y9X5CeveVdetnuwZ/ft7Qk5/WTrMJTRWq0CBUnDOk/CxmoLMVj5EB/9w9lbRdeTdOsIrdIzvU/ru4VBhitGHd802PIRO1r6rf3o8a66wSJYiUSoYloL0AKUbHWpUoiY= X-MS-TrafficTypeDiagnostic: AM7PR03MB6450:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ez8SYf7aHxj7/89k4CwjtQncCjMU0jpnmGfygBS59nOvI8mZydnDS6vzWt7Z0eITDUM7nxNbD4nxOJ7HzfGmCz/4FLrZEccfQeqIS7yhEWr/z060xZgWMZa+xJzNqoW149M8v57KPwrwKPttl8aXrQUAOrUjuLOVSVV+e7tS3WkwJL5caDKsXRJviQuxUhuMN55WZpY/+HZcMeG5rD7RKRbLX1MValttQnF7g9izOn6pEXGhQdZU8304VMd23dwUHjIPMTumFUyDvyybUOx0/ASqyQxYkZ8RU2+YxgbPMMBJZMdqXWJi8Iqqi+NP9USNr9wpOAStcM9UbAwMvqe4H2+20hfwdy38EVAXvdcu58JpWZVX8vv0BF2o8EYduD4N3QLIvyrG5QmnuNhUCLkbIhm6mRuSVD4c3p8YFLUrdnu4T8Yr/LbUjllY3VObhlnTQrGAc8yFgDlrpTomiTJPr2tv7xahQoxfjrKRftgjnD1Sj+Q/bYSPebI5BqsQ5A2rmRTv8hEmqk2d5tHtUACObODy6LZBVqnevfJSuoeUOPfBxZWnnG2/T3l3glegJFfHPmj4WJpM5nxxzZWmj5t/Yw== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: blNyTZ0j/YdPz8Yx7G5onrgCvmN14PXWOCrYkh2aOHCBCwtmlH/t5Yeg/i9Sy1eD19qWPANwxnCNilZDHbxw0AKHxmo+IImkFfSHUk2bcPV9o9c0g5BDin7TzDs1t9kOEiTff/Hn9vm1+eu1HLfw/YtQ30Qdg2ETqrYUfLmWL0Jy2pAWdxMYhrvwJ5qJ8u/WDFq3EUQCtXFj/huTHX+AtKAmo7z5kOeq6LXBv94viAlZCfjb7H+Wv/SGvx/N/RwJP3k1Wb3kO0nSnhGoHsWHymPU5eKbOIZDn5F2hPPHK1idDsUy1NcTIVwbj49L35DOGDxanzUH925pzxQydt4nXhzTsoqBY4qdDzgAbXGtL0EeCKSq/6JTSONwd5lM9+kZxSGhnV/noG1yRnFwVOETeP/G0vGKJGPj5qTBywEkNILoF83V695Ip+mAP8Njw0JC88j1C7XOK7BND7ngZbYrXSxKMQyw1PEaoAjYqsLFwHoyPuHWiC1xEi2aTHBjln+gu/JSH5Qwue0FOu21t5mUH9YVZKgRGRj3C9iJcS0RhiF5RAhXzyS/89SRlQ7xSfJnjiSi+4lfpPFjU6QmAnr2YkidSD2tbdy35QB9986X0lZRIktTWI/yMuJ0eMS+M2tJ/UTejkirXvIm8bhWoZ3Y3ik1e7dxMTGlx6Pi8HcsFK5rQ7My7LL0N1ceJwSWn6R4g3Sr/VfSA3E8VEYPsgAwk/EuNl3UZRqX0OWjLpoDOoDJKry9RLA1jg9cC39lp05aILVYge9ngddMgUjRDeWO5Jvu6l0awdAogXZnoJAfssacjEOW10ZCP6MIT1KStW6zZNUxdueVDfxwkEES7Gbkmh0JD/9mWEHcNstRtOhPOn0j3WSGxgeZ6ouCFRp/TauKYAC0kQw7CWTWEvhSEAsUF6NySIn1UFZcyRU3otNQWXHSeO22Aboxrso83VNIGXh81/L3q+hjGxGnaSU2ibSU1w== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: ee190680-0ca6-4888-5af2-08d9d096371e X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2022 21:56:24.1012 (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: AM7PR03MB6450 Subject: [FFmpeg-devel] [PATCH 04/10] avcodec/h263: Move functions only used once to their caller 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: /lTyupokqbfc In this case it means moving ff_h263_pred_dc() resp. ff_h263_pred_acdc() to ituh263enc.c resp. ituh263dec.c. Signed-off-by: Andreas Rheinhardt --- libavcodec/h263.c | 128 ---------------------------------------- libavcodec/h263.h | 2 - libavcodec/ituh263dec.c | 89 +++++++++++++++++++++++++++- libavcodec/ituh263enc.c | 43 +++++++++++++- 4 files changed, 130 insertions(+), 132 deletions(-) diff --git a/libavcodec/h263.c b/libavcodec/h263.c index f8fba3c9f4..b30ffaf878 100644 --- a/libavcodec/h263.c +++ b/libavcodec/h263.c @@ -102,47 +102,6 @@ void ff_h263_update_motion_val(MpegEncContext * s){ } } -int ff_h263_pred_dc(MpegEncContext * s, int n, int16_t **dc_val_ptr) -{ - int x, y, wrap, a, c, pred_dc; - int16_t *dc_val; - - /* find prediction */ - if (n < 4) { - x = 2 * s->mb_x + (n & 1); - y = 2 * s->mb_y + ((n & 2) >> 1); - wrap = s->b8_stride; - dc_val = s->dc_val[0]; - } else { - x = s->mb_x; - y = s->mb_y; - wrap = s->mb_stride; - dc_val = s->dc_val[n - 4 + 1]; - } - /* B C - * A X - */ - a = dc_val[(x - 1) + (y) * wrap]; - c = dc_val[(x) + (y - 1) * wrap]; - - /* No prediction outside GOB boundary */ - if(s->first_slice_line && n!=3){ - if(n!=2) c= 1024; - if(n!=1 && s->mb_x == s->resync_mb_x) a= 1024; - } - /* just DC prediction */ - if (a != 1024 && c != 1024) - pred_dc = (a + c) >> 1; - else if (a != 1024) - pred_dc = a; - else - pred_dc = c; - - /* we assume pred is positive */ - *dc_val_ptr = &dc_val[x + y * wrap]; - return pred_dc; -} - void ff_h263_loop_filter(MpegEncContext * s){ int qp_c; const int linesize = s->linesize; @@ -228,93 +187,6 @@ void ff_h263_loop_filter(MpegEncContext * s){ } } -void ff_h263_pred_acdc(MpegEncContext * s, int16_t *block, int n) -{ - int x, y, wrap, a, c, pred_dc, scale, i; - int16_t *dc_val, *ac_val, *ac_val1; - - /* find prediction */ - if (n < 4) { - x = 2 * s->mb_x + (n & 1); - y = 2 * s->mb_y + (n>> 1); - wrap = s->b8_stride; - dc_val = s->dc_val[0]; - ac_val = s->ac_val[0][0]; - scale = s->y_dc_scale; - } else { - x = s->mb_x; - y = s->mb_y; - wrap = s->mb_stride; - dc_val = s->dc_val[n - 4 + 1]; - ac_val = s->ac_val[n - 4 + 1][0]; - scale = s->c_dc_scale; - } - - ac_val += ((y) * wrap + (x)) * 16; - ac_val1 = ac_val; - - /* B C - * A X - */ - a = dc_val[(x - 1) + (y) * wrap]; - c = dc_val[(x) + (y - 1) * wrap]; - - /* No prediction outside GOB boundary */ - if(s->first_slice_line && n!=3){ - if(n!=2) c= 1024; - if(n!=1 && s->mb_x == s->resync_mb_x) a= 1024; - } - - if (s->ac_pred) { - pred_dc = 1024; - if (s->h263_aic_dir) { - /* left prediction */ - if (a != 1024) { - ac_val -= 16; - for(i=1;i<8;i++) { - block[s->idsp.idct_permutation[i << 3]] += ac_val[i]; - } - pred_dc = a; - } - } else { - /* top prediction */ - if (c != 1024) { - ac_val -= 16 * wrap; - for(i=1;i<8;i++) { - block[s->idsp.idct_permutation[i]] += ac_val[i + 8]; - } - pred_dc = c; - } - } - } else { - /* just DC prediction */ - if (a != 1024 && c != 1024) - pred_dc = (a + c) >> 1; - else if (a != 1024) - pred_dc = a; - else - pred_dc = c; - } - - /* we assume pred is positive */ - block[0]=block[0]*scale + pred_dc; - - if (block[0] < 0) - block[0] = 0; - else - block[0] |= 1; - - /* Update AC/DC tables */ - dc_val[(x) + (y) * wrap] = block[0]; - - /* left copy */ - for(i=1;i<8;i++) - ac_val1[i] = block[s->idsp.idct_permutation[i << 3]]; - /* top copy */ - for(i=1;i<8;i++) - ac_val1[8 + i] = block[s->idsp.idct_permutation[i]]; -} - int16_t *ff_h263_pred_motion(MpegEncContext * s, int block, int dir, int *px, int *py) { diff --git a/libavcodec/h263.h b/libavcodec/h263.h index 84a3a19517..982e545491 100644 --- a/libavcodec/h263.h +++ b/libavcodec/h263.h @@ -74,8 +74,6 @@ void ff_h263_loop_filter(MpegEncContext * s); int ff_h263_decode_mba(MpegEncContext *s); void ff_h263_encode_mba(MpegEncContext *s); void ff_init_qscale_tab(MpegEncContext *s); -int ff_h263_pred_dc(MpegEncContext * s, int n, int16_t **dc_val_ptr); -void ff_h263_pred_acdc(MpegEncContext * s, int16_t *block, int n); /** diff --git a/libavcodec/ituh263dec.c b/libavcodec/ituh263dec.c index 3f982f414f..17af5d7f89 100644 --- a/libavcodec/ituh263dec.c +++ b/libavcodec/ituh263dec.c @@ -439,6 +439,93 @@ static void h263_decode_dquant(MpegEncContext *s){ ff_set_qscale(s, s->qscale); } +static void h263_pred_acdc(MpegEncContext * s, int16_t *block, int n) +{ + int x, y, wrap, a, c, pred_dc, scale; + int16_t *dc_val, *ac_val, *ac_val1; + + /* find prediction */ + if (n < 4) { + x = 2 * s->mb_x + (n & 1); + y = 2 * s->mb_y + (n>> 1); + wrap = s->b8_stride; + dc_val = s->dc_val[0]; + ac_val = s->ac_val[0][0]; + scale = s->y_dc_scale; + } else { + x = s->mb_x; + y = s->mb_y; + wrap = s->mb_stride; + dc_val = s->dc_val[n - 4 + 1]; + ac_val = s->ac_val[n - 4 + 1][0]; + scale = s->c_dc_scale; + } + + ac_val += ((y) * wrap + (x)) * 16; + ac_val1 = ac_val; + + /* B C + * A X + */ + a = dc_val[(x - 1) + (y) * wrap]; + c = dc_val[(x) + (y - 1) * wrap]; + + /* No prediction outside GOB boundary */ + if (s->first_slice_line && n != 3) { + if (n != 2) c= 1024; + if (n != 1 && s->mb_x == s->resync_mb_x) a= 1024; + } + + if (s->ac_pred) { + pred_dc = 1024; + if (s->h263_aic_dir) { + /* left prediction */ + if (a != 1024) { + ac_val -= 16; + for (int i = 1; i < 8; i++) { + block[s->idsp.idct_permutation[i << 3]] += ac_val[i]; + } + pred_dc = a; + } + } else { + /* top prediction */ + if (c != 1024) { + ac_val -= 16 * wrap; + for (int i = 1; i < 8; i++) { + block[s->idsp.idct_permutation[i]] += ac_val[i + 8]; + } + pred_dc = c; + } + } + } else { + /* just DC prediction */ + if (a != 1024 && c != 1024) + pred_dc = (a + c) >> 1; + else if (a != 1024) + pred_dc = a; + else + pred_dc = c; + } + + /* we assume pred is positive */ + block[0] = block[0] * scale + pred_dc; + + if (block[0] < 0) + block[0] = 0; + else + block[0] |= 1; + + /* Update AC/DC tables */ + dc_val[(x) + (y) * wrap] = block[0]; + + /* left copy */ + for (int i = 1; i < 8; i++) + ac_val1[i] = block[s->idsp.idct_permutation[i << 3]]; + /* top copy */ + for (int i = 1; i < 8; i++) + ac_val1[8 + i] = block[s->idsp.idct_permutation[i]]; +} + static int h263_decode_block(MpegEncContext * s, int16_t * block, int n, int coded) { @@ -579,7 +666,7 @@ retry: } not_coded: if (s->mb_intra && s->h263_aic) { - ff_h263_pred_acdc(s, block, n); + h263_pred_acdc(s, block, n); i = 63; } s->block_last_index[n] = i; diff --git a/libavcodec/ituh263enc.c b/libavcodec/ituh263enc.c index 79c8c9999e..d944c4879f 100644 --- a/libavcodec/ituh263enc.c +++ b/libavcodec/ituh263enc.c @@ -445,6 +445,47 @@ static void h263p_encode_umotion(PutBitContext *pb, int val) } } +static int h263_pred_dc(MpegEncContext * s, int n, int16_t **dc_val_ptr) +{ + int x, y, wrap, a, c, pred_dc; + int16_t *dc_val; + + /* find prediction */ + if (n < 4) { + x = 2 * s->mb_x + (n & 1); + y = 2 * s->mb_y + ((n & 2) >> 1); + wrap = s->b8_stride; + dc_val = s->dc_val[0]; + } else { + x = s->mb_x; + y = s->mb_y; + wrap = s->mb_stride; + dc_val = s->dc_val[n - 4 + 1]; + } + /* B C + * A X + */ + a = dc_val[(x - 1) + (y) * wrap]; + c = dc_val[(x) + (y - 1) * wrap]; + + /* No prediction outside GOB boundary */ + if (s->first_slice_line && n != 3) { + if (n != 2) c = 1024; + if (n != 1 && s->mb_x == s->resync_mb_x) a = 1024; + } + /* just DC prediction */ + if (a != 1024 && c != 1024) + pred_dc = (a + c) >> 1; + else if (a != 1024) + pred_dc = a; + else + pred_dc = c; + + /* we assume pred is positive */ + *dc_val_ptr = &dc_val[x + y * wrap]; + return pred_dc; +} + void ff_h263_encode_mb(MpegEncContext * s, int16_t block[6][64], int motion_x, int motion_y) @@ -552,7 +593,7 @@ void ff_h263_encode_mb(MpegEncContext * s, if(i<4) scale= s->y_dc_scale; else scale= s->c_dc_scale; - pred_dc = ff_h263_pred_dc(s, i, &dc_ptr[i]); + pred_dc = h263_pred_dc(s, i, &dc_ptr[i]); level -= pred_dc; /* Quant */ if (level >= 0) From patchwork Wed Jan 5 21:56:05 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 33103 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp1111641iog; Wed, 5 Jan 2022 13:56:55 -0800 (PST) X-Google-Smtp-Source: ABdhPJwGw/UruJAPfgGcqmQ6GM15zq/8yhT0LK4Vx1QOCQWqKnXtYyz7kwXEGScsV8Nhz7lt5iV9 X-Received: by 2002:a50:fd1a:: with SMTP id i26mr53898147eds.229.1641419814896; Wed, 05 Jan 2022 13:56:54 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id hz2si40959ejc.687.2022.01.05.13.56.54; Wed, 05 Jan 2022 13:56:54 -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=@outlook.com header.s=selector1 header.b="Rh/iLLlm"; 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 DBEB868AEE0; Wed, 5 Jan 2022 23:56:39 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-oln040092075019.outbound.protection.outlook.com [40.92.75.19]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7C21768AE25 for ; Wed, 5 Jan 2022 23:56:33 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UQ+3MQTD7YKIjtJ2VCP1M4L21o+w2vgFDQh/wTq9htx8JFVTP927YMQqPU87Q1iWJlG6JdAmlPTMixM+8vMm2yzEGePqh5IqMvuS9yngYVfKDclH1vGunFtqS489W+lNuKLaWo/epQMSWK2P8v5bW2IDUE9MpOsP5cwEghVKGHlGxdeOngFngAbQdjWAr30XqVFEZKmCx07SToJ9wK0Q1kQkum8mJiPD6hZ9nPbFnYKldMr/MRRbN2TW48baeBymJlUfEAs1YxMN5bDvFvl313mvF0fCBoTxM3Fl7tjolTEyjmjccF6euM6Vq6M98hSZOI5EdtAHX79f+hM81mwr0w== 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=ESQ9DuJUsY3NxRrmaiPApxCVqH7mlTsETMe6iLKI9eg=; b=OMvQm7lbB0lZ87Pvy2664beYyM+QN1a5VmYn2xt4b4dC4LYoGD7awWBd+kLFB7e52YtT6Dh4BMKffcv4KRET24aeJqdtukJvC3D4LJwSFQtKQZWBGrd1UXROw9PF2gl+z3svcWBTy2mZKoRA7bRvV5mBUrQOxch7wXY4LC0VKIEFntff2B0L8InaIR1R1ZGsKu/SrPXN9plWjpGGHJ59HvF++X7AXdx/4pk+yDpYyQ7emKzAjhxHJ8/6agGxH+dEzMgXwbed8GMU4wj70Tf0ep8pDoqmj7dj+FcbTQXrOsaMYoAnEpkqT5g2nGN4sdCdUOyy/MckKgmNkEb5uaNlLA== 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=ESQ9DuJUsY3NxRrmaiPApxCVqH7mlTsETMe6iLKI9eg=; b=Rh/iLLlms03vfQz+V2ECrrtB3kXClHvk8T6XemayAm+ZDteVCykgAZzKwHFoNPdA3Y+Zzu0YrC8Weqp3OkqczEG4up9pXVskta3nm3BKxS4rrIOkLpf8yioLZ9rmOmDQb9UYihCcy7bgsnE8g7Yf6CrWDVpx8mKeLB/x6qqtVYcDIFwLcJ7uzBTF/2lbe0f19Yb6iWIgAy2CQp1pO07aZ7BWN7dCD8DuX0uOQqGcblNXla+i/0hEeyPzH96jWbFa53TqJD20LO81O6TS1odOTR9NEOnuIhFhauNMU/x/2ZAyjncLeWKkxIgHMi0auVoaieuEpCtgsIb/pxaNUHsKuw== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM7PR03MB6450.eurprd03.prod.outlook.com (2603:10a6:20b:1b2::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4867.7; Wed, 5 Jan 2022 21:56:25 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::19fc:be9f:2c9c:53f5]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::19fc:be9f:2c9c:53f5%9]) with mapi id 15.20.4867.009; Wed, 5 Jan 2022 21:56:25 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Wed, 5 Jan 2022 22:56:05 +0100 Message-ID: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: X-TMN: [+n1kKGzmnHkjA1R7206b0In7jx+oSPiv] X-ClientProxiedBy: AM0PR02CA0183.eurprd02.prod.outlook.com (2603:10a6:20b:28e::20) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20220105215610.813119-4-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b8b09b64-df38-40c6-6746-08d9d09637bf X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiR3EehW4kxQzdNcP2D/mG1JIqKRrfc4iwhEg3GJI/+f35QukJKS3BfzHktOPGh2jIO94CN3UdZO4l9h5SbpgYIqwcDf/pgpdR0ZjUY3vdcpBC8REHuJOJQGT3lWD6a8ppvrd8qBnudSqTTLe3DOId6iP2Tr8KmLamjuci2+JIWsBKLNbCss+k4q3Hwz/23ZSTUf+0VdEYrasZoNUi0ZQ9O5qSZx8actjEwadTnuT6GYZcE2FJVtrEHCL+qWRLaVlvgKXFAPqIc8LRqrLwtPv1NCtwGoZ9NZ+R27czWj5y3Jub09UN4YqeVxgk2ld5yRp8kldjy4gmLcwo/zFJtP3qA35MDu0QEwq8gC1oyh2U/tJmbju7veBYickJ9OJ/T8Eo/tG22vmObEHenulj5L/HsOHmw/eir0r6um6M2Q5ioFgXYLyA/74amGYVWIGOwiY3Gd4Sh70I+eNWO77RuLcXmBnBVRzmfaRJmLfGdUsFaCGdbAqzvWYSQl1wH0kFOlLNV4c3UmAIx1if3383u82cTJfon40jrpH9UT6MBnKeaHVU2GFUkHUth+hudcWou4JMc6qBdxaWpW6UTvhEV6HmIs8by4km80+2SYbeyo4Lg0+wTiyp0gSY+UH6/rKWIDTkXwnBBZObXzk7xXftbpaCWoiAIYMxPZ5GwbOZ8O7rMKQYtHYG4QU/eDzUmGVwQugOzigea9/KFLJd8g6pCuYNhHgEGtekte1F8azOpDmDgLBt0wtvKqGluJaCGLQ5iRcOk= X-MS-TrafficTypeDiagnostic: AM7PR03MB6450:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: dsVmgF2Y2/8IULzwfmjAS/p0MvfsRk0dRjfRIdAhlB9mTGAc1cl1Sdn5ebnE7KOPMr4ILbBgT3pDWfQ0kC5dr2WHfaB893Q2cywnJn1a4QMCpqWWuI7+ZWs9jpaLO9RQ2I/gkC1Pj50eVGcJqOYbN4A6EfYksQ+5XsKOSExf3AC5roybotI9WB8Sgqj360yQwCNZfbwkRs1Fjgaf6ndKYwMkX63nEIpxfdqn/BhS1L0OtoR0/ntM76i+ZevhONAeuc72g4wQ2qCJ/8d/pjcOUnkgujhjzIuu6yAh17zreUYlwxzTjOVl6GoauGtcmriZ9Aco/LtSSWkxGnMXGWZyO2CVC/GuiWxDvlKt/CQ7TMgq83nKGIh+jaoS9FL65GXl0HtBkaDpnx/W1JIUvdxOC+1EF/uI3UMIWaOphaXoPH+1O+lBlFtRjVJAs7t72zxO8+GkN2R2Ssz2NTHJQDImZ4pp6hUxHOyYLiSq/xXbTJjPkBtlMyGadzGCzhuMTLK51wKQRRGHczVSu1z4XkVaa8cW9mibJus8GR6o61PlR5jqpO1fJEKNNoWE39CeV6uKajywXVlVkwpn4KEBhnnfqQ== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: /qhvSOws+Wrn47s0op+S2UpM90VWzqana3JA5ACKL6rfKRuNOxmKVDCVEiq2+7Jn2QK2131xHYbcw/UKYif8/yvVMVxQgQUR+d8OADIZz70cQL0P2Lf/ZtQnKeGnbd8xcs+Q7LX5OWjirlC+VW8/xdRvU4HrCPX35GVHH56L3y/AcdlxSPs2tSvnb2yC9tKqEbge0hUY0YiQlAOFVwkcEZgkedf59gUJUDybHePPQWxuO6qiI1SoeVwr/BTo5vjKUccgrzV4hjA9d5sUSn98r/CWy+3III3VKQ9bwLMMOTp4hqWLPtiSsa4bzUevCW2hTXUcl50rOxqi8QIBXiG1JtDmBm/F/9L3npnn73rH+LpRGpX1qRg7wzXdb8HihUuo6S996PzNNJ2XhiuSDSt5jeO9wICecKZotf+nMCbY/09J2onkGsF1wmoHeF4kMuZ8MsEF9Z4kiUtvuTVSd+sVY4FX+fF9LgCY2yBp6acqLodF0/DwjB7lj0of9AXb+xniSIEY76IxipK5fXAnwDgDOw8vOMgxa1/09FtM++5SWGkxy6/WglktNfMTebTm5RGCsMxYSyQmv7l6XYFdiYS+7R0lASuiGsuSVZxc1wQEkTHjGd4nDrlR5hQ691qiGBcp8mQvAhlz/3stHt9amrqwtPIPrOrIi73MBYPqDOFNfn7J9bgqX2THZRLkQNSWSVZ+zw9W5Uhsz9y+Y/nMgN6h2cnrXlMh+P4TE//Ky2VfNrjTlfNsAsiIp/8tDsvlYohxEVQ5AeNzKjq7/o1t6dTtFPW1wp4E7ZNGppXJthr6jnovJEbbPSqznih+WrDJjaVWDUX6pnUIfF+bOv7kmx+uXUhcsjM6QZpcH0uJ3MZTTh4UgDwLrP2voAWKvpzIMF4bec3RAUVN9UWfvVYDq2wNoF9zK/oFYNg1nLF8ctE+ConSd/HV6WiotEjR0OJZZ5YJQW1a1nTjIvXY+TMQCyEXsg== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b8b09b64-df38-40c6-6746-08d9d09637bf X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2022 21:56:25.0316 (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: AM7PR03MB6450 Subject: [FFmpeg-devel] [PATCH 05/10] avcodec/mpeg4video: Skip unneeded element when parsing picture header 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: iTl2LmDAWEqe Namely, skip some elements that are only useful for a decoder when calling ff_mpeg4_decode_picture_header() from the MPEG-4 parser. In particular, this ensures that the VLCs need no longer be initialized by the parser. Signed-off-by: Andreas Rheinhardt --- libavcodec/h263dec.c | 4 ++-- libavcodec/mpeg4video.h | 3 ++- libavcodec/mpeg4video_parser.c | 4 ++-- libavcodec/mpeg4videodec.c | 18 +++++++++++++++--- 4 files changed, 21 insertions(+), 8 deletions(-) diff --git a/libavcodec/h263dec.c b/libavcodec/h263dec.c index 2682a7f43a..11e80cb9e9 100644 --- a/libavcodec/h263dec.c +++ b/libavcodec/h263dec.c @@ -507,9 +507,9 @@ retry: GetBitContext gb; if (init_get_bits8(&gb, s->avctx->extradata, s->avctx->extradata_size) >= 0 ) - ff_mpeg4_decode_picture_header(avctx->priv_data, &gb, 1); + ff_mpeg4_decode_picture_header(avctx->priv_data, &gb, 1, 0); } - ret = ff_mpeg4_decode_picture_header(avctx->priv_data, &s->gb, 0); + ret = ff_mpeg4_decode_picture_header(avctx->priv_data, &s->gb, 0, 0); } else if (CONFIG_H263I_DECODER && s->codec_id == AV_CODEC_ID_H263I) { ret = ff_intel_h263_decode_picture_header(s); } else if (CONFIG_FLV_DECODER && s->h263_flv) { diff --git a/libavcodec/mpeg4video.h b/libavcodec/mpeg4video.h index 3db6f85153..ee8eea7121 100644 --- a/libavcodec/mpeg4video.h +++ b/libavcodec/mpeg4video.h @@ -160,7 +160,8 @@ void ff_mpeg4_pred_ac(MpegEncContext *s, int16_t *block, int n, void ff_set_mpeg4_time(MpegEncContext *s); int ff_mpeg4_encode_picture_header(MpegEncContext *s, int picture_number); -int ff_mpeg4_decode_picture_header(Mpeg4DecContext *ctx, GetBitContext *gb, int header); +int ff_mpeg4_decode_picture_header(Mpeg4DecContext *ctx, GetBitContext *gb, + int header, int parse_only); void ff_mpeg4_encode_video_packet_header(MpegEncContext *s); void ff_mpeg4_clean_buffers(MpegEncContext *s); void ff_mpeg4_stuffing(PutBitContext *pbc); diff --git a/libavcodec/mpeg4video_parser.c b/libavcodec/mpeg4video_parser.c index c68c966259..9e96619a12 100644 --- a/libavcodec/mpeg4video_parser.c +++ b/libavcodec/mpeg4video_parser.c @@ -100,13 +100,13 @@ static int mpeg4_decode_header(AVCodecParserContext *s1, AVCodecContext *avctx, if (avctx->extradata_size && pc->first_picture) { init_get_bits(gb, avctx->extradata, avctx->extradata_size * 8); - ret = ff_mpeg4_decode_picture_header(dec_ctx, gb, 1); + ret = ff_mpeg4_decode_picture_header(dec_ctx, gb, 1, 1); if (ret < 0) av_log(avctx, AV_LOG_WARNING, "Failed to parse extradata\n"); } init_get_bits(gb, buf, 8 * buf_size); - ret = ff_mpeg4_decode_picture_header(dec_ctx, gb, 0); + ret = ff_mpeg4_decode_picture_header(dec_ctx, gb, 0, 1); if (s->width && (!avctx->width || !avctx->height || !avctx->coded_width || !avctx->coded_height)) { ret = ff_set_dimensions(avctx, s->width, s->height); diff --git a/libavcodec/mpeg4videodec.c b/libavcodec/mpeg4videodec.c index 34b050db28..ab8d2e8236 100644 --- a/libavcodec/mpeg4videodec.c +++ b/libavcodec/mpeg4videodec.c @@ -2844,7 +2844,8 @@ int ff_mpeg4_workaround_bugs(AVCodecContext *avctx) return 0; } -static int decode_vop_header(Mpeg4DecContext *ctx, GetBitContext *gb) +static int decode_vop_header(Mpeg4DecContext *ctx, GetBitContext *gb, + int parse_only) { MpegEncContext *s = &ctx->m; int time_incr, time_increment; @@ -3018,6 +3019,12 @@ static int decode_vop_header(Mpeg4DecContext *ctx, GetBitContext *gb) ff_init_scantable(s->idsp.idct_permutation, &s->intra_v_scantable, ff_alternate_vertical_scan); } + /* Skip at this point when only parsing since the remaining + * data is not useful for a parser and requires the + * sprite_trajectory VLC to be initialized. */ + if (parse_only) + goto end; + if (s->pict_type == AV_PICTURE_TYPE_S) { if((ctx->vol_sprite_usage == STATIC_SPRITE || ctx->vol_sprite_usage == GMC_SPRITE)) { @@ -3095,6 +3102,8 @@ static int decode_vop_header(Mpeg4DecContext *ctx, GetBitContext *gb) skip_bits(gb, 2); // ref_select_code } } + +end: /* detect buggy encoders which don't set the low_delay flag * (divx4/xvid/opendivx). Note we cannot detect divx5 without B-frames * easily (although it's buggy too) */ @@ -3214,11 +3223,14 @@ static int decode_studiovisualobject(Mpeg4DecContext *ctx, GetBitContext *gb) * Decode MPEG-4 headers. * * @param header If set the absence of a VOP is not treated as error; otherwise, it is treated as such. + * @param parse_only If set, things only relevant to a decoder may be skipped; + * furthermore, the VLC tables may be uninitialized. * @return <0 if an error occurred * FRAME_SKIPPED if a not coded VOP is found * 0 else */ -int ff_mpeg4_decode_picture_header(Mpeg4DecContext *ctx, GetBitContext *gb, int header) +int ff_mpeg4_decode_picture_header(Mpeg4DecContext *ctx, GetBitContext *gb, + int header, int parse_only) { MpegEncContext *s = &ctx->m; unsigned startcode, v; @@ -3371,7 +3383,7 @@ end: } return decode_studio_vop_header(ctx, gb); } else - return decode_vop_header(ctx, gb); + return decode_vop_header(ctx, gb, parse_only); } av_cold void ff_mpeg4videodec_static_init(void) { From patchwork Wed Jan 5 21:56:06 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 33108 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp1112071iog; Wed, 5 Jan 2022 13:57:41 -0800 (PST) X-Google-Smtp-Source: ABdhPJx2qsunjwvj9gHm52VMdPnvOPjdGq/nTJZNektZSiDWrNuHBaYv+JOssA/OlbG+CzM+/wcH X-Received: by 2002:aa7:c48a:: with SMTP id m10mr54063785edq.374.1641419861156; Wed, 05 Jan 2022 13:57:41 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id gs38si41410ejc.572.2022.01.05.13.57.40; Wed, 05 Jan 2022 13:57:41 -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=@outlook.com header.s=selector1 header.b=X9U0gd2A; 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 EB53B68AF12; Wed, 5 Jan 2022 23:56:44 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-oln040092075100.outbound.protection.outlook.com [40.92.75.100]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id F1CD268AEE5 for ; Wed, 5 Jan 2022 23:56:34 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=H59AKOi4acu1YvwQFujkzSky4xRtrC8S2KxuwF8a+hYZx7Mdx9LBPd1M0XMsQEU4iTesHjS6o5AEPvzzobObfZNfit/vB7ohniNMjCyBaMR4ECZ6R6hQ3y4L6LQ03qnUcXrajbnrHy9ij+A5QAWQDpgT39nB3k3dLIO3qD3DzQNmTL5L+EM8w3HWVIES5uFj592Menld9N3yST9+iMPX3JYC9vphtiYH2KT3NBr3MMXyDHDAEP3xWw5GkgUD3AUwW9rSi7FYcvAlZl1dk2/4yQpxEa2T+ZYH/f+bPLMj/IvmZy5bWzqw4+q7P6ZiCdtrKT18jl4wTn06gT0UjuhMNA== 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=k4W3CQgFeSqpShhUYUje6N4u9PiExJyd1c+yi15KLt4=; b=PJH7b73AwF9u1gIWVX9pSpUBDxLERX4yZhjtvSTEfZ01hJhlBNArNCGxYywpOvEp6FIwDnVf19OUw/1OL2CPvd5Cg2SHgoZYymFXg2AwCWWZaxeWTmKMsGOGlai2WThRt+AlhXEAADLN2pV7BAfY4lDbMcus9IQGk8p0lIkAMqcozRzfBSi0/RagOdUsDWeGpMmxE2kLGFvZhMjQ8YXienkKyZnXaanF5xyoNT3J8MP2Z230djsJmwHwjKUQQbKktm5vV5mV7vNJSp2wLxjXdd1wQjw4Ur4lzAhmjtKBsjivWUe+gmYrmyjQkjJBEmuUOm+OS2vGEienCFqriucg1g== 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=k4W3CQgFeSqpShhUYUje6N4u9PiExJyd1c+yi15KLt4=; b=X9U0gd2A2pS8jqN6exi8RmZVo1bKQ8c8RGibSCgBOlTJs35TgFB1zGUNXwJVHKuIACuoxcyJGu4WhAF5EBLGnUDm4HCvdUIyoXMpJlAD92Pn8dn/KSjPmRj0Fd8KBFYjFZTHzVvqriT7Wu6L87GTQDDLYdArlmKI27NfR+3RpmCRmhtLdbEJSAwkQm5ajPwFcr6POGny2//u5WECTgzFlobXFw+qI7wNI24elWzKvUw9VjIgBLEioBrtGFVpeQLlEQ0kuyAd2Xhy41v2rXGKA4lKxVORZXbeB9Gb9bW8KVblgdmzPt3lO2omEt4Hb008Io3OyO3gTIx2h4pp1Ia6Ww== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM7PR03MB6450.eurprd03.prod.outlook.com (2603:10a6:20b:1b2::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4867.7; Wed, 5 Jan 2022 21:56:26 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::19fc:be9f:2c9c:53f5]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::19fc:be9f:2c9c:53f5%9]) with mapi id 15.20.4867.009; Wed, 5 Jan 2022 21:56:25 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Wed, 5 Jan 2022 22:56:06 +0100 Message-ID: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: X-TMN: [d6I7n9/V/+PYoIL9dnrPoskWPrJLFPWW] X-ClientProxiedBy: AM0PR02CA0183.eurprd02.prod.outlook.com (2603:10a6:20b:28e::20) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20220105215610.813119-5-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: d4475cc0-7266-4089-f8fa-08d9d0963838 X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNWm3GLoeUntTG6KfWWWbWhlMmSfUg059vfeaz3x12NUVnYCKLbZ2ukyylKZwTe34DJ0bVki4XSdtjWgKsNJOI26EtWyPjZA036cYAbAinSIbcrnREqARktIM1eiUPAr274QyeFW8pD3vM3mNeRr+sJHX5sVIR+ryzKOmplSnJ6Nl7NhDDgOTfOMY1aBmDWM0lWojrLa5rsrJzUe4MhkI5jOPJWPb8X+NomV1A7LISDejqvjDk31/uVApMrWbNv/7g0OF7zf3c9iOyuEoVI+a6iyPTW+leFLMS7N+DjYiuCe0UQY3Z5w7mjLYsPPvDD9dcEmQ5P7sAZoPKjr+BR9yogz0OIuy8UtHQYQNg+Oo43WC6LnBuxVbXgWkc67jM5kwqm/mNC28NYvPCjm0waJIO1AmZBBvANbPKzyT1r2K4rrf0c5y5iDkNiETueHFToFO2Js7p2RMlTU//YkWXVSVoQ8v0kIOvOEnddQlDFK+gODXiy7JEOcaUuulkMlz2ZzBT6OJ9wwHONlIY/zoEszjLSmxHePqTp7vkN2OoBMjAP6W7BSI4HYkyqhsw4hrFRKLvbDE+uP6nl0nOEWy7PBuJ7GtR/Wml5iiAsbXQCaQYrevMZZPyK5kjOCth01I7T02fhWMafPURk7vbhlucfHGgJDv0i52ukEzdPMvxW8ywvWq/DOoqkpY6kx/DGDD6u/w60JFCfr5kxbjnR2Ahp50SDTVVtEEycujvw= X-MS-TrafficTypeDiagnostic: AM7PR03MB6450:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: fOUglxwvVpyVfI0mMgKziybvotHby5VWJqb4AH7tv5CKnoSX1IZnBSLamP48QuQFgpFiEl2/pXZBWJGbqhm9laYwDtN2F6kBOXK0KudimnmZGHLl9AwACMHF/rI+G7Jp2S084/7XqMi2bblLUApRH0T4vrNgtr83li0traXLj86NGpbDDZDtetAEKzO9lZwxpNRKErvXC7hb3aaht/GJVrVNLQYKKnhy5kNu/F5ivzFCXK2+EPEeZYyw9zEI2CF+caYt6obT3dcsL3cNI6Pr4Qfk+j9xwe7xsdZZImRXbem9giPvWAj3UnninotWkLSME6SqDjspblRkvyDu1fus/ThSau8dI8isN3ycEEDm4X0DZHapAZS1T+hyabKsb6hgHccYSprNRwu6je7YBDxwLwK0d3I+63yzAZnS7iIDygCIo7e9Ir4XWKhBcFM7B45VdFhvV/autZC4GVpEZtgiaQSzQ8r0B6vgZELI+QMS3f02tW+E7lp5ILUxgaf+T8J/mbxsYW0n1Ho2H4JuNNXsD45Ei8Sdt4DE9LGBiosQWUBBdwpabWltmrtJuYt64h96sAnwdSMnWS34hElB+Gk5qg== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: vLc83ZFjRVXPN3hWTFRSv/hwXh3B3I69WgjHgpyRCwRkOz51BVwiprmHYcCXSdhW9I1Vs8kjOZIUWhBTv22L66ilxOwT9okLLTaFfVec9EysutJybPPXl2vZ8wYxj9zIw+WdkrDfo0ShLsJ2tDEzYFpB/eRmGek8mkdVOFHHnB3aD0Vw4Yoaqi1aKj4MU4yZx5T6VSNE+GFcADPWsqqgdyoOsTVFJ155au0qawS1D7AlFXrQakeNQltWvylPiKpRB7m3p5VuvI3VxtjYQqLQzT09CwQM71qaTxXuG3EjQLefQ7hf3EIZ7vVP8e8mELX0Dsof+23WtwQLN+fp2TBmretycHT7zzlA2R5wsWajfdLF44hMJscLNdgqYJeo1EqmUw3LmNr9d6oFWs68rzDy1gtzojjnWAKjPVd1oBmGTBcGNfpWK8xmOq2pPA+puNv753sygLgClVsaGrHoOSENPNsNMsahlac5kEElW6AWNC6zcOzl6wjr9BAPOlrU5q3pWBEEDJWnrBgpl8VRHNmNr1aqJlI1U6amkLvWqQmqDvzZu3WYVIBGNBE/QExUctKnPeHFr/SNKQKWSbzQACiemLKG3jqhs4vR+UR3ke5qr9paKHRYHgP7iG3daJf7nw/qZDbnqaQ9cAwKELcxWOO6IqOnPAFCZEbfEcNN29QtJTUTbw/W3Ez+s7IpKhHaDTy9YC+uXj6D7cCRgxHc/WsyECfSOWLNCUIb4yMhJlPRnWqmTvpoDKt1kb6DShOQCarzlfbR/aifruyTAi5tP1anK7nnW3p1qauwMOW0u7IgPlDnuiO4YQQLEoOSXNlgN2dE5KMCIda1lS6r5sfdsrGtOY6zrHWHBle8Ab12/lsXZO9ymEzyB5oHOBpbF8pc0MHzMdGUX0Qhx+qVV1kGe9HP2fCzigET4fj/a38kpz+aKfEE/CtBx6fjHXY1c+J7jE54Z7iih36y47a7SHMw484zqg== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d4475cc0-7266-4089-f8fa-08d9d0963838 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2022 21:56:25.8440 (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: AM7PR03MB6450 Subject: [FFmpeg-devel] [PATCH 06/10] avcodec/mpeg4videodec: Fix data race when initializing VLCs 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: kmUCPmyufV5T Both the MPEG-4 parser as well as the decoder initialized several VLCs. There is a "static int done = 0;" in order to guard against initializing these multiple times, but this does not work when several threads try to initialize these VLCs concurrently, which can happen when initializing several parsers at the same time (they don't use the global lock that is used for codecs without the FF_CODEC_CAP_INIT_THREADSAFE cap; actually, they don't use any lock at all). Since ff_mpeg4_decode_picture_header() now aborts early when called from the parser, it no longer needs to have these VLCs initialized at all. This commit therefore does exactly this. Signed-off-by: Andreas Rheinhardt --- libavcodec/mpeg4video.h | 1 - libavcodec/mpeg4video_parser.c | 2 -- libavcodec/mpeg4videodec.c | 50 ++++++++++++++-------------------- 3 files changed, 21 insertions(+), 32 deletions(-) diff --git a/libavcodec/mpeg4video.h b/libavcodec/mpeg4video.h index ee8eea7121..cec8b30c32 100644 --- a/libavcodec/mpeg4video.h +++ b/libavcodec/mpeg4video.h @@ -173,7 +173,6 @@ int ff_mpeg4_get_video_packet_prefix_length(MpegEncContext *s); int ff_mpeg4_decode_video_packet_header(Mpeg4DecContext *ctx); int ff_mpeg4_decode_studio_slice_header(Mpeg4DecContext *ctx); void ff_mpeg4_init_direct_mv(MpegEncContext *s); -void ff_mpeg4videodec_static_init(void); int ff_mpeg4_workaround_bugs(AVCodecContext *avctx); int ff_mpeg4_frame_end(AVCodecContext *avctx, const uint8_t *buf, int buf_size); diff --git a/libavcodec/mpeg4video_parser.c b/libavcodec/mpeg4video_parser.c index 9e96619a12..1f89bae490 100644 --- a/libavcodec/mpeg4video_parser.c +++ b/libavcodec/mpeg4video_parser.c @@ -129,8 +129,6 @@ static av_cold int mpeg4video_parse_init(AVCodecParserContext *s) { struct Mp4vParseContext *pc = s->priv_data; - ff_mpeg4videodec_static_init(); - pc->first_picture = 1; pc->dec_ctx.m.quant_precision = 5; pc->dec_ctx.m.slice_context_count = 1; diff --git a/libavcodec/mpeg4videodec.c b/libavcodec/mpeg4videodec.c index ab8d2e8236..325593a795 100644 --- a/libavcodec/mpeg4videodec.c +++ b/libavcodec/mpeg4videodec.c @@ -3386,34 +3386,6 @@ end: return decode_vop_header(ctx, gb, parse_only); } -av_cold void ff_mpeg4videodec_static_init(void) { - static int done = 0; - - if (!done) { - static uint8_t mpeg4_rvlc_rl_tables[2][2][2 * MAX_RUN + MAX_LEVEL + 3]; - - ff_mpeg4_init_rl_intra(); - ff_rl_init(&ff_rvlc_rl_inter, mpeg4_rvlc_rl_tables[0]); - ff_rl_init(&ff_rvlc_rl_intra, mpeg4_rvlc_rl_tables[1]); - INIT_FIRST_VLC_RL(ff_mpeg4_rl_intra, 554); - INIT_VLC_RL(ff_rvlc_rl_inter, 1072); - INIT_FIRST_VLC_RL(ff_rvlc_rl_intra, 1072); - INIT_VLC_STATIC(&dc_lum, DC_VLC_BITS, 10 /* 13 */, - &ff_mpeg4_DCtab_lum[0][1], 2, 1, - &ff_mpeg4_DCtab_lum[0][0], 2, 1, 512); - INIT_VLC_STATIC(&dc_chrom, DC_VLC_BITS, 10 /* 13 */, - &ff_mpeg4_DCtab_chrom[0][1], 2, 1, - &ff_mpeg4_DCtab_chrom[0][0], 2, 1, 512); - INIT_VLC_STATIC_FROM_LENGTHS(&sprite_trajectory, SPRITE_TRAJ_VLC_BITS, 15, - ff_sprite_trajectory_lens, 1, - NULL, 0, 0, 0, 0, 128); - INIT_VLC_STATIC(&mb_type_b_vlc, MB_TYPE_B_VLC_BITS, 4, - &ff_mb_type_b_tab[0][1], 2, 1, - &ff_mb_type_b_tab[0][0], 2, 1, 16); - done = 1; - } -} - int ff_mpeg4_frame_end(AVCodecContext *avctx, const uint8_t *buf, int buf_size) { Mpeg4DecContext *ctx = avctx->priv_data; @@ -3525,6 +3497,8 @@ static int mpeg4_update_thread_context_for_user(AVCodecContext *dst, static av_cold void mpeg4_init_static(void) { + static uint8_t mpeg4_rvlc_rl_tables[2][2][2 * MAX_RUN + MAX_LEVEL + 3]; + INIT_VLC_STATIC_FROM_LENGTHS(&studio_luma_dc, STUDIO_INTRA_BITS, 19, &ff_mpeg4_studio_dc_luma[0][1], 2, &ff_mpeg4_studio_dc_luma[0][0], 2, 1, @@ -3547,7 +3521,25 @@ static av_cold void mpeg4_init_static(void) 0, INIT_VLC_STATIC_OVERLONG, NULL); offset += studio_intra_tab[i].table_size; } - ff_mpeg4videodec_static_init(); + + ff_mpeg4_init_rl_intra(); + ff_rl_init(&ff_rvlc_rl_inter, mpeg4_rvlc_rl_tables[0]); + ff_rl_init(&ff_rvlc_rl_intra, mpeg4_rvlc_rl_tables[1]); + INIT_FIRST_VLC_RL(ff_mpeg4_rl_intra, 554); + INIT_VLC_RL(ff_rvlc_rl_inter, 1072); + INIT_FIRST_VLC_RL(ff_rvlc_rl_intra, 1072); + INIT_VLC_STATIC(&dc_lum, DC_VLC_BITS, 10 /* 13 */, + &ff_mpeg4_DCtab_lum[0][1], 2, 1, + &ff_mpeg4_DCtab_lum[0][0], 2, 1, 512); + INIT_VLC_STATIC(&dc_chrom, DC_VLC_BITS, 10 /* 13 */, + &ff_mpeg4_DCtab_chrom[0][1], 2, 1, + &ff_mpeg4_DCtab_chrom[0][0], 2, 1, 512); + INIT_VLC_STATIC_FROM_LENGTHS(&sprite_trajectory, SPRITE_TRAJ_VLC_BITS, 15, + ff_sprite_trajectory_lens, 1, + NULL, 0, 0, 0, 0, 128); + INIT_VLC_STATIC(&mb_type_b_vlc, MB_TYPE_B_VLC_BITS, 4, + &ff_mb_type_b_tab[0][1], 2, 1, + &ff_mb_type_b_tab[0][0], 2, 1, 16); } static av_cold int decode_init(AVCodecContext *avctx) From patchwork Wed Jan 5 21:56:07 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 33104 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp1111735iog; Wed, 5 Jan 2022 13:57:03 -0800 (PST) X-Google-Smtp-Source: ABdhPJwFap1sVh4dEZ5MHJ3UR+miC0Ah6xpS00fTCme3S3a2buME6XUYlCnMR6EkHmzMZp/97WLs X-Received: by 2002:a17:906:4788:: with SMTP id cw8mr46889516ejc.232.1641419823696; Wed, 05 Jan 2022 13:57:03 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id f23si77435edv.198.2022.01.05.13.57.03; Wed, 05 Jan 2022 13:57:03 -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=@outlook.com header.s=selector1 header.b=sG4A5Oz+; 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 E6BFF68AEC1; Wed, 5 Jan 2022 23:56:40 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-oln040092075019.outbound.protection.outlook.com [40.92.75.19]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id AE54768AE25 for ; Wed, 5 Jan 2022 23:56:38 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gDalflmBoWWmcNnnNOaGRyw0TlntqJnjl1CZBpEqhOPfimmOmstS+VBOJfkC7AavnZU9CczKE/Fhf6Nv+hzEpyIH+CdhLxBlh7x/MhUsyq6DZLumABBt8gKwadxJu3OXx6whMw0WwROvU8islJQQvC9MaCQazEdLVEfCqiIugoa+m0f+saCzPbGslLj2cru7kF61iIwttawqewzh3WvxrK4VDY9qcISBMoC0HF8Gwcv/EYzh48odcL14hfPBF6s5WQynX+stphzo2HABuB6abAdLwvJgs+6IEBcOUJipqosSemj2GGZdWfqt50n3/ENiEms/B2x2i9gsHv/s/OY1gQ== 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=FuzA62OY8He9ouPDybaXgw1mS+Biyd+VyZrj2A/t7aM=; b=eJTIlpgt8AO0xnzEjUoiU0YUL+kx8ZvaQTMbMz3h2pWepAU0AfjaKYEkI52+FQDvErYfkmgw35g7+VA9XtOX8ioumjr354cfXRp/hIuzt+U5jS6AKFtf+GF5n69In9qRdqhH/1jtz2Ohb4sTW/PFubWwbj1+cEyHC75aIZvPWYW2c0k9MHkCFxWh5drvZcpPAChkMle1OMjFyGGIAEgl7xRciival72Y5wkpg/+0F7PlAXPhZqAZMxcaC7PzJnqM5QaSllAKn66Xjz2hsLK85L9QgjKeb1AxAbPGVuo82zECBFofHp7lgJ1Ub4Ey2f0b9xYgC1cqBUorBbXgQAqazw== 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=FuzA62OY8He9ouPDybaXgw1mS+Biyd+VyZrj2A/t7aM=; b=sG4A5Oz+l9fHcZdRHeHT1rDICwPjyDrUIfViIfy2MObXwNQyykznMWJdsgrr82A+T1nECL6ZoAcCmCK9CT7aTkV4ktN+G82xkSU0Fk9zGQAiHWa0Z/0vy/vHk5aJQAkq5zHnJqKlKwn/6MvgC4k9tsOdKqtAQdugshTivnE++H+7PEudolMX2AB4JPsmGxmUsZCAU9vDTQQxrD1Zc+/E1tglBV4EaBY8jpqihvXW82kD9hgTDDyAyofZNLrkDv2sOWRZzFW9mFVLjW4igki8dneCpPTXU06j7BHjbcw5tcrcLj8jsdUiuLTtyiP8i+qBmIBj869buxZ1uDJwZEZFYg== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM7PR03MB6450.eurprd03.prod.outlook.com (2603:10a6:20b:1b2::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4867.7; Wed, 5 Jan 2022 21:56:26 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::19fc:be9f:2c9c:53f5]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::19fc:be9f:2c9c:53f5%9]) with mapi id 15.20.4867.009; Wed, 5 Jan 2022 21:56:26 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Wed, 5 Jan 2022 22:56:07 +0100 Message-ID: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: X-TMN: [t9aQQd6M3TxcWa+FtqEQsz4/AavxpLrT] X-ClientProxiedBy: AM0PR02CA0183.eurprd02.prod.outlook.com (2603:10a6:20b:28e::20) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20220105215610.813119-6-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4c55bde6-448a-4c46-6cc3-08d9d09638c3 X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiR3EehW4kxQzdNcP2D/mG1JbcgRddooVCvwqRIq3w3UD3ko9lYT+VIjzAThYMwYGYAMaDMFBAeB+OjgxkE8EIdEP7iK/Pn3hUkgy0SrH4fy09vOOhKLPNrQmwO0bNG+c6TnGFu10jTpnFMJFgqJtC2E1/ib+R7geNQtc8ZQcdkM/zNA+OND5Ez8J5RdvlNmO4lNSsivRZMJk5S74jt5MzP8ZQ1XxhDd21Yz97eNqSVu00ZmkKBP6+vNILPn/OHGRKygdxryYdepVC5KQOiPRPDiq4KUMQHQA8d6NroL7htr3U59bgObK0k7bCL+6AwDMxVUqIEG1nGtA4nAhzlQc3X6BVpbsNYuLH1kaKZQLkyHTW8Vmnk/bJqEVpRndsIiLI+FNxfJu4prBeOJVlEL2iA7HoJuKXL8NlTI2PeRu4KctAfo38uU0DrD0YlFGn83QIO3sgGmhMuSb0mlG8939+KuswnCCl/G3bOET5GqbFHlySBI9dsmDin1RhRnEDx9w7F12QUfeAVatoiUMx1X3N1iXgr52DAIbj+tkbV1lHaBPObaY5HMdZDqnS3BIgeL5q2UWgzGZLkWNTL4yGQgkeTaiDfcF8c8UPgWno00aCkr77lG5TLg0IqcYzPdVJK+8yMOCZ2exGtK6QcFY+Wi9U8p+d7sx1QODGvdzVRoA9pTGf82BD7sxnGhBi4HsGBnyAl3R/P21fXUyuWSi8IaNLMlQtmMuL+10e/Tu3YblFr9HsGO7XE1Pn4cJTlC57B0T6M= X-MS-TrafficTypeDiagnostic: AM7PR03MB6450:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: n1TpLIvS4sBmgYUasL4Rlfk/hDDpV+6bPGBE4EzkSshh9TEHmERts+jxoFce2WEo1VccNrXE0fc9zIWX5YwbCQxj5ooeA4uazRu/q56NRBbkthIo7n+fjsbdWakTVrifRabELOoQTtm/Z3dmunKlGVNfv535Kwl9hehbO56E1ETuQypz/r7Fa6LOslbScTjgpxl4Pd9qoNRmvLauD0zJQDOfl6rt37xNcY4H1YJVZv3YKJ30gfCeTJ6cvbKJzP/dW77OTE39Va8oLYbmwBjdZi2lYKqgpzzJ8tDDC93mHqDAhHiw/QCN2FiQ5qgE2H52cA+I11wYi9Q6sOHt0YeSQ/JTtEXU9viLCwvTawMzhVU5Gkuu1LfCXzc4BfFQeaKwxWP9Dn6G+xiBpdKsGcKMsRqYnptPeyJxGdhAYnIBOGIHCpft8OwuTEFy2G26mMf0vvOmK2O++RcdJ6HCzR9Q3fubXVDQbHVyaM09AnNOTpXNdtHcZDfjrP+RuZ6a2Pflirklx+D5PnR9OyoW/xghX+NC03M4aSs+COjMu+bFaaHalmJJfdfhWDjqtqbDveDrNFX/0xJkWr28MZSIuHSTlw== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: NeyXeJWcZiOOt/sPGreiLj+8VRL4R9ZThtMuXstwVC4FEbpss1k1K8l4JYhlOQUqmTZ7pa7fbqx4Je29mNjGeEPeGoqZpQhftbLDQT2U1k54hHCHeqCRNJMF/5aKk7MfgOSNXDf6wWC4+UhUzQIBdEyVGbBxQaKMLYqjOh7qGne7htlDhWKuTi6/NPGzY5zlmuf35ltjqRPm8MJtsepGNeeQTNcA85heVsAcfAKpa0u8CcWkSXhpgTkj/8U50atfcPytGuvrEAUHGx8U24U8FdNUaAgXlV7FfCc69zDZBFzGOLSAXnTq55ka4MzIRcHdvPwjni9ZLhczJ8VWjxHFhBRMk+lSVNNVy/SabeBrUNowwJ3R4UdQH1k1irym2MPMQX6WhSiVeG2C+CNgecEQg+YUSopfBgsq7qPaQEpoDhTzwRWvRPicOqQdW5JDpN6oh3vv9NEI+FyWALkgVrYA0VdaGhwlcfQqOsJTvegjgprZyMXPUIgR2L4t4x5XA4HKzLyetXbd9fqFY22uLA1szMs2mbVeLZKrXwCk4oeX3uWognkX1S/w1X9I3+NSyZ9sH6jStre5IovoFvQC4fkUGlMOtIVFGYfRHoCEngOOa4Bd2ZEi+eoNqWEduG37Q2FT9u8iEeFw91DYrcqICuutipGpKQ10AqXHFhy1iZoQdeC4e7lMShQBOUhvqJ4cS7YFhYUFnPOzcBvCbkFhVEiB4ZOvdq54bGP49oy3rDQnnsbxnwX2RaqA+xkbM6iBGQelWwUVKNbkIEGXhG4VXlJ73VdNvJNBRnvqRPmLyv0wC9L6HTJBoXT+fxE1S5Lbl39nWsGVXpt1cFHaO4Q2UviDZs6v+CZU/brjbjC+j49L/zrFhiGgoI21lZ76qw4hFBf51xOS101zyWTehAWMk37Vsx2UnZGiWQkXCoQkfvBY2QrtfsEqKGz5bGMgb40U2HR6quJ9mywPgYaJ7PtxxRws+A== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4c55bde6-448a-4c46-6cc3-08d9d09638c3 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2022 21:56:26.7826 (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: AM7PR03MB6450 Subject: [FFmpeg-devel] [PATCH 07/10] avcodec/rl: Don't pretend ff_rl_init() initializes a RLTable twice 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: oy3BAox16BEi It can't any longer, because all users of ff_rl_init() are now behind ff_thread_once() or the global codec lock. Therefore the check for whether the RLTable is already initialized can be removed; as can the stack buffers that existed to make sure that nothing is ever set to a value different from its final value. Similarly, it is not necessary to check whether the VLCs associated with the RLTable are already initialized (they aren't). Signed-off-by: Andreas Rheinhardt --- libavcodec/rl.c | 20 ++++++-------------- libavcodec/rl.h | 9 +++------ 2 files changed, 9 insertions(+), 20 deletions(-) diff --git a/libavcodec/rl.c b/libavcodec/rl.c index fab96d63a1..4ce003ccf4 100644 --- a/libavcodec/rl.c +++ b/libavcodec/rl.c @@ -27,16 +27,13 @@ av_cold void ff_rl_init(RLTable *rl, uint8_t static_store[2][2 * MAX_RUN + MAX_LEVEL + 3]) { - int8_t max_level[MAX_RUN + 1], max_run[MAX_LEVEL + 1]; - uint8_t index_run[MAX_RUN + 1]; int last, run, level, start, end, i; - /* If rl->max_level[0] is set, this RLTable has already been initialized */ - if (rl->max_level[0]) - return; - /* compute max_level[], max_run[] and index_run[] */ for (last = 0; last < 2; last++) { + int8_t *max_level = static_store[last]; + int8_t *max_run = static_store[last] + MAX_RUN + 1; + uint8_t *index_run = static_store[last] + MAX_RUN + 1 + MAX_LEVEL + 1; if (last == 0) { start = 0; end = rl->last; @@ -45,8 +42,6 @@ av_cold void ff_rl_init(RLTable *rl, end = rl->n; } - memset(max_level, 0, MAX_RUN + 1); - memset(max_run, 0, MAX_LEVEL + 1); memset(index_run, rl->n, MAX_RUN + 1); for (i = start; i < end; i++) { run = rl->table_run[i]; @@ -58,12 +53,9 @@ av_cold void ff_rl_init(RLTable *rl, if (run > max_run[level]) max_run[level] = run; } - rl->max_level[last] = static_store[last]; - memcpy(rl->max_level[last], max_level, MAX_RUN + 1); - rl->max_run[last] = static_store[last] + MAX_RUN + 1; - memcpy(rl->max_run[last], max_run, MAX_LEVEL + 1); - rl->index_run[last] = static_store[last] + MAX_RUN + MAX_LEVEL + 2; - memcpy(rl->index_run[last], index_run, MAX_RUN + 1); + rl->max_level[last] = max_level; + rl->max_run[last] = max_run; + rl->index_run[last] = index_run; } } diff --git a/libavcodec/rl.h b/libavcodec/rl.h index 5aae698e31..07e3da5003 100644 --- a/libavcodec/rl.h +++ b/libavcodec/rl.h @@ -72,15 +72,12 @@ void ff_rl_init_vlc(RLTable *rl, unsigned static_size); #define INIT_VLC_RL(rl, static_size)\ {\ - int q;\ static RL_VLC_ELEM rl_vlc_table[32][static_size];\ \ - if(!rl.rl_vlc[0]){\ - for(q=0; q<32; q++)\ - rl.rl_vlc[q]= rl_vlc_table[q];\ + for (int q = 0; q < 32; q++) \ + rl.rl_vlc[q] = rl_vlc_table[q]; \ \ - ff_rl_init_vlc(&rl, static_size);\ - }\ + ff_rl_init_vlc(&rl, static_size); \ } #define INIT_FIRST_VLC_RL(rl, static_size) \ From patchwork Wed Jan 5 21:56:08 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 33105 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp1111837iog; Wed, 5 Jan 2022 13:57:12 -0800 (PST) X-Google-Smtp-Source: ABdhPJwSGP42XqMS1tczTLvunWQJeq9vxMsY7psuiaFbGV3VhRyXTHLTwuhbkFfkMunSDz+omqGs X-Received: by 2002:a17:906:76ce:: with SMTP id q14mr45292074ejn.136.1641419832405; Wed, 05 Jan 2022 13:57:12 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id s21si69318edy.337.2022.01.05.13.57.12; Wed, 05 Jan 2022 13:57:12 -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=@outlook.com header.s=selector1 header.b=dhGg3BGo; 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 E469468AEF6; Wed, 5 Jan 2022 23:56:41 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-oln040092075019.outbound.protection.outlook.com [40.92.75.19]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id CB15C68AE3E for ; Wed, 5 Jan 2022 23:56:38 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MrKm2Vty5iO2b8eMimEiXQAHjDjLnP1krItanLTYLa6lRp5jyEqT3/nvzUc5E/AjTKG6YC10HL8zsDbHSw6Pe1gcS2+XFs2LfW22D6aqg4evyGZ4FvF4e/wKoG5+5EUfJ8bFWTdRThfQ5o/wizuXtmqHo57sQ4sed4ONcJJX/zTqrj7//d6v8NnDvAwmWy+N8pAOnXkA5ZC4/0VNQOpdNLW6MJlYFfGk5GbFBEgseSCXiwY47AJImo71B+IvRKHb3szrnLvTFOUoFiE4ZhhMOsmY8baQIBDQlb86Lve9SVN+0subrU1IHyCxtzcsCdhhwSxDpFb7c8o3P6gG/EssAg== 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=Cxx+ngHcjzULKChVu5YC3b1yvyzpYhNSGT3k00vBjJc=; b=P/zSk+Po9a4EVcUNfnSOo66hRH+nDKo+qGSkg8eBxqo7ovDbK8HkGiKQ9qALvkoRUgA7gMBfx9QyZHMfAz6dCxPWN8IXEfbctyOjDauY4OhTP02iNQwqXroYuVZHCojJI1N87BHooel9AL/yeQx5c+CYqEjq+ZMTcE79j8x+V0JK8JAEvKzsunHLUODPweuZsfTCZUgbuG/Zto4ycobwroNDbHt9fnu79oxCUNKpQ5vMoybjz7I2xJY9Q1w21X+RfNxH369ZNgoTP4nETRqJ2eSNs7KhXYs0sRF2LCaI7Tir0os+vSG9BV/38vSt+caNUHtznzJdSrRqwL9xGWyNXg== 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=Cxx+ngHcjzULKChVu5YC3b1yvyzpYhNSGT3k00vBjJc=; b=dhGg3BGogY1HNp4xJgewf7FhUOQj7Y8Uo+9TIXHn4qcZL7h8ZCnpKirmyIgWgJgA7piqZLdMBX7c8VjDcmZXpMbqiMrGnOWVN/bG4wTpQ4NbwXfFh1UbcWdzLbkIWFQZwaJMIFXl5USQ7IgijBMQu7Gb2FbD3vCNyzcOSCrWuYvcrzmW5ajNdgtWc57b3NKVigE6hmfTBuFa4seS9X1hmcUA6dbeFTwfYmk3bTPy+J1Djmctks5E1rnz+wLQqnbsm65bhuLyAmco8AAgxg/8KDwih/sNGW4WfNps2DCCA4SMDhAe+r7aYd1m5CbudcpbvpGsW7H5vvJX+jYzFHv41A== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM7PR03MB6450.eurprd03.prod.outlook.com (2603:10a6:20b:1b2::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4867.7; Wed, 5 Jan 2022 21:56:28 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::19fc:be9f:2c9c:53f5]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::19fc:be9f:2c9c:53f5%9]) with mapi id 15.20.4867.009; Wed, 5 Jan 2022 21:56:28 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Wed, 5 Jan 2022 22:56:08 +0100 Message-ID: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: X-TMN: [fgSudTkdN8kr11BwfckBpwXtmgnHW04/] X-ClientProxiedBy: AM0PR02CA0183.eurprd02.prod.outlook.com (2603:10a6:20b:28e::20) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20220105215610.813119-7-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b2cca0a5-d99b-42b2-4dee-08d9d0963982 X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiR3EehW4kxQzdNcP2D/mG1Jng1cyjo8kmHuiH96ZYGatiLDFz4oxeW6l4U09lfLe2hQ6UX3gwhS26i2clsFfJlLJiA3ggpMMSpN9d6dSx+EMia4agxpTb1PAqHKlpsXNxKYVH9vtOZ0DzxhD+TJwflBJGy3ew/j9af9BLFEjCpkQCv0LEuAaDgS/uJvXou0Ej7w6uZE3Ekf7tIvfR5XkNTUspbfWpv5VFfc4Zi9AKvwiMatByCLZriWVIqfKkUNiVlpVmTIuINeiZEij49XNsjOoTxbmmjrktU2qI96os+kpAv+NXjjeh19CNmQfHFqitPtk/lj45ICx1ImbU68U3SRyg9NF7xcLsm6uxkZ4l0vMvsIK+N7Fn0i2OjCyZJCzr4/I7D59E7Cxh68qeYef3UL7dZay5yzOJ0cpFVTllhH0Gbllv4rmU7k8sfbyICTTed7vJKqSlY2jVnfAU+jWPZaMnqg8c8PIVuPDuuO+FQLd0dkRWZoHWl5aKDz8kXb1UzxENfUXF/7+ylPLGnxY6HHGuXWoVQdFkpU7WHhXbChcgTHrTyh7HZrSEvNp9a/q02kfVVJPsKf21kagOCd0LN6hpToVm0XyC1oVDg5/d/IyBSWj71/mzDVNFQIXCCUD0W1vm9XOoLGY9a6MWwvMWcDIVCFB+zVoMd/nLObk9VI5ZIh+sPqD/njo1IG2drnsYKBnzkUv/JfhlRp5yR7PE4uUrnmAIm/3VPc+M9SgYKE5Sl/ZeETLFvqqaA+n7qlTJI= X-MS-TrafficTypeDiagnostic: AM7PR03MB6450:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: xSDdY6zDmfwpbDrKhKhCsiAP+wPg/eZf890Wb2UUL4BduE+o9RZpSe9mbq130L7SYZu9AzHjS7QbZVCvCSRSqn8dYybc54hgzcjukW1sK+m9QisjjAW7iLlhBTLeBmQIrUGSggYN5QGf/vJKm6quQ5EsuBQUFHie138O6gzc4SbR/6K9eakvURsUHoGJJ2zltHIdLdNcIxrYzHKNFXVHufrmChzz0IzLBixlobet6UoinCUynKzRUUc2XlQAlCccuqh72/kiC0J5nZeSYLdwOnK+E5MpGtSbOZ0USFu03e8/VPccXXYA0tsxRwB4sKLlwnEF7sQ1YL6pJaLmVvs4NwucBpLgn6oha9j3IbuAAkK8OmGHChgapFA7si1/WphUAl/kxdESM0HdD2SQAlEMgNPVf/oVcs99TJpoanKkuWIbLbudtoAyFQ4O2EGtgIlOE5diPO9j2iRx0iNRqhaG3lKA+oSY7cZ6cKq5Yl/vrTz5mA5iwBXW2n+IkVdQCYCz7yVRjj4cEMwuLqTpbzNeNLrWrXRI5LKfiIyMsiHUTI5KAg0KexmnwsEFmSRuSq+5Pe4QV8xHHg9gIBEXWlRXTg== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: YR239vrMCMaQaNF5jgchWH3d9zdVEgCqgL89rKgMgBs0ill+HIjXWnESA/0pNQfWKvrE1YyHjWGU/I7lxxFrfuNEdmxTrl2Xh40CmwD9MfOcb2j8Mkr9fb/lrQ9iNxQTIzDGwlvCz3h0oNRsPibVj6zvKdMa00YzHEoQ5tdF2OLOXpS+4cASs5VNyhyAZNsqXAvHW4BTfAqDicSmMKI2TYeGc4TcHm3/4YXZVgMuLF8KZ+212G4zWKAVDNe9sJXLGiU/5fL7rfMdgukbao9S6ROPgKiCLZBB1y+a/YJQM0YuQUF/u8E4Dw9hFHzwEiJT3OGe+fR5kQ7LicJK4eFKmj7m3+P2oKPAk7LmiNH45kLCEEA9LfC8dlXUNU1e4VnD9P8vV/U/Pkrxh1elFCqsFkZT+3KiVdfc59nzuyYgDphjTeJOO9C1vdDuEDr2UES37H5ceR4wg0yfMUEr1ag59X64DYLxs3ssQA7jHfmeKb+HYgnkfa2255aJcYbnyPe3/88fhM2umLkca1SIrxJIB8bQ+6uJKByHxv5TQxEm7MW6B+gPnAkjsdD8zEJTyVUmf65ro1Ri8SYrUUJF869NmK3T2867Z8TrgjdGOsQuVkvTGwWyWwG5Z9AzS6uHj67WWaGF3fmRSmBFdxWr4VGGcPp7xxf4hXwceNylmGS4yIKEcTUbxfPhW7Eld0yvyExGFQYRn+D+c0rAEGy+mvg/oAsxmcOtpU3hwO25z1QVg4cxqf6t9FX6L6j+EpgoevHHDho5vtPtBNUhnImtOukVEiKlI7k6wePGRm7pHB5Y+oVhivvwKv+9EP667uzrWlXPVnn8aSBDBGbZcMspwuQVmKxL6klQO7cwT3DRWJYSeYgw3/Uh3uRJjFP42DPIExpA78vgX1HjhkF5YICji1nG2UTZKehQza6uD3b6vXJ4l/hP0osIWwsp2XHq2uS360ALYc3H0gR/lTEDAPTyy9q1EA== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b2cca0a5-d99b-42b2-4dee-08d9d0963982 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2022 21:56:28.0023 (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: AM7PR03MB6450 Subject: [FFmpeg-devel] [PATCH 08/10] avcodec/bitstream: Don't pretend VLCs to be initialized concurrently 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: WeTRlSs4EI/k Since the MPEG-4 parser no longer initializes some MPEG-4 VLCs, no VLC is initialized concurrently by multiple threads (initializing static VLCs is guarded by locks and nonstatic VLCs never posed an issue in this regard). So remove the code in bitstream.c that only exists because of this possibility. Signed-off-by: Andreas Rheinhardt --- libavcodec/bitstream.c | 43 ++++++++++++++++-------------------------- 1 file changed, 16 insertions(+), 27 deletions(-) diff --git a/libavcodec/bitstream.c b/libavcodec/bitstream.c index 1f77cafae6..2dd0226614 100644 --- a/libavcodec/bitstream.c +++ b/libavcodec/bitstream.c @@ -142,21 +142,16 @@ typedef struct VLCcode { uint32_t code; } VLCcode; -static int vlc_common_init(VLC *vlc_arg, int nb_bits, int nb_codes, - VLC **vlc, VLC *localvlc, VLCcode **buf, - int flags) +static int vlc_common_init(VLC *vlc, int nb_bits, int nb_codes, + VLCcode **buf, int flags) { - *vlc = vlc_arg; - (*vlc)->bits = nb_bits; + vlc->bits = nb_bits; + vlc->table_size = 0; if (flags & INIT_VLC_USE_NEW_STATIC) { av_assert0(nb_codes <= LOCALBUF_ELEMS); - *localvlc = *vlc_arg; - *vlc = localvlc; - (*vlc)->table_size = 0; } else { - (*vlc)->table = NULL; - (*vlc)->table_allocated = 0; - (*vlc)->table_size = 0; + vlc->table = NULL; + vlc->table_allocated = 0; } if (nb_codes > LOCALBUF_ELEMS) { *buf = av_malloc_array(nb_codes, sizeof(VLCcode)); @@ -191,8 +186,8 @@ static int build_table(VLC *vlc, int table_nb_bits, int nb_codes, { int table_size, table_index, index, code_prefix, symbol, subtable_bits; int i, j, k, n, nb, inc; + VLC_TYPE (*table)[2]; uint32_t code; - volatile VLC_TYPE (* volatile table)[2]; // the double volatile is needed to prevent an internal compiler error in gcc 4.2 if (table_nb_bits > 30) return AVERROR(EINVAL); @@ -201,7 +196,7 @@ static int build_table(VLC *vlc, int table_nb_bits, int nb_codes, ff_dlog(NULL, "new table index=%d size=%d\n", table_index, table_size); if (table_index < 0) return table_index; - table = (volatile VLC_TYPE (*)[2])&vlc->table[table_index]; + table = &vlc->table[table_index]; /* first pass: map codes and compute auxiliary table sizes */ for (i = 0; i < nb_codes; i++) { @@ -257,7 +252,7 @@ static int build_table(VLC *vlc, int table_nb_bits, int nb_codes, if (index < 0) return index; /* note: realloc has been done, so reload tables */ - table = (volatile VLC_TYPE (*)[2])&vlc->table[table_index]; + table = &vlc->table[table_index]; table[j][0] = index; //code if (table[j][0] != index) { avpriv_request_sample(NULL, "strange codes"); @@ -276,7 +271,7 @@ static int build_table(VLC *vlc, int table_nb_bits, int nb_codes, } static int vlc_common_end(VLC *vlc, int nb_bits, int nb_codes, VLCcode *codes, - int flags, VLC *vlc_arg, VLCcode localbuf[LOCALBUF_ELEMS]) + int flags, VLCcode localbuf[LOCALBUF_ELEMS]) { int ret = build_table(vlc, nb_bits, nb_codes, codes, flags); @@ -285,7 +280,6 @@ static int vlc_common_end(VLC *vlc, int nb_bits, int nb_codes, VLCcode *codes, !(flags & (INIT_VLC_STATIC_OVERLONG & ~INIT_VLC_USE_NEW_STATIC))) av_log(NULL, AV_LOG_ERROR, "needed %d had %d\n", vlc->table_size, vlc->table_allocated); av_assert0(ret >= 0); - *vlc_arg = *vlc; } else { if (codes != localbuf) av_free(codes); @@ -320,7 +314,7 @@ static int vlc_common_end(VLC *vlc, int nb_bits, int nb_codes, VLCcode *codes, 'wrap' and 'size' make it possible to use any memory configuration and types (byte/word/long) to store the 'bits', 'codes', and 'symbols' tables. */ -int ff_init_vlc_sparse(VLC *vlc_arg, int nb_bits, int nb_codes, +int ff_init_vlc_sparse(VLC *vlc, int nb_bits, int nb_codes, const void *bits, int bits_wrap, int bits_size, const void *codes, int codes_wrap, int codes_size, const void *symbols, int symbols_wrap, int symbols_size, @@ -328,10 +322,8 @@ int ff_init_vlc_sparse(VLC *vlc_arg, int nb_bits, int nb_codes, { VLCcode localbuf[LOCALBUF_ELEMS], *buf = localbuf; int i, j, ret; - VLC localvlc, *vlc; - ret = vlc_common_init(vlc_arg, nb_bits, nb_codes, &vlc, &localvlc, - &buf, flags); + ret = vlc_common_init(vlc, nb_bits, nb_codes, &buf, flags); if (ret < 0) return ret; @@ -375,21 +367,19 @@ int ff_init_vlc_sparse(VLC *vlc_arg, int nb_bits, int nb_codes, nb_codes = j; return vlc_common_end(vlc, nb_bits, nb_codes, buf, - flags, vlc_arg, localbuf); + flags, localbuf); } -int ff_init_vlc_from_lengths(VLC *vlc_arg, int nb_bits, int nb_codes, +int ff_init_vlc_from_lengths(VLC *vlc, int nb_bits, int nb_codes, const int8_t *lens, int lens_wrap, const void *symbols, int symbols_wrap, int symbols_size, int offset, int flags, void *logctx) { VLCcode localbuf[LOCALBUF_ELEMS], *buf = localbuf; - VLC localvlc, *vlc; uint64_t code; int ret, j, len_max = FFMIN(32, 3 * nb_bits); - ret = vlc_common_init(vlc_arg, nb_bits, nb_codes, &vlc, &localvlc, - &buf, flags); + ret = vlc_common_init(vlc, nb_bits, nb_codes, &buf, flags); if (ret < 0) return ret; @@ -420,8 +410,7 @@ int ff_init_vlc_from_lengths(VLC *vlc_arg, int nb_bits, int nb_codes, goto fail; } } - return vlc_common_end(vlc, nb_bits, j, buf, - flags, vlc_arg, localbuf); + return vlc_common_end(vlc, nb_bits, j, buf, flags, localbuf); fail: if (buf != localbuf) av_free(buf); From patchwork Wed Jan 5 21:56:09 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 33106 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp1111911iog; Wed, 5 Jan 2022 13:57:22 -0800 (PST) X-Google-Smtp-Source: ABdhPJx8HkBjnUVRVTBmVirHo0IV80Ivx9zPtt3cL8X2k2DIVepyw6jajVbQDcZ4rm727ewlb48v X-Received: by 2002:a05:6402:354d:: with SMTP id f13mr47219440edd.135.1641419841886; Wed, 05 Jan 2022 13:57:21 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id cm25si77003edb.304.2022.01.05.13.57.21; Wed, 05 Jan 2022 13:57:21 -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=@outlook.com header.s=selector1 header.b=ucl4vBl1; 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 05DF768AE56; Wed, 5 Jan 2022 23:56:43 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-oln040092075019.outbound.protection.outlook.com [40.92.75.19]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E7E0668AE25 for ; Wed, 5 Jan 2022 23:56:38 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=odL+v97bcpqcck2Eug+hdcq1sR/OUvQ2x4BcjMLQDdvhwbXeF54rrN03UyHsepdHlhDe0PtWsEAXOvVlbW49hSCSKCdCiKFFiZMVNQTQE3vS+4rYZyGF/YZZul3g35N4zw3JDdAlyKacPLYgeA0a7mXgCACFfCcGwjPErsGxkkGdiVU8heUbis93JjHbs9mS3M03WklUWtEeCxUXDdUNdBoxO19lrfuHY4Q1QZIbO+a9PXqdCrvHHAeW5QFu0PC0rFfrqYvObZe1XlMg+RotWioXe+6uDWWu3lYkwea95OUd5Ldww7hrzSnBpS66aWFrV6F6Nuz6dK4Owi/RSzJKiA== 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=VJF3D5r/6udE/SkmWUpGqAlt+kGbpuEOgs8QhO25bTU=; b=lOw6md8z2Y/TfgZjvM7E9JMUZ3siw0UklqQe/Wjvtd8zd0Dj/5hzI9ZXHTEyCPzN6bBVxtK2MRyP1CVTQe6arg/THPFHeiF9vUIaOeZBzHFBHZm/1jzrUnr6A8XCYE0ctF0Ox9SThlsZkbzbDr0KNEsiOPehTY+wDNZHaHy5rNn53znEQXdLTb9MHMAGVxUYrICKY7EYTEJcvFbpavl8orXKSrCd6jjUY5/qHiQskT87UppY4xUfcCTvXdQPnIAy6BF8lwHpxC1fHVAx+rDSC4ld4ARYLrY+BUj/BTlzBbuxkUCrxi4O1f16C5pkPZCwtqbANBFvX8T/OX4+1maSVw== 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=VJF3D5r/6udE/SkmWUpGqAlt+kGbpuEOgs8QhO25bTU=; b=ucl4vBl1EvbM8b4y0SebkNq6URG5MaA4aeA58av0lrCHSA4u3hkq5sm2gPbp0ZaGu4rbXBG4KKea2BySm3sjuGQlb6TFvUZCJ4RZCmj7wjbjIqoPfw7vLGxZldxQZhDaFIlo8IHjpcK6MK5PDNsxJ8DCtQInsqdIsJ21e9Dl9ZWoVRs1DOlA0B3j0UUuJs0vUZdtOSVLD9t34/ag9htIdMrWi5h6DlUYWNyzDPLLV9vsHhIF0qFZjDAnqPztj4i/7oNOgkYe9mcbQoz8gnDfLTvq8TtuTBV52ErNlCPXEn88v3HQ7UDp6W0c64kbzxp1cxJmg2EaJeQNOqdkM4oOcA== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM7PR03MB6450.eurprd03.prod.outlook.com (2603:10a6:20b:1b2::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4867.7; Wed, 5 Jan 2022 21:56:29 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::19fc:be9f:2c9c:53f5]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::19fc:be9f:2c9c:53f5%9]) with mapi id 15.20.4867.009; Wed, 5 Jan 2022 21:56:28 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Wed, 5 Jan 2022 22:56:09 +0100 Message-ID: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: X-TMN: [e03NB9DgQ9QwJ9RsmUhz/xgJOBVHTjTn] X-ClientProxiedBy: AM0PR02CA0183.eurprd02.prod.outlook.com (2603:10a6:20b:28e::20) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20220105215610.813119-8-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1522baac-0c13-4604-58ff-08d9d0963a0a X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiR3EehW4kxQzdNcP2D/mG1JSwKuUqsywmCCBQA99muuERo4vHXASSYN34VVyuuwuplUi+ICCXKwYcrOkhDne1cnrtTdiHK0lfmUtbMcuk0hpm4vVqa7U2MMbHbL2twiSFb9zUPoJkHWkUr7HceluqVdgLI6sywnK79oCSmD22guHnOv9EKKlm4tRc6qdD0ZvX78jLueQxiVLua0zaFVT5C30D97paAJ8lDEvxlKC9EJb4dYS6QzeJKgBwcduSlfYwvMDmHWh47AdGRx6M4u9Dals7q23bHCRgB+YddIAeLyptUFOLPmPsCSW/zGMomVrCgivs/v/kTHrLkVtTYe4MswZpwZaTp+GGMvl2u6nGyYAGRC8bXdJxVBc4wVo1yds5N+iMSUN3NnJqHI9yLF7KZBG8VwdQd85xkBB/bsiCtC/UlBREjK4wKvuU5SGXOcgnrC28t1GexlhUrk/q+a7GdMag/HNTkSc4AJ3Uznp29xfR/SdXTL/X1SakekC7X+oAfEwotKIQ9uY+5OHat9mM5Rbo1PTexL/DVYzZPGQnUcFZREgaNMLXB8UIXM9YsQjXFM/qPLMCAICleti4GYY+KKMhZndD0l/RzygjSqNbRPmjbjnDgssjqrt25EN7JJA3x3A66G0CJGCpPqKIK1p32FHdMRrRR/OEN8fOM2waRAUCF37hcLqV1RiVI2nERkgGn0APIFiAGEWvpQkUjeeLbD1IUUUM9ED2Dcf+71z0egwdh5U2Nuc2y6hfMpdmivGmc= X-MS-TrafficTypeDiagnostic: AM7PR03MB6450:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: tpLN5S/cBax2hi/ujVg3GD0WFWl4jF7gpLBPFJ6eK2lpVqOWT41bT2U/3LujyjGfNUFBv0dJzJopsNRz92oai57/EZ6HXQHnAygtI1eMO13RFNDPGubtwg/LDxX7oMSYQHwKigzjgBpg5cWwLd1NtFsWZB9x6MZgDC1R2ovXo5GaEVbFDSlr+lB2cyGXorfUjas1jQTMX4MfvRhFBivDO5LniepYNJ1u5VeLJej2N30/oDyVZ+xPoVhyJ1phGFUqBk7nkGc5GXb+nA8rARGdWz3JoM1RRmz6nFKceEmcJveI+BzqDIpDeCYjBdVHWs1fVxnaim+6IFTQYqq11xQW9hHS8+UHnsgAtUyg9etYtnBtpYMhGQBrPrIzVVh/XV6V56alIZ79opSpj1yg/WS04Ft7l1lBFnuBOCF1ca3fDh06aqoZAy0X+fy3yTReKml1uYeaChOxfVJcfchxetItgkTPT0abf6ltZ63VjaggLk84IGc073zyst4WYYkcUiUmZbEx9buX/uUcq4wCPCHmN6YJnfBvUMEaPKL/ph3joJg/A/p5iIyWrrMxA+fDW19Ri+zWQPelW0khRZaGr5ge0Q== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: ZP9ej+5+eh/ef4Yo5FkcoxGTM/GJR2iFpenoISow6FTya7ekzNIGSZdZTryYo6qUgajqSTb6ZM/a/0xvGwwGDi2jugzrKyB0umJ67AkC6TprYWmkg27EE4yOXeacjEwnxaPTT3duv2kSi3wSO0s59PhbAhtdRMyivdWpT7WHhCqbYi+nuh3ppiE4Dr1f7dU0hKGW3c50WDq2bTPqfsWnmTrLxYvBEj3CEY9C2gaaTAIQfNSINd+ahz85f48mFHV2yPLEhWrNbqf0MgGAihCiuCHpp5xIL2iV9WRw1jRUlAkKk+Isjms5JLFcqLgltZDWhTSN7ICh2nyp+pNwQ5Agct7JDcyqkDzI3k6HrTyUJM+Q9bC18xIu6BFk5NdV2Ly2BIhw021ON8aXjmeiSjFxKpI02ALA2skQ/otSys66o7wpoNkk0Wo7X0t/S/HH7nfgdD0Kg6GnTHVqNvz0vp1l8eeiljD7wK0dE+nROt/kwpFwwII14AetAp3nC3+7NnBj0CrJ0hWxe5wZuAoJfqN5rPfC91lVhj9deMLbQbn9KfWmuLvgEeUKnuIMqFEekErEyRKbu0j261MRxr8+uHVZbMFCby4Ih328QWf4/I2TfDHm56HULXesdDoCgeGi0RTEHC5z6dLu5jKwcCOWrGq4nmF3pqYh0U6h6J+jCr5RdXqzMCUZXvpNzXfUApYFAQehJQHw+X66bzx7QK8MwBNu8pHrt5luC3DaNBjjjs2yc4lAMzg+1BgjfIEbZcYCFeVPaU6QOUOTLISDa3zwq0DogqGU/MgCzbRQIzJIrG5YIfZkAMfexSRzb+XWXNG3iNjq7jGCDBtR824lyfT60i+oRJYnRMuLCkKu5y/q+0oI9iNNLA04jCVRMzWd1QP+gaGMp7XocyPXYg7BuRozvD6ZNz566G03McIWkGFWRa+l7jXszssh5Gq5DkYyyUPwr+RNYrY1n3cc3MoMyA1bpn6WSQ== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1522baac-0c13-4604-58ff-08d9d0963a0a X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2022 21:56:28.9407 (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: AM7PR03MB6450 Subject: [FFmpeg-devel] [PATCH 09/10] avcodec: Remove unnecessary h263.h inclusions 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: vrWVaGVa3fRU Signed-off-by: Andreas Rheinhardt --- libavcodec/flvenc.c | 1 - libavcodec/h261dec.c | 1 - libavcodec/h261enc.c | 1 - libavcodec/msmpeg4.c | 1 - libavcodec/msmpeg4data.c | 2 +- libavcodec/snow.c | 1 - libavcodec/snowdec.c | 2 -- libavcodec/svq1dec.c | 2 +- 8 files changed, 2 insertions(+), 9 deletions(-) diff --git a/libavcodec/flvenc.c b/libavcodec/flvenc.c index 614ef20243..158b399c40 100644 --- a/libavcodec/flvenc.c +++ b/libavcodec/flvenc.c @@ -19,7 +19,6 @@ */ #include "flv.h" -#include "h263.h" #include "h263data.h" #include "mpegvideo.h" #include "mpegvideodata.h" diff --git a/libavcodec/h261dec.c b/libavcodec/h261dec.c index 80ec1c8814..2fd8d94df1 100644 --- a/libavcodec/h261dec.c +++ b/libavcodec/h261dec.c @@ -31,7 +31,6 @@ #include "mpeg_er.h" #include "mpegutils.h" #include "mpegvideo.h" -#include "h263.h" #include "h261.h" #include "internal.h" diff --git a/libavcodec/h261enc.c b/libavcodec/h261enc.c index 79f680f81d..af65c1f3b1 100644 --- a/libavcodec/h261enc.c +++ b/libavcodec/h261enc.c @@ -31,7 +31,6 @@ #include "avcodec.h" #include "mpegutils.h" #include "mpegvideo.h" -#include "h263.h" #include "h261.h" #include "mpegvideodata.h" diff --git a/libavcodec/msmpeg4.c b/libavcodec/msmpeg4.c index 16b6f18950..e76aec6dfc 100644 --- a/libavcodec/msmpeg4.c +++ b/libavcodec/msmpeg4.c @@ -34,7 +34,6 @@ #include "mpegvideo.h" #include "msmpeg4.h" #include "libavutil/x86/asm.h" -#include "h263.h" #include "mpeg4video.h" #include "msmpeg4data.h" #include "mpegvideodata.h" diff --git a/libavcodec/msmpeg4data.c b/libavcodec/msmpeg4data.c index 890aeb5670..a3a8144664 100644 --- a/libavcodec/msmpeg4data.c +++ b/libavcodec/msmpeg4data.c @@ -27,7 +27,7 @@ * MSMPEG4 data tables. */ -#include "h263.h" +#include "h263data.h" #include "mpeg4video.h" #include "msmpeg4data.h" diff --git a/libavcodec/snow.c b/libavcodec/snow.c index e0fb58042c..0a500695ce 100644 --- a/libavcodec/snow.c +++ b/libavcodec/snow.c @@ -31,7 +31,6 @@ #include "rangecoder.h" #include "mathops.h" -#include "h263.h" void ff_snow_inner_add_yblock(const uint8_t *obmc, const int obmc_stride, uint8_t * * block, int b_w, int b_h, diff --git a/libavcodec/snowdec.c b/libavcodec/snowdec.c index cd2265aba1..d54036e02b 100644 --- a/libavcodec/snowdec.c +++ b/libavcodec/snowdec.c @@ -29,8 +29,6 @@ #include "rangecoder.h" #include "mathops.h" -#include "h263.h" - static av_always_inline void predict_slice_buffered(SnowContext *s, slice_buffer * sb, IDWTELEM * old_buffer, int plane_index, int add, int mb_y){ Plane *p= &s->plane[plane_index]; const int mb_w= s->b_width << s->block_max_depth; diff --git a/libavcodec/svq1dec.c b/libavcodec/svq1dec.c index a67d1866b6..a2b3f71c07 100644 --- a/libavcodec/svq1dec.c +++ b/libavcodec/svq1dec.c @@ -37,7 +37,7 @@ #include "avcodec.h" #include "get_bits.h" -#include "h263.h" +#include "h263data.h" #include "hpeldsp.h" #include "internal.h" #include "mathops.h" From patchwork Wed Jan 5 21:56:10 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 33107 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp1111992iog; Wed, 5 Jan 2022 13:57:31 -0800 (PST) X-Google-Smtp-Source: ABdhPJz4iWhHfgSsV8dcp/6fzFcdnVnmgO0O0qaec1iC6KNd9jWjPYA8K8RcGQCeMEgBHWvq+XbV X-Received: by 2002:a17:906:dc8c:: with SMTP id cs12mr44545408ejc.769.1641419851430; Wed, 05 Jan 2022 13:57:31 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id f13si63604edq.625.2022.01.05.13.57.31; Wed, 05 Jan 2022 13:57:31 -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=@outlook.com header.s=selector1 header.b=p0IKF2uf; 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 EF41268AF01; Wed, 5 Jan 2022 23:56:43 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-oln040092075019.outbound.protection.outlook.com [40.92.75.19]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2441E68AE25 for ; Wed, 5 Jan 2022 23:56:39 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=E4d65jI06iwS2/a6Ximxg2iIY7qqZJ95wYmy0wXsIASvyX3PnVJe1yDkzwC3+jbJZv9pOcfD/MSNBuPdjhGdlFl1nsnap/fExixAbE9meihQwDodoR7Vyl9C2X4hoyVu3KseKl+4gRygfzEwgz+VjYeM/WRvXeAGdNkd/yhUsVDCvNiJRT9PDwHQp8y/fibqBTjZSIpzBuNZHamTsNsBTOXQNpr3xGC7VGFgbCycFqwtUyel6AvATdN/crTIq4YFG7jcSozHPa22npjdI2wGR8HYCgAFap/S7AxQjglmOLKSB2ligHl4/4LBw7DLyxwbFa8YrJO2ix8cAFl3DLEnWA== 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=4C0KxA/AuuZLLwDcoBKInYqI6DWL9ZLZEk49C+5f11o=; b=FXbc1wP7FNw1n624D/5Nbc5VOmUzkGlFI5LSOb2VQALcAGOzuqeHzNFdA/VakZ9PZbmJZSxxRqL0Yt4F5AdrlcbDkXKI/VRlFEoUxlVR+uV07X1RF3PrIJ5t2ezo1AJMgHrCNgD/W3mp1CH9q9Sm0wbA/q/hK5jau6dOCKDw1sqNXu4NWIeVvxCmRSLYxttTSc/G4cbOoukJVVqkzlQHRUnxnSk8F2LufTUbZLcSBbLL8VKPqx6d0EneQgRgaOY2Kx46Z95X9aj2WJPrcDNB9Oa0o9SXIyvkDiRfm7O/Kao49kNaqqwpObaukT2qIKHgs/0EEX0XYSHRQ69Lw7eZuA== 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=4C0KxA/AuuZLLwDcoBKInYqI6DWL9ZLZEk49C+5f11o=; b=p0IKF2ufbCuhszTBWVQNhxwNkdgFyROYnIJkv5eKMY14tpOsg0wPrcOo+HQKfe/57Y6o+FuNymhk8NOj1ovwr8iLWam4YqAPI9Dk4zK35E8n9/cIuQGdsRWPvAxBEN9rCSvNC5AsgQjc5X2XgoKwqrYO/CN/tqjvLyFunlMi/dDHSoy1X05a/ezikm70PJ3SY2BfEYnnOhS1D/yB2MRfZxC7/UEfkFwvZj/WpXm3pq52nGMTe1mlDl642jJ1jSE4cvN0APZiQ9TfHquZW6PT4Qr++s0lQDkVSbmpgCPQr+rwTL749gfrw0q+wm07m2wGWyRtWs7koLfXE7i88tX5fw== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM7PR03MB6450.eurprd03.prod.outlook.com (2603:10a6:20b:1b2::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4867.7; Wed, 5 Jan 2022 21:56:29 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::19fc:be9f:2c9c:53f5]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::19fc:be9f:2c9c:53f5%9]) with mapi id 15.20.4867.009; Wed, 5 Jan 2022 21:56:29 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Wed, 5 Jan 2022 22:56:10 +0100 Message-ID: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: X-TMN: [8sbyb4PI8EsWRijD7ktDKmOUaB0Stv9n] X-ClientProxiedBy: AM0PR02CA0183.eurprd02.prod.outlook.com (2603:10a6:20b:28e::20) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20220105215610.813119-9-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b53fe81e-d1bf-491e-7729-08d9d0963a8d X-MS-Exchange-SLBlob-MailProps: q+fD6XS3/UJ+cHfC79vTguh6WqLpD1ahnLFjFfKB0KGp44r+vIU1UZvVu9yocPRfeE0fYwfJgvIzRQ6j4M6m5HQPp4rooBBALidDAOX5kgo4uXrq3xE8UdDfWXwIrqz5JuaRN77Fr6JqJpScNqgWhNa1xPQx3q5cgKeGlRTyFun3+quQOVKanYXawK8TA7CcPMwN/ynIVBMi4nmaGatgaLHO6LXvteCJzUNo75HmostNmB7t8iWqvNs31teQRQI38YWIGtwazjnYEBtQXI9Qd3Wur3ZnDHI7PVngCnUPIpnTOiSkW4rYWO38H63ni7gkw9OemF8YSiScYzCd44TLW25UN2r85YkuzxFf2ZtFMyUOQjyrQz+lR/bLM5jLH5UNicqodF0n8xvobeku3L//Me/x66FlVE4XXvXpw3ciu1PDeUNDLvDzOUt7cyGqE8DHxLmGanJQWSmUPrMg4cTpJpZmS40vO472IFpZ0JZ91ahifg5K7SBgVdqm+zqHbhB9sjhANIo6VktSVgkGYeD0nNgWz3PO9CTDdVuPzjzToCGTmYzwOG8K65H1tTn6SAGVb8G22r+Dh4OEWBAc+vei4KD7Doaowk6p2tfmBQk6oM3wrLtMtsHjxgx9hn/VbmKnntEyQDxq+dOK2qbh7oXWvErZEt2N9wPBUCsnkckRf6DgJhO/DGNEgQJRjdFLgEsDwMli9ofoFzwF4AvLYjXR5g== X-MS-TrafficTypeDiagnostic: AM7PR03MB6450:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 8jrs5R7lr3kgVxKO9jfb4k5NRY5k0u+1hQf+rsb75tT606PMLY622+NF6a+TQEhwr8DSWMuNotAe1QxDzuD/O40R7oAErdamk56N6T7Wn3Ox1KHIH8v7yLEOhsgGrx9T5WemIhGd2YHxDmkg5TN3BpQA07QMSISRE/l57l8yb+3OVr5/7Hdxwa9G6UPS+f3axSP0E9hUMqPTOsoZM3veFBxgNdwRskRglCvaxJcNhDiA6BW5LqPjDSh9EhZ/fOrPtQPekutlGFHFmPTMmvVOJqhPR0H0owX5RbxDB96G6a2RI9V2PJX74lEKu9fh47fUc/cl040ydJ12R7047PQfNUJHaYNKNXjb6X9AI51npmwI5mvIJ+1XmAr2oE9UvbB4VyXGeb9Zu+/YM3KtkpFtqKwU8CR7Sh86V20DrVvq8q72FAuYMDZVx7CKZj1mFNe4jSevo9Qqkoiy1f4WynxEINtlfAAq7gHrl0Nlmgw+J15r8tXTfrHq7K7I2pSMZfLGRT7wOxoKzbMQXpPT6O2MllKFy5kI/y3g9XXOTlnVs2SFyigmwyR0p9JJZIVJySVWTK/9ysLbqeNHYZqVRgSrEA== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: bLNPG+iE6rbMqiUptmecGQuDf5T2sfa5i+Bxl63VPvJvQLXq4e9unuoenkfBpsiMWqwNj31UJX/4iTOMZtwv0l+yteslJps5WBYwYpPrdL+mhpYi+kQ9az86jDc1Vbfp5CvSKsVnZTggMvNP9764APod/DImXJGTsY331PXfyo9r8cANtGAb0akTsdvf6yX8ZquIlFOg3D7CcctVkNA7lW/4k/pM+lqfvsA9soFwtMekLBUC+doi9tsBoMblwboemnqiBHcYNp3z2pJoYFwOPxrRc8vJLxbpui0JqBC7svTYhpVBKlHvuJCp2aWvjCbEhEVXAnrlsovC1swsP10d9+i6BX6xukzLo5DHTtXYC6uAQa2hEzWvbD7OdxMcYhoYLvEYUAKVxV+Y1Yww5IklcOK3ijKfa7lJT9sReAHwxglxHRNA/0YK7cewA/bCOlBNQscAzCT76S0ph7VKqxyJRsjvUfqYK42Td1RQ466pMDwRHOzgG29bVu7UZ6KAurQFItyeSCRNq+ozI2sYqCEipQsP3DbCIn6/1nfkKrWWJypVfZVC7H+tfrYhAOf3SOPV+XZiAC6vpD3VkF2wRRB1lfOV650f9yVgsV/z3BpJzGgKSUuu/rR9v923OnIprmsCsJBYujTTaVTq8IAy3xxa4tDe/cb1rFux+NUYu32mOyNqM3rDpzHJcbAIHDAG0HFpXIUsQvQHROicHkA541f6KslnrbGg/tL0TzsMcj1M3QSDjifbygrLjpg6p4gOXMq/5SNS/ZmBg1Ni2Uoj366aGY/DXpIpP9PHvWLpJSN1dbUm3JjRMWmOR1CzTYBn5WtmGhsodQgMbPJB5MJVeyBkcsZ7WxPCQLz4omBaQ75N2KVtyBgsZ5hLHf+77Kiljyz8XYAVlIxNchCijNJ9tLPoAXCs8hvGuSkouJgiS3arvY6g4HsysGZ8RIA2Mo5vcg24kxFjERnOKdGlTmCQJdTHPg== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b53fe81e-d1bf-491e-7729-08d9d0963a8d X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2022 21:56:29.7699 (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: AM7PR03MB6450 Subject: [FFmpeg-devel] [PATCH 10/10] avcodec/avcodec: Remove outdated comment 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: h4WqE6QzXR+x avcodec_open2() is supposed to be thread-safe (those codecs whose init functions are not thread-safe are guarded by a global lock). Signed-off-by: Andreas Rheinhardt --- libavcodec/avcodec.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index 7ee8bc2b7c..ec1a0566a4 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -2384,8 +2384,6 @@ int avcodec_parameters_to_context(AVCodecContext *codec, * avcodec_find_decoder() and avcodec_find_encoder() provide an easy way for * retrieving a codec. * - * @warning This function is not thread safe! - * * @note Always call this function before using decoding routines (such as * @ref avcodec_receive_frame()). *