From patchwork Sat Apr 24 11:14:44 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 27272 Delivered-To: andriy.gelman@gmail.com Received: by 2002:a25:49c5:0:0:0:0:0 with SMTP id w188csp2035158yba; Sat, 24 Apr 2021 04:16:37 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx4akFHWXDhhA70N7JqeWGDo42NLIYrBq1hKS0lB+C4fpMP5S36GkvyMp0Roc7w6r9YGpCb X-Received: by 2002:a17:906:b191:: with SMTP id w17mr8814455ejy.200.1619262997496; Sat, 24 Apr 2021 04:16:37 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id a3si8999723ejd.575.2021.04.24.04.16.37; Sat, 24 Apr 2021 04:16:37 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@outlook.com header.s=selector1 header.b=JI7CepbP; 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 9703D68A0D5; Sat, 24 Apr 2021 14:15:41 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-oln040092075028.outbound.protection.outlook.com [40.92.75.28]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 907AF689D6E for ; Sat, 24 Apr 2021 14:15:37 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=n08J/20GeUtKqGxixV++8/OuUGhDHjrlVOv89/X3pJ28yufmd8v+UcAAZSej6Xi27VDbPDfpwl/dk0YPwvsGlbviUFc7TEiUi4lxk/yCcKUXjmsNOl5kokp3qT4prr/tSbILz6EmPwWJBO0Fb4zSDL9MuqigGjO0fomMYqnabjj7oAo8BYp38RbYmAu89jI+DlX71DlZm8ROpkOTCHX/eV7eYqFUwTmCsZI5qCj6H/mkpb27WtZcCTWCQJHXBbUET0CkzSev3Ga25bAAn28BAdw90FlfnrQLHkORrvLMMFpGnTUIOyQhJxx8WL/lHxm3xX0LZGDX6APlOXIBU+nEPw== 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-SenderADCheck; bh=VQ9wIojGXhBo8IW1nyVmguKiI/5eXdsne+VVRDB664A=; b=Syam7SB9N3Mqd1QgW9GLNWwIHl3RjKwHgzDeW/L6wO8zhyweJnof3jjbXdYlT/bzgwPFLJh1oMijj8nP0GaEGCKy1w/SM6mYjWm+/13q6+L4HpuJ+JrKwdvPEa3/6VSraGlE8fiyn93K1QLVBesY6LVetzWagv2cppDZMSXJUXVbIf3lM6pV5Nm3u2Z/4s3QUpqxoikfNLR36huQja7l6lOTx4IQm7v1c2/cdEkp44Si5eAgFqwXXXFAvVZQh/MxSj1aJW6tx4sss12EaYVfByNV5qEAJLQXTEq+icbwCx8dB2PKGhefoS5srn1h1h97rr1a3O/mH1zBJQgMqJ1IUA== 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=VQ9wIojGXhBo8IW1nyVmguKiI/5eXdsne+VVRDB664A=; b=JI7CepbPQrtzh3QpEiVZdbf9SwtG39cpKSbZ29ncMPGsFslYnOOrZTkFiWFVSypDn0KcowIUNme6K5nyh5LyOeUKxnCr+TU5bYqvz67Tmt/cm+z/ZcbVO5bPrbaZfgL4w8ytN14nIMXYkmbhJ7mh15EWkO8ijdnmTXF9CeuquIQwLC3oCLnfX9NgqpwAy8fPQPnLLbQWYjGSIQxWnKwgEP8Bv3e1Qv7kIyE0bdVNTTp+zXgRU2RMcFS5C0qFzBTrL+GY9/ky/xnyQ3/GA4bv3zu4d8q2dAAGvvco5e8NUT1XblMaaBrq7WO9c8kABfxanbMyuVytwJUvankPkF9vjw== Received: from HE1EUR04FT042.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0d::43) by HE1EUR04HT105.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0d::135) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.21; Sat, 24 Apr 2021 11:15:36 +0000 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com (2a01:111:e400:7e0d::46) by HE1EUR04FT042.mail.protection.outlook.com (2a01:111:e400:7e0d::159) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.21 via Frontend Transport; Sat, 24 Apr 2021 11:15:36 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:958056F30EA2C1153013DF27AC2BDB62B3D118F36407CB2578B30B61548E7ED9; UpperCasedChecksum:20330939E809E3DA7B06EE3CC6005AE20D56EC591A146A9CBDA6CBB318EE609F; SizeAsReceived:7591; Count:48 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com ([fe80::45bb:c44f:2b75:23b7]) by HE1PR0301MB2154.eurprd03.prod.outlook.com ([fe80::45bb:c44f:2b75:23b7%5]) with mapi id 15.20.4065.025; Sat, 24 Apr 2021 11:15:36 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sat, 24 Apr 2021 13:14:44 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [lfAUh8VirtTvE5wtRl0392YqMo+oVpSV] X-ClientProxiedBy: ZR0P278CA0160.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:41::18) To HE1PR0301MB2154.eurprd03.prod.outlook.com (2603:10a6:3:2a::22) X-Microsoft-Original-Message-ID: <20210424111446.30338-11-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.193.248.86) by ZR0P278CA0160.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:41::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.21 via Frontend Transport; Sat, 24 Apr 2021 11:15:36 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 48 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 08d0cec7-5d2f-4572-2009-08d907124915 X-MS-Exchange-SLBlob-MailProps: q+fD6XS3/UL2UDcFXhKBVDdW3S05RF0ZF5AWGEuf0z0CRf02cH/E+09OM7dbm6KTG81TV2XJi878SStxaNvMZEYjmCAomRKm0RGSG+qzB2fxmrobMzzrJWIIa+Xx3OfIUKVrybCBTlALqdZIiNguM0i4tiQ2UTGyEHRsnN87hIVzos106xp3c6mGD7tyPja7n6tpclbTaVA2wW4r3ZbGg2Gq8/+E3OyBWsbN8BLjYA8gVigLh9ifwxd4QuZda33drHqbL4fYsohykRDQy0ehcABvpfpDeHd7/THROFccr/eCsyVF7gBKUilICGmnt/kNT52av+SiszLlkF1/kMMqvA3rwm++HW9nkc2p86cJ+SMxG8UjDzdpjbaAxmMuKmjngSXtufS48JsX56b4IsJbFTnGD29QhifcYUrbD0uOE1HIgrBmy9kOFd/d3bqKMVHtwUD6X3zkB+WBLAgb/t2VccHJD1RflafbeT+tXBR4Zq/1PGmY0s0tI3GwocYS99SPk2RnpQhSku27AhoV5bYE/t+Y6PdWyAKnH2h4qvso8pde8/HIJYAw+eVa+Hvh2nUSy4PTI3mruYZsWdKry57Aor6BL+VLxbW+2PsR9bjp+X9t66MG2Bvq8RQLM1kPJvaO/9ax/AfHHTwGc708DxD0WOcWMiCnO4adHdDVYhZ+CNI5vYpwDG63GXlnUVP8/OHH+bCXxGEmkFDsiDjVaPlG5w== X-MS-TrafficTypeDiagnostic: HE1EUR04HT105: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: PIW2p3WJb/DAOfIbc/cEeZK4Rr6RvOqdrf9VKZJ4RkRXnlyqwZoxDm6BzLLUPb0EhcNzQUZhwIBWl5I7in28nfYfUMlkKSRo6NuRQ8QGJGsiQKcISz7rQG+kUGosFop0w8FJNjxaNPtEyhiI2nGoBCLGo1VWUql505kKaD5udKhqTXAIKr3kMMui39I1gR6SKtJ2p2Nwx/uGt6hNCy1Zq4SYe3Nd5TjS2YHLjlCxZMbNhJcDRtStsQrGNjnBXGW+BSfzAYtmfUCoDO76a2CEHU656hAXsXr5uwKPnMncWHToz1iuK4e6K97GkoaRKVJBmqkCBJUoL5v/zn23w+yWBJV8FpVZ5ew4pxRDKFZXvVxgtC7wI5Em76fAFMdG9JShd8twoUAstGGAteEVPyD3fw== X-MS-Exchange-AntiSpam-MessageData: irBUIPrmJv5RFYwFifXXKqaJxn344byD8f+jhVn+jDB6sE2T4wLUWmnAzwfbwpLjGKOVQC03ww3NzRieJwMFUi7wu4tHv0D5uCyUUvH+FQ+MC104vR48cgZ1fdCjWj/FUx1oAxuNyTpu255rzb1pAQ== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 08d0cec7-5d2f-4572-2009-08d907124915 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2021 11:15:36.8591 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: HE1EUR04FT042.eop-eur04.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1EUR04HT105 Subject: [FFmpeg-devel] [PATCH 12/14] avcodec/ffv1, ffv1dec: Store index of slice context 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: ieY2EHChiGk0 Content-Length: 2502 instead of searching the index again and again each time a slice is decoded. Signed-off-by: Andreas Rheinhardt --- libavcodec/ffv1.c | 3 ++- libavcodec/ffv1.h | 1 + libavcodec/ffv1dec.c | 8 +++----- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/libavcodec/ffv1.c b/libavcodec/ffv1.c index 47bb032876..8e7542f918 100644 --- a/libavcodec/ffv1.c +++ b/libavcodec/ffv1.c @@ -131,10 +131,11 @@ av_cold int ff_ffv1_init_slice_contexts(FFV1Context *f) if (!fs) goto memfail; - f->slice_context[i++] = fs; + f->slice_context[i] = fs; memcpy(fs, f, sizeof(*fs)); memset(fs->rc_stat2, 0, sizeof(fs->rc_stat2)); + fs->slice_index = i++; fs->slice_width = sxe - sxs; fs->slice_height = sye - sys; fs->slice_x = sxs; diff --git a/libavcodec/ffv1.h b/libavcodec/ffv1.h index f5ac8090bd..7f97b2c6f7 100644 --- a/libavcodec/ffv1.h +++ b/libavcodec/ffv1.h @@ -127,6 +127,7 @@ typedef struct FFV1Context { int quant_table_count; struct FFV1Context *slice_context[MAX_SLICES]; + int slice_index; int slice_count; int max_slice_count; int num_v_slices; diff --git a/libavcodec/ffv1dec.c b/libavcodec/ffv1dec.c index c16fc81927..060efc25ab 100644 --- a/libavcodec/ffv1dec.c +++ b/libavcodec/ffv1dec.c @@ -230,19 +230,17 @@ static int decode_slice(AVCodecContext *c, void *arg) int width, height, x, y, ret; const int ps = av_pix_fmt_desc_get(c->pix_fmt)->comp[0].step; AVFrame * const p = f->cur; - int i, si; + int i, si = fs->slice_index; - for( si=0; fs != f->slice_context[si]; si ++) - ; + av_assert1(si >= 0 && si < MAX_SLICES && f->slice_context[si] == fs); if(f->fsrc && !p->key_frame) ff_thread_await_progress(&f->last_picture, si, 0); if(f->fsrc && !p->key_frame) { FFV1Context *fssrc = f->fsrc->slice_context[si]; - FFV1Context *fsdst = f->slice_context[si]; + FFV1Context *fsdst = fs; av_assert1(fsdst->plane_count == fssrc->plane_count); - av_assert1(fsdst == fs); if (!p->key_frame) fsdst->slice_damaged |= fssrc->slice_damaged;