From patchwork Sun Oct 30 23:41:31 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 39053 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:8e01:b0:a3:a294:714c with SMTP id y1csp602714pzj; Sun, 30 Oct 2022 16:41:56 -0700 (PDT) X-Google-Smtp-Source: AMsMyM7lAGA518MEziyJEYUv83n67vi0xt/oQ0I3oZoir66lVSTjRIPBmf2KUyXGZIoQlzfpk6ux X-Received: by 2002:a50:d098:0:b0:462:e887:64ed with SMTP id v24-20020a50d098000000b00462e88764edmr11245660edd.198.1667173316691; Sun, 30 Oct 2022 16:41:56 -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 dz19-20020a0564021d5300b0045c2e7e5532si6240277edb.585.2022.10.30.16.41.56; Sun, 30 Oct 2022 16:41:56 -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=eXiIZDQ7; 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 82D7D68BD70; Mon, 31 Oct 2022 01:41:52 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05olkn2019.outbound.protection.outlook.com [40.92.91.19]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 644D868BD5B for ; Mon, 31 Oct 2022 01:41:46 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lBlHZVCsoPtMBnNVieJI1n3VsZlgFFRvZZiCYpBwi+k6NjaJ0djm/eDBy8rqp+m2cxF7veF5U5vSCvt1FkHYRLKhmD/jLJKK0nptvZ6RGSkb4zraLlX6olNRRDdhAOVRHQ6lcyz18tl0qFjw7vHZjJ7rs1CqaZwmBNK7vQB4Cv9TP0o3FawI6SAhkPWHYzVn8AtXafx+W7OYyAjH/E8mMu4svjS8f900Qub6Qxx2KcNWqss5zh3GSWQQpe2HpbgmwjjXjJ0ovhVMy6Oj6QxMDfofPHW3+A9Sxa0FBXl65EhCtbBX2/vogu0FMVXbul4JiG8sB9qsGsgshyFN+aev1g== 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=LoerbRKDVLfx2EXlLG2qK0IS5HwHUyd1G7dqafQsjCY=; b=LXVQLUVzmYjymeWzJOcnouco9hugT/qTQ6EU6L4uehHdIKiJmDWkb2Cjt7BTeYcs6R29dMb9yZWrV+B+hYf1WofBuGSQ0pZbg3pEaG+kQloelYpcR7eouNLUlsIiUWQpWVtpCQuzEXzWjbl2W44VFfOKW5RetNU+Hw7+2Onxyi7oYy/9TxtcdPuXJKf7E9v4LG0Yt22YjHDt9LlVs7ihQSfecMWk2uTsaBxI+OM+yspmM1KaWGhW8qB7UsJVlYnSg3dtxMWKf8AYZlQkO8/IoOV2uMAyVpuVzpzSHawgwd/aXSxu82q7IG2e2882sRqmBnK7EI5pcfzJW/DWHMsRvg== 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=LoerbRKDVLfx2EXlLG2qK0IS5HwHUyd1G7dqafQsjCY=; b=eXiIZDQ7oS5JhaTJXz82+PNjYwkLcElzMy/pc1zgtkJeT9R2aApz4MOk5ZD1PdKLtOi6TjPIy3daXZbNVho14J43irK8aDO3BIl0lkloqkaiGty0zq79pEYvfNbxpB/62hJnPpUzSQyAZLrYTVd6ygz1xfnX18HrEu91zw/0o8+bwGJbPLPqNaZqnDjW2GUWB6g2rYpwo31egBXQEWVHECL4E9AgCYKCsK7etxMLQV/QsPVNAcD2IvlRT7Oz8Ac5/tKjW8sL0PfP9kduRIMLY0QGiKv82gC85O9FOYlbHXD+kmDUEuh4666c9mLpJhEzJFND2s00SWr0U0FLrDEFWA== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by DU2P250MB0351.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:27c::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.15; Sun, 30 Oct 2022 23:41:44 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::739a:8740:19c5:925c]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::739a:8740:19c5:925c%5]) with mapi id 15.20.5769.019; Sun, 30 Oct 2022 23:41:44 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 31 Oct 2022 00:41:31 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 X-TMN: [2o7KuqcDUyikkGNf8PgX1S/XMZaHlqOMIB4VGaXFK8I=] X-ClientProxiedBy: FR0P281CA0148.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:96::9) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20221030234149.10868-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|DU2P250MB0351:EE_ X-MS-Office365-Filtering-Correlation-Id: 03efb459-c4c1-4868-39fa-08dabad04d37 X-MS-Exchange-SLBlob-MailProps: ZILSnhm0P3nN7ksDdJHhaFM91iprChLhiCTmUit7X8ZZPvuCD1N27RFJIfvnYAuWI9PsgWGQEoGmxLdF4zwrywmbC8GtcT13n+gJNqSlMG2DCYD+eNJC4lvK9yT+qWBmHUs1F9R7eYZuuwK7boC/5rza6yGu6GO6p+jMhgyyqTpK6xx2wvN21oLE/VrUSSZVsV91bpblrbIlq9dOsjHaz21Di5yVzkMFLc+sW8s7krVyHyvU7UJz9ODoehMh1z2wqzzJ/dKqYmqdtQ1kb/LuHJSHxw8D9XpmB0YzmtHSI7wh3jnxIBfgjt1CwBBCAe0mgxuHpxBM4HBEIuUWMpJbcmB1fBz5JSwnLrSUNc+RJ8OfW+QdO0hUZ+UDirI3NQgkk4OqK03CPId+hMmvg6dgVClvEPlNjJNYEqWfUUQKJbtSFLfqpEDN5BAzhoykagky0Pen1D0MERtlAi1NdOvtFVvUi6KcGDb38I4MFej3fX25qxAxi6cOYrync1oPOnlQ4cSJzWbkwB3fiNIlCNc1LYq6h8Lq5HXCoGR2lG7j2MHs9Tt6hTJH5gDGOx5LRVNp8ShWnkpuS1v3BFHYG1790yw+7MgRKFej5vLKLyS3V8dEBv/jLG8T7oLHSt26bwHGW7ZYbBBTR5xbC/mBW6nnKnXORYIahJ7PdC1ARu0pobjbHey8NoBt2lpmbc1YF/72d0oiMZSLTuVQS5ZONFnD3Mm2C1fmj6jVTXqO15wE6KqUX1gu7EG9mOIxae6jpCSAfL8X7r/RNqR2tDTT9qEFTbXjYdkycgNb X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: dKQnyJO1rZvMd0jUoUN67faUpurHKeG8k4lqe7FyrspITmsuUWqaeOL9Ncv3dLFAs1yvketnHfGguA9fJKhAx9JxLzZp2BcUnFkL8e03kEC9vL00atValCAKT3o8g9jh6Ok85ATCoQyYhBQgoUNLEXIE5cl2jtP9cPiYEWBlS/HcbTX0jO3bqNMHoLAGp9WaqJbgR86B5GGBksps77kQhlbaRbLjdz7Dxsj9RItglPI8F5CEcf40uzS0bvZpbRjuTlCvmSiYL0zdOEzL07u04Q8KmaReF3K0+ddzQfVkejmphI1P0M/aHGTr5kwqpv37nw3lkMmUKh/4KlAH8vMZ2FL6yYycrC8kDHX0r8zZ4KNbCm/8z//rJRzK94yWrK2iXiJI6Zb7L/Iysd8R6oHycJ7EnjHFEObr8Bc/KvRNUdCQTaV3spQbLn9Rfg+rITw5ZMawAxP8ZWRo9bk+ZN93r0SvmjBDMCOCvcAlSAKYEtoITJThLH+pC2O9vXfCm2mnRSqKsWDav0Lk4S1/QZaazi/g/2+Qj3tFHYYDaHS05iSaFZFcJ7mU6F+IrWzzdloyz1kv0rHf4ovbMZ28GAK3MxzQPygKehGBvlQeesk925zwjV/rkBvUtWfDzJI9rwAjvJEzr9M1U7f2tl40zRqLaOsUjipO3vDERQyQyR5PBg4rT2qfiyn/IMzrV3v2Py92 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: nN1XLIoFB4NXInYXO1s9KkOSv8F9f1+iND7RONcJN6eIp9xdvOzmCTi8vgy2uPBV/aIGnxvjvab5UU6M1jZCuYfZ0yhr2SGBmpmQTXE6zInINUnPxzlUa3CqcSsC6IOjZQMoSyaS1z9in1IoL/stbAs+jornsR7KMVixBSKR9WqgYdL/ZiLIABlmDzQh4lftoULh7Zg2f/mIva0393WevSFHFpNy5yrlgZ4JHaRcHvYwY4TJiLTPIqKlWN+K9ENJLsRe3EwB2SPJn2vIn8zwnNulaPane/SsRojN/8n8rHZ2FcEildLUteHUYq1js7fv7vsOdztLbSDu0wdFo/bBQfam74O3DRGNLmwOQw82BxAq+DDZOxVFHcgRoUkj/z7h24IbGXHMMIw2L5yWHWam9wVlOSP8/0q0LGWmf0hPfMFJ14otegkuMMN88OyK6ztItZtrEcCSPP8Nz93O5peVq7+KEZC4+BryA/GqeyxejjLOtmXwIps3JrckZ1XT/sS7nvG0JSLO4bPszlpRjEBjB/M7ATYCctOjgaXkjlcTYc+f6fksnabwGqBjyJc+Yx9h5XqFSwfmf2SRtg4GzXPeEQr8nY0KNp8H6dJlttkil2pnaqhhqP40LpXPQvrIX+VfUtKbUFC1TBuTEIRiTLW70xtb2jgVlaZcEWh7ga70j+OnLZncSwTQ7w0R1vuTQxdEf60lBEnwpxt876WrT5fmlNORDWBSPyKWC8FY+/MFdtIjLORokxV/FpI8JI46DLLwS2wbU9uq4cMAZN1sVAcbPyw0FGLMK0U7OekV4YSucNBuyBUCi1vMImJcSW1OoAP6LLGvxYmUDOUnnwSQfZNRRSncvhLOD8reMNeWAZQ2zx5JdJEvNqkRyukw9Q+nwgzw7y79q+RORgp+a2Jp8qH0aWZNxEoBqZtygXiKKK3b47oXS4h43jhkQd70tyNVfoEPAFvmkzUjT/TBtvHyMP72Ld31VMCuScN10zs8ZJNIMO03dZPWQCVr2me0jrCJBVy8MrOYruEBBqIKL0apNx29OKNh8i4hGREumnnYD4ZGXdoLLzH5YSiRDShWYVwMlfMiZ7G+SrVGiRQfip2x4fEOIEpK4jsbdGguG0/43PCPnuAgwL0lJcIVOA5gEOj5mnbmexwL2vHPIznXMsRiqCgmLketKxP0RXebhwlnJkpEv2Fe7sMOCFrgA/I3o/x1c0W4Brq7Ox1VJ6x/WPY9fovLEYJOIptlKDFGLYvtLG5Yb7YH8QBBt80nSWNk7BiSB6m9vBvurU8FizIsYGeB19Ke1STLrOpdYU/V5wi4kVJjNjay52EyVq3GvLiqe2+wJ7PM X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 03efb459-c4c1-4868-39fa-08dabad04d37 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Oct 2022 23:41:44.1055 (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: DU2P250MB0351 Subject: [FFmpeg-devel] [PATCH 01/19] avcodec/vc1: Don't check for AVCodecContext.codec 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: lt8m+Qg78Mxd This check has been added in c617bed34f39a122ab1f89581ddce9cc63885383, merging ee769c6a7c1d4ec6560f5e5a6f457b770b10fb33 to fix a possible segfault if AVCodecContext.codec is not set as it may be during parsing. While this fixes the segfault, it has the unfortunate side effect that it makes the output of the parser dependent on whether a decoder is set (and ultimately available). The fix later applied in 5d2be71b9ecf2a88752666a2c4039f4d98419d35 does not have this downside and makes checking AVCodecContext.codec superfluous. So remove this check. Signed-off-by: Andreas Rheinhardt --- libavcodec/vc1.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/libavcodec/vc1.c b/libavcodec/vc1.c index c9257b290f..f6de8b9e75 100644 --- a/libavcodec/vc1.c +++ b/libavcodec/vc1.c @@ -632,8 +632,6 @@ int ff_vc1_parse_frame_header(VC1Context *v, GetBitContext* gb) v->fcm = PROGRESSIVE; if (v->finterpflag) v->interpfrm = get_bits1(gb); - if (!v->s.avctx->codec) - return -1; if (v->s.avctx->codec_id == AV_CODEC_ID_MSS2) v->respic = v->rangered = From patchwork Sun Oct 30 23:56:14 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 39054 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:8e01:b0:a3:a294:714c with SMTP id y1csp607119pzj; Sun, 30 Oct 2022 16:56:38 -0700 (PDT) X-Google-Smtp-Source: AMsMyM6cffL4mB3Pc5RBKPCHnwhxq8fsk8LMEYhCc843xx5D3dIAbfixBLQ3Mne9/NudZU9+Nq3U X-Received: by 2002:a17:906:9be5:b0:7ad:d0be:3467 with SMTP id de37-20020a1709069be500b007add0be3467mr2797106ejc.208.1667174198119; Sun, 30 Oct 2022 16:56:38 -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 h20-20020a170906111400b0078dad5e8d65si4767951eja.68.2022.10.30.16.56.37; Sun, 30 Oct 2022 16:56:38 -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="d/hXvSf3"; 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 C595068BD72; Mon, 31 Oct 2022 01:56:34 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05olkn2043.outbound.protection.outlook.com [40.92.91.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B95ED68BBDD for ; Mon, 31 Oct 2022 01:56:28 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JPBTjrnlSmUJO0vcp69it9AOwGJugauT57QSwMR+TAjvu9NTYdbqzDqwl0BaYGx/qgFMpR2hLrM1PvWFK+CGQwCOWlx36xa1jByiKelLkhCYYJK/MaaECPIrrVM3UVN7Z3A8twtNwd9VScj8Unk7mjjmSPflXHiLBMQpFvL75k7pPq3wewPCmO1JDA+jDeeNorOEiwzsXoA+gxUeCJ2HyCjqvhnqq5sWVYUToaZe+fesQpoGj5geZJSRsJOwxQ+BstcnMLWZRPvbjlOYQt8irtB5ESYPy3Oo6lfySSh4IgEZdZ1Z2kvd6vv/eH5ayj2t3spFlkHhfGDamz6GmiODXg== 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=cQyj+ao6RvsWbzy2E4QIaDRfQniQ0hwBDh+UX2J21aE=; b=BytvBsJi7Zp0axZf1mFULaTZ3oPLYf7Ulcg6enAnsPRZUwrgN1jM7qTAaWdl1TPt0kIXxfczEMYDmOCXi2xxoS81OlOlsi76v9fAPLYyzlUzh8VJsdjB07Ybzgb2noV9m/nqxPybCP8Jvyx2FMl0EvDhIbY2+3rZ3WAaJNFU3ptEI/7Px+unaNVPbJSgwM7q1b3qfiorQCgliNgzU3BZagA5B42NjOS5l7v0Shm+UbmtRhq3ElioaraKY5UyaPbGoh4AfTaN2f6urRSQ/8YeyUrhQwSF6kLdjlaH6fMGMp4ITm6NWYqYC+3P0B8H0b5Tm0j3rH2xuPe5JGvm1blWdw== 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=cQyj+ao6RvsWbzy2E4QIaDRfQniQ0hwBDh+UX2J21aE=; b=d/hXvSf3fulDwpc3xIQVDdEqbZJYgQm6WS5LJmTkfpb2CMIsiNfv2PDF0s1iLqPcbHs5rJn2KcYg+f6KUqp9lyibMMciPDsacGETCWE1EyvMgVctNCvP+tGZWwIuSHbQw3KDa/z8jk/v6LSMcZPc9FerNzxJ7GeJTj435pXWBQrTIUjUR6BneNwZCB+AHgg6FrydMvZi6LKBlj6Eyt1GxwUtzoILXYJIs6lMcWtGoFN18WtlkLJGieWukTdYW0GF/8L8+NEANVYMlJaJ1LCfiWUgShPGZHQT9EY8ICz/MFlMwffSEh6Cpw9gvX6C+sWpsH6ktgrZ7EEITkFVotRkUw== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by GV1P250MB0857.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:97::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.19; Sun, 30 Oct 2022 23:56:27 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::739a:8740:19c5:925c]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::739a:8740:19c5:925c%5]) with mapi id 15.20.5769.019; Sun, 30 Oct 2022 23:56:26 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 31 Oct 2022 00:56:14 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [yQOFhAWbpnmMjHas64zVEMTJlLawHVVW+22bqvOUP+M=] X-ClientProxiedBy: FR0P281CA0146.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:96::20) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20221030235631.11750-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|GV1P250MB0857:EE_ X-MS-Office365-Filtering-Correlation-Id: 4a81e046-381c-4831-1efd-08dabad25b73 X-MS-Exchange-SLBlob-MailProps: EgT5Wr3QDKxn/FJXV9AifVAmfFjhXa5ItNophVVmDMFunLjHnAOQ3NRNaOFeiqUiqRy1FBUqx6MQrq9WhlODlHqZ38ti90vO908MZDdS4CXGey1/xA/jsH/waPuNFj8FkvihZtX6qFrD6tKWQtCxxqG9vZ86jZJSsStcBb8EpDK5VnyL7DxBHIkIjlatOxmvfrH7iG2xh6YZNM+z/GLBtkaKpWsAk+YbLBcMGZa5v6oKix5y/H/A6/SL+gOMEk/IiPmYfl/RLu8LYvaADzFv8F5SfCgnQsgE9r4C3e9rKDZhmM57j8uR/cs0vMZ9ndN+aPmyl9ITjZWsR4J4YXm5O/5s/4hzSd6jqq0+1Ogbdn59NvGRvlAdQQeFofgdV82ngTf4gQfEDrXQIE7y3r9ojJM0JSDXWwDjAACPzoKb+/Ts0pjK2OZ0X9pC44+chd0eArL+ZnNDnwnFAg4NA/FMb76f/t4sgw0+AdA65uzAE+MK1YHOYSiNgBiSwhyRV9y10ac5YAwBqcfy38qq4Uggrrmnu2n2GcsABe8HklErY8Mc55wcmlLURnJym/vhOgDU96N8SAn0SuaVKifGtir2PqigbqgH2QuiehffSK268CsvKcM/SARyt7eau+DeiiiMyeZJKLdKesFCK17769A0vXnwbqQJUx0GzIGsrskrtj+YKKq7R0BX0YEDCZpXnTDBLV3qTlExuF+P8OASra/Obtgl/gZ7e8/joVzSFJ+mTLU= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: QaTHyJ5g86ia6PgP5l69oPV7eZMeBCzr0XJoAgJWgdMxQ0YpKVxlRKebV1eNE6Wbg1vMW9ixBaZIHUFJxtfbK8/i/IcUEK/2G+Vi9wZE89f7e45v7cx49dFsW9XGKEZkesxL5eVJLR0gy7OVdsPbiHoumeRFt7jGJNonYZomoxiBn4iF8VW14wEL2GPSN9FgcblsYCL7anUqylk/omt6oFCQKls0+zx7Ph2sdd749T69IMrhPCjKl9LWSckPW7blUAhfjsV9hhzmkwEspVbfCEMOoQG2SDjamTw2cbQlvddOCtCOPt1Uz8webZ/4PTphxs5U0zVjEOPFOvJN20hUqy7jxgqJbLZuezQXVaNmLLZf96tUam+M+tO0I/5qi3+pRIExD+jQ3yAEduazGQFFl5TZ8YF5nwbL+tTi7TiL/Aevx843qkwgZzRHmN4tsbUbkdiRxzn/iVnxnrD48/nkObWXGYpi9qD/32er61SgUyjzbaM7tGZGcOHbTVq34F2lKHiCH5V1RIGGPo8pH/PyVFIpCOPfWcuwFGzqnID8wqGDhufLpMhTlEj9EPxKGoNiWhVx9ASTih3RsmNtTDE/2MXPSXLgYIUnZ8PeVWffq9O8Tz9uw8Fhl1mRszHaL2kP0iSu9C24/4Uh+rq9lmNHSuca/4hC9QShbLGA7b+hAJ83vMWgETr9sI6Wh/Yt07/4 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: k9ivIZ0LD/J+AJwx0WTYVxhDx/whzHMuzv4I1UF8H4T6zQY0zy9lLYSVfZUanC0LK7U4rWda9x9KPDAosT4Q/GbWYYMrsH2lX+SKViWurInsy4Rv8KSp5APUjG/ibCL5LOjVpHN1seCZ8bHWTaQkJc1Vo4iZhfqNNaSLGvO/YEUBTGzJ9vQRAW7UTQZf/h6My208kPW9eRAvhg900Cejg60SwhBej5/ELqOHAC3rSC2/idg5EAFwfwyz+ylhH05D4uxXmW1G3mLgfxzrDvkJKQ8h+0kBl52Tj366ZG8xNo9QtYuZAPPf9DGXO3mrFZGyhetB0hZ0nW+UDdkGgWBIrE2U/WiP/5iASRlbTQ3iF+zIAkeJrPSB+tcs6cPvo6sfoRivqQ0gPmxncN9if0oYUPFtrc7QdoU1u6finqeLOwFWIkIVxXBtV7Nt9QYitLsHKMxqrosy8cvazgliMm25KQSuNcWgvD8sd7i0zZFj50GyK/FShjFyu2qNdR8pD5O/EoFddO4NNb2pOMS1sKDJiDpCh5hs6D3nLTMvAv4SerlkFASvnFr33/BggykF/f1OdnrOUpcZavLWAU0VNjeBhYHT+Gt4GZFe3T2hGWQEsvZpMDYRKsRlItSoxt1a4jJY6GvUMdaGhSjm+8GMfE3WpO7Lp4x3T5eXawGLtgvz0NrxphADVsBn8UGeVeut8jWYrZECU9LGJrfgqrUeq+k4FiTvBU1RJJL5MqrdppuUassCHlJoAUha3PiAdBz/Jr8n7AVeg4Bpa2PVcd8K+KjJ2RX5q0JtEawvNjjqfSdcJbVlshBb6jj2g2r23V7NbHVH9MUvDglURBqiOvxbSfnSIC23aV44gErZ4+pvRC4MuZRKfudqPRXE28BzO+qATgfUMa71Om53Bt93TBh9P1vBs6CpJajYTVGUEK4OngddJylrKbt737K0F+Nm2m2D0PWpeM2u/5UjTQKzf/ZeBhbiqv/Ka4PlUDStbCL/H8ydAK/CrPyBSTezhunBpft2XI1S0FS8KkzY3exmoBHvAfxae5fV5EnzChXhGRE12Y4Ak93t7fKbeUM+oyAgtVZ1ZvuqwP+cMQD+gmnBRc9bEeHentehG6zu6SCs0nhdl+CK0WbMNN1ZNOkq9GueCQBrha/p5n1XhONSOY/Xx04JSlCjWu/1zjlv/b3i8hHlEoHkN5KBxk1rMDNezwAv3L6Ir0lnMvX2zxvoyvDZqgZY8TjscjVTLmaQbtI3ncOaSrSr0+/GwB3S0q+CQr4t4IhQSl9+uCASeFmbl3FcBCAz74jJJWBaC/vINHhrUGd2NbDg0Pa2KuBOEXT75hynXKSDovfb X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4a81e046-381c-4831-1efd-08dabad25b73 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Oct 2022 23:56:26.8547 (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: GV1P250MB0857 Subject: [FFmpeg-devel] [PATCH 02/19] avcodec/vc1: Remove always-false check 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: PLcqm/WLMyAw Added in b50be4e38dc83389925dc14f24fa11e660d32197; this check was racy back then (as the VLC could be initialized concurrently) and it is redundant (always-false) since commit c742ab4e81bb9dcabfdab006d6b8b09a5808c4ce. Signed-off-by: Andreas Rheinhardt --- libavcodec/vc1.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/libavcodec/vc1.c b/libavcodec/vc1.c index f6de8b9e75..cacb66b15b 100644 --- a/libavcodec/vc1.c +++ b/libavcodec/vc1.c @@ -933,8 +933,6 @@ int ff_vc1_parse_frame_header_adv(VC1Context *v, GetBitContext* gb) v->rnd = get_bits1(gb); if (v->interlace) v->uvsamp = get_bits1(gb); - if(!ff_vc1_bfraction_vlc.table) - return 0; //parsing only, vlc tables havnt been allocated if (v->field_mode) { if (!v->refdist_flag) v->refdist = 0; From patchwork Sun Oct 30 23:56:15 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 39055 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:8e01:b0:a3:a294:714c with SMTP id y1csp607162pzj; Sun, 30 Oct 2022 16:56:46 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4Zg3pLR9DWNr0HevZ+3FlcX5mrnDc/LAziw6yOEuaZn1o0e6s9UsJUN7k2/7JsNn8kDV6M X-Received: by 2002:a17:907:7b95:b0:731:113a:d7a2 with SMTP id ne21-20020a1709077b9500b00731113ad7a2mr9888944ejc.377.1667174205974; Sun, 30 Oct 2022 16:56:45 -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 hc30-20020a170907169e00b00780e89ce0b0si6264250ejc.600.2022.10.30.16.56.45; Sun, 30 Oct 2022 16:56:45 -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=E8m9YZa8; 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 DF74268BD81; Mon, 31 Oct 2022 01:56:39 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05olkn2043.outbound.protection.outlook.com [40.92.91.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D903468BD60 for ; Mon, 31 Oct 2022 01:56:33 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YpTKmnDwfU9RYTgUp5fzXue+jUgl9fVouKbl+KEyl8sDMzeYryrWl4+T2zgoQQXNuGEb3Gj0I7IF1EBRItDrMuus6ZGmGcipDzmS0jZAN1k5gz0218QCfht80MAKbM1NEcuDnODH1CuLOUalq8JWvGm+BD7zpcG3JIp/nVt6VD2oIzrb6DJu/WMJkgCoG0gAkDNaB8KklCXr85S/6DySIbABUrvqYTp1R22K9a/Udah9wEYeBlJOXYDvtkVXAJsjP+htHPj364p3g89wsI3d2nfX88umDZAndnub3wzyf9c0apN9/nzuPJ93IJVUg53YD9u8uQTFBid1lwC+UzNZCg== 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=h3deaK5UfPFDhrJFW4htC0k8kORpCesxS7FN1jGm9Kg=; b=Zwmmvo9vx+wTes4nzOCWeuKST8a6Aps0XdRd5MeFmZwZBQFCXDR6+t0KitwQSIkEJ6nAGNNvKYZZXkgMSgGfKa3435O34SMA1hTLDhi7qIVQpChFTjG5BJ6Fv6wi0xvJ7SzzQIPCMC/lLtzZNa3E8aWYs00r5JEpTbobxUFvoNRkx4FJTs44VFG9Xt9PV8sB+E/UTm089lnvl5M3FERl3mM3INXR4JFZ+Cn02WaUSwHxrDboLlPxa1Ln1bCauO7Ga3styMl33rjvMDNbkf9TJnXctBvRo10L9zj1uJYgM17gPNWwRpQtmp7Rvm/FP6e9zKqX6q9qnJkLKLeOHoaUBQ== 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=h3deaK5UfPFDhrJFW4htC0k8kORpCesxS7FN1jGm9Kg=; b=E8m9YZa88TaIK9c+hdzIuXmzpKQ1g+0XC8E4NGYc4eOtAOgl9vpN/GU/C5EWEVt+hg/lACmgxfItyFt1bYh/yMOPlCujdtCb4ajjtakseZoAFFrsNqLfRMl8P221cuM3yAbBXiDEgdbBOpCYgvi/nWw2l8v7dl0oqk3OjFCuIQ7amfxYy4OqXntf+Xbuwqc3jzMx0df8CGu+AU4Ydxv50NaLqQqgOr3TBzz//+ABCjD6Hn230nuS0WZhvFPuj32sR1HdpeE4wgHSLxIxFF3t8kjnkVc1w8K5ufofE+FUH/V2AiroEGY38Beg0cfzERoHe3/ulxNSkDdT/G4Llg6xLA== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by GV1P250MB0857.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:97::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.19; Sun, 30 Oct 2022 23:56:29 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::739a:8740:19c5:925c]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::739a:8740:19c5:925c%5]) with mapi id 15.20.5769.019; Sun, 30 Oct 2022 23:56:29 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 31 Oct 2022 00:56:15 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [LDJchk2zraje4izyR9aYvdNWW/zUWK/KiDP9eh7FCMg=] X-ClientProxiedBy: FR0P281CA0146.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:96::20) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20221030235631.11750-2-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|GV1P250MB0857:EE_ X-MS-Office365-Filtering-Correlation-Id: 767fa27d-0fd0-47cb-429f-08dabad25ceb X-MS-Exchange-SLBlob-MailProps: AZnQBsB9XmqZLd1X3toBDX9YZ7dpDxvLSPTcEbw32eGmN3VXn5dZHDxCwPfwnsqR8jk/tCnbuNJ0ecJbCUX9rg4jrXeHGn+s5HeC0OBQXgnwnoZ6i/lFIWjeWu02wtJcg3PHOVSubgB97yYkrFNqQNtceFSgVhr6WPxTBCC+bk8cTRLVY8TvwY6DNKonSuu6t0yPfLYkTliW3iBNAS4uZ6amNgynubpTigOsLh0KaAjr7K+dYig9TFjvyI0DJzaVm4zhUcoJ01QjgDfPwLyhC21STedU4NE+91Sq7BEPpZ1Yi/1/21aNunRh9GOLxQOSEgt6v//nbn50ECxsldQU4qqjjnRYY3rARhBwN3FBOjSZ5oWYXW14O/dRFEpnOmhn4sx15IQYphfxCqeESpTAkYURHtfahwotALOwigg7CdjJeB32+PjXqxQe1FxL8TzcGrcY9s5zIGGGxiroFyX1HNtPNr3T3aDghAiuwvUxPFRcfNQC2asyLGSt/QeiHuY7tJF8tKDj3pxRw/W/xpHxc1OAe7VQsh/Wv0dryVHwCp9ejWxs/9WszuoJZUFn2Ru5Dr0iJ3uV+vBBLK3eryb0trfXPY9ds+YoZsYeS5YMJd3WvvZZfNwhzdRxKUymj6ThtjnquvB2ooWGfjajFQu42PiyFxWu7Mt5IYbMCzfzFs80oAUtRHADQ44XtRcmSEiltlPUcQ9psP1qiVg/Nt/SAHmSusDgohYvMhpZDeqMFsVbRYzP7PRx4fYEZituFjxSf3kNIlFQkI0= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Bjd7YLa4YgY0t+OsdrZ+lcjhBNBbD+IKFW4fqyQP3Ag1zpT0XQE4cvkAEQ7nqbTtkd23EPnNEdRpiL8HZq/37QeBI94BBa/cKKFRInVmy0EWNat53UDMfMvOT+sx1LnnXJjb45n2COc+tk+Wl48Lz0M+xRDZaUhFCoe+5i7K3JmUJ6GG7FBy2tJJIrw5PqEs6ETvlR6h1NmyIFp6biIYjouVsiHSqVCSSEHixuOPVQ6OwuaWhskXERhiK2g/hLdvmGD2TwdyGPHN6/+dGL5CtkJaa8J4c93QE3lJSU1j+T55Pmdt+nOEP22dCTVHB1iUP1LpOv/fSBnUe/AuP6OWj8r3a74hOHkljtz21oHsvMNeLYD8VK6mgzUvSdJr6zRA+H5ds2i3Vx1ghlwgzlSAHh61/iwNL5Hma3l/UDMmXnYeJf2Z2GmmsWRiEk11HBkqOkZlAE2lB0Ssbo+2iurJSPvL2bpvFAvTzQd4NbrhwNDFWnfYADcE4pZgZ6nc8ramMv1kuUc6b8/lWgBpRAzwkuF/+9sb2aUKHGSji/OqVboKrYok2t28AgATzlDpOpzEdtep9BZL04UaxVK0ei1dGBxwy6uWJiYPTlBJcIuljSh8Og6H2/qdNnw136owbtGv9xBUp+YjHBIrEaQNqLvV9oJnJzj/gJs3y7ZNaLpXmPjS3/UoaUIRgzlPwz62nZAU X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: QHXBpvbBxfJjkGygkFs8QQg8OQynub7s9p4xFh+Z/BY6U0N9DnbeYedAR/0KtHmuzHhgMcCQZJM8yLVzSWv0bKtPj0SlPNkP6Ftrqc5+gv3m/4jtTUZn04Jcyjq/vgurCCcWMXvwOWlJnHqLmHN/2lo3Xl6UJrFzG1h9NPioNuJcofuh7VLgIH4fp/P+fCbdbOAMHWK2E3mjnXli5pkLRl+FjDE4Olm9AohwAl2+P1eYZ47MYzYqtNhgtZIKIWo7ke2M3l9KMmV8kjNnzL0oNSdEtyK4tKUQiS8jfo31A1eAZKCV0x2r0L9NUAgTrY3QTBHlBDAJkLiHuUGFbtAw351YDX+S2KQJhJPExDRK1U+NT1ktp37RolVAw9pPHFtjcQfil9v3EFLTyW4+qAdYR/DYvzoQInaljLMWRpv8jMKBqnU2EKNLorMl2ryB9sxuHpo9y1hfRSYMghVNtx8QQ0OL/E2dgxLKxgTOzbdF3Ffj1pWEuGVu1aYlF8XqCe6u2QjquTcE91FNuuBv1yuvjrTpxFRTZLd0XELLAdWiqUnGrNOmb0mMP1n6tOhCc0n6imFA3Sz9CTwzPZ81pAVtiW9mfT3D9ZNv2rQYIZ30+mYcRbASZZjhiJdOa5RYEC8rTmcsypBda/vrh/5oJnTOsywEkVxr7qJNBHt1qEs4MbQa6mjbiRjPUwHjls3nqOUeIDGdyXJWSpsuBq91FEiTuVPGb7X3JcPQrYI+rCc+Z/IrvwPWch/0nMWylolU9rcjVoNUcNYaQWTpPFODmGyfIU50qK7emyZvhvGLNjDYi3EKs1K9kZEVGKo0diNfK1ZH1g2pU3TPMj2gy4qekTkT4btlSSPRg//RqzngPWm7+ywzFXugm9K4zVl9U+Whr6d/cF9jeghM/7pRxxqiocVJNTE4ZjfhpRtiFmqLe7601LHW0Z5LpTzhfpK02GuAOAu6MHdIeKr2Wh+PJMaobogCpnfqhwIUhMLhxU473e8dDXLtjOIz6lgunPFHNdVoG9ge80vGLFitd8WnUSbJl9pUq3tYZgJVDaZYF+vVz9GbO0MA8jy26AthZhn4mbZHOp4h8XZfnBrD9h1GqdSHuCghgXUyXQoLJQOnORqhTXrP3q06Hhcyh5vTciqynJejH55WI5HHwxy3yNetj8cl4VPVIAS0GQmrIaazQlQ4FH/Tyt382Wz9FoFnHBzanCbY8GJOg4G8YUxP3p9vVc4D+MVA+mxy8+3T1SMops8CX8SUvQoWQNm92FSW5okz5ZWAl1wZ77yAgjNDJljYJgcAlf75sNbzKY05eE9qOWpCk47UkkI= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 767fa27d-0fd0-47cb-429f-08dabad25ceb X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Oct 2022 23:56:29.3353 (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: GV1P250MB0857 Subject: [FFmpeg-devel] [PATCH 03/19] avcodec/vc1: Don't check for errors for complete VLC 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: fmeedeJ/ZnVu Signed-off-by: Andreas Rheinhardt --- libavcodec/vc1.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/vc1.c b/libavcodec/vc1.c index cacb66b15b..9b4e951baa 100644 --- a/libavcodec/vc1.c +++ b/libavcodec/vc1.c @@ -615,7 +615,7 @@ static void rotate_luts(VC1Context *v) static int read_bfraction(VC1Context *v, GetBitContext* gb) { int bfraction_lut_index = get_vlc2(gb, ff_vc1_bfraction_vlc.table, VC1_BFRACTION_VLC_BITS, 1); - if (bfraction_lut_index == 21 || bfraction_lut_index < 0) { + if (bfraction_lut_index == 21) { av_log(v->s.avctx, AV_LOG_ERROR, "bfraction invalid\n"); return AVERROR_INVALIDDATA; } From patchwork Sun Oct 30 23:56:16 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 39056 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:8e01:b0:a3:a294:714c with SMTP id y1csp607201pzj; Sun, 30 Oct 2022 16:56:53 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5FDUJd0fBXRH7p6yPfs5Yp5pxHXdbwdm7AMTVy4Jrahi+WOBUSP+YILCNSr2inp8oPireL X-Received: by 2002:a50:d5d5:0:b0:461:a30b:67a2 with SMTP id g21-20020a50d5d5000000b00461a30b67a2mr11133223edj.104.1667174213699; Sun, 30 Oct 2022 16:56:53 -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 j27-20020a170906279b00b00791bcf8aa61si4345754ejc.505.2022.10.30.16.56.53; Sun, 30 Oct 2022 16:56:53 -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=Mxiw5kWd; 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 E67B368BD8A; Mon, 31 Oct 2022 01:56:44 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05olkn2043.outbound.protection.outlook.com [40.92.91.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 04A5E68BD60 for ; Mon, 31 Oct 2022 01:56:39 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=M637GZ4wTW2pGVCrLkn3DuGaLF6HrJ9OuWjuHZDIQV0W3xqhxWt2zxWdJHXtI8oWGuC6W9zEsk2IjK5B6bN249TERmDSsNMYRd3gaCdUFBxgqFpU26UOeP8h9vgSmKEYMU/AJviixR9l8wxlPhB+WFGFtAauVX0TVvkCtp+EiI6ABi1FOpcPM88DyP21D39c+zcI8UEP4IxxgvSV4SQXvhYxuPP+lX/Y+7Y5i8iF2bxvi8vcHQY0fDS/m/pQ0POyV8Xpc5aY1JgnAivlKBrnWrMaUKBta7Wn6AiQDsgYC6RTnze7XUJEcl/IU4Hi3GGThLsa62tUmC4AhFGEsT4UJA== 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=N2UeoqIWcOWyrkU81xHBoslBf1cDV1XU1QqipqQi3Pc=; b=lKVoP8YzgW/oFzsVTvz+KSKmIzmT5yyQVrwU1Vd7add8H1G7t966mwujr295EhsNzl+2cWxT3W825/av4VTRMLiVfVGuZxjcv/HgXj236HT/UuLSOaH73S3RVYRkRvF0+PdNpv2lYxGqKiwDNCtk2qDExnPamxelZrtmZP8bix+McW84C/9gk/BZe5JwR3YGHXSktqE6oYmu8gavPzmZ8PmWEU/0Nsb56v4cJ32UtWAo6nx8Nmj8txewgaJszjpRTKZpsYZwR+dsZAqGCLFWnsxitJ9EmUDJWlX+qsND8PdW3YgADpLTYBkf9WUPnL5SA+F/tiin7WijCBc8OocnFw== 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=N2UeoqIWcOWyrkU81xHBoslBf1cDV1XU1QqipqQi3Pc=; b=Mxiw5kWdzBLzsUWI87D10w5urvjEHJQX2bZ2K2YTO2xZ6QZH+7m88nWnb+dE4fZf2X2W9JCHP1CPVmnHBF+35onfI6vgp3fZ2FMJkFMdV94T28iYYbUZpAxBO9J4d7c1BQdDaYzmT4miA4PA3FVgYk6jy9PlArnnuYLE/Vt8Qgkd56e0sPwMosjlwGfSi3F9tmH2Q1rRDEhT7RoXP1opTj79LUOEUqgxH3pLfIdx42H80379mEsi3zLu0GHJA47SxDU4+f6nR8CrExXwwYE1YbnjWwO6B5L4U7o5TlytcRbmcYB943HGomGaZt+/8ERwWO8Zxgu7dMP1IJz3oxFjrg== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by GV1P250MB0857.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:97::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.19; Sun, 30 Oct 2022 23:56:31 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::739a:8740:19c5:925c]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::739a:8740:19c5:925c%5]) with mapi id 15.20.5769.019; Sun, 30 Oct 2022 23:56:31 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 31 Oct 2022 00:56:16 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [Mi4h6vXFb0lUX9eDYv4zW2v8PfahZ8bHbMT4nEwKGA0=] X-ClientProxiedBy: FR0P281CA0146.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:96::20) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20221030235631.11750-3-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|GV1P250MB0857:EE_ X-MS-Office365-Filtering-Correlation-Id: 9233c81f-1de1-4906-dd17-08dabad25e61 X-MS-Exchange-SLBlob-MailProps: AZnQBsB9XmqZLd1X3toBDX9YZ7dpDxvLNS/Nd1F6g0m1bDVrBvWFF1Ry30LmEtC3zWAwUJiGCbpHf4dON0IEHhMjf3F/5WjKwvKe6mTeb/E/I5RPwemZrsWBqdmJwRy03NuQETCESOZ1XiAMyV6HfypdHwy0+MPG0D0DivUsEX+X9fEM/qQCXRzRvrFLrNm0ni337M+wBKoKw3iWhtLoSbEsIY5Sd2PqhpoKrQ51GMk0oWamQZIA/uZ/bYkAW66PUzK0cYPfOC/HhNssM+cg55bxhrLeMPbh6jtS0pAY4q5rk3mtLgUYaTApbe4CxWPoXp14JNLFMee3Rw4fLoVsGPWrgfwqC004XoLhsWRmh3dIaKHstgiDl7uYvvEbMAY2ZI3L0pZrsdAG3bl/2V8HQFt7BqrffdS8l3QS5UJjCTZJ2RA3eKIXrd5aMJs4htxksSh1uyaL/b7tLrCNf4lu960QLAu9fxRihmW0eslX/CNDZTf+qZYb11fRTH4tEOdpIgXQYF4rGpnntJ++eg5pYxTKJPk0/skEuFR/tiExVRhbDaDsGVWowtUab5RSCIWgtq/J3yhV2uJWpHPFu6eSROULMobir7kkoyFqx16TUZN1P+qgoYLKJRsmPjJv37JTeo3RieiS9lozeeUrrmggeXCkdl57xo5A4+QMvNbeTanmpbZcgK7WFxD+F7o/a4Q1Np3i+UTiejMXQ/sKYd6B7ldukATZuluLop23rxzZbHq9SaLpg+p4AtLEduUhKSmbfwtG98K77Eg= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: mfIT7fVyLiVdvvxbPbKrhFq/zp38STDeCPGVwhpylSAuTzho7bVrGkRIf7BEktVM5g1BkFy12Lu/cgRDA6nXjAytbnzJvAzosZD349usiEYvJRggiuBXEUxMSxrVZuGmadmKU7K0JaWnzEuL8SH6EMkGMhR836aWp+43TWv7OVtBq6fSbwVsel82GaMj4YSkF4pxS+zqbuf8Qpv7gxE9NLzSl4MJsZni6JhBggQp23L0s0rfdvuwZC0t2XrwHqMQQPhfLCuUxc5RYm5+Nlx9NlTvj3rnRpyJBUTdbJtO7XoXkH74reiL/PBNPM7Rg/58qlxMQnwfMhF+CRfsQjFt0hk8nWzxFSEgTW0V/CcDoKNc5mDZkuwKAYKuE4315zyw8axWs06bfdAIaKvPOKinCEDxV3p/jJKPvNxh1bOYsKzsV9UnfO9bLdk62BLIoWVQXilx73rpAD8YRcRn1dMN2iaF4Sw4geOXpAw0tYlcK6GYBKgBqdTEftO+EXsy0V23NB5LoHsx/SPQ7K9Ugx5ZsIg93cADwSbxoSZCiKzdXi6KK7DorU9JTd3ZJ8d2a5vfgd4Laty9KiP+e1XeAvK6XIrIZF7cnb28VHWgr+rc5kJbFezbR9ZgTMprUJ0P5+lqBEGbIxxMFKh5PHr0tM4vOvRN5bVxJn7NJSOAeSVdCTksH2LQUT5J6q6z8tM/jjLQ X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: bH0LXNtn5whZcqr5lTctvO2ume6aePC0BioAYFCTZISDP9hIBPV8oMQUYk95uNJS6XvGuMvlrksWqp8nrPSElX3zUR/QBS9uS6JOoyJOSVp2wmNFv+q3/s4cvv+y7fhx4+yUjlVBWR376ee5NcouvnMlUF1icdyP8zS04PtlOrbDDb9cd8EPX4fY/nS/7Tr7GiImoCTwaQEtSWV3uF7GvT9KPsYkDZ4EVbtPuBONXJAyfpRteOyq5UA7R+BkSqhBJTEZLdpcUilFE9nOpcgUA7gDVR78GN68sTedNM0lfyFuPRpKavuAK2mBO57JTYab3SezdvI16JjqWtLno0kVHgceLuvraVZBKKETNGoBYYB5VNKPsV6kXQM2zRRhl+xBPigI1A9EjwoBwnsST5CYKwEJiDYPqe7mkN0W2qUpuE8Bzwiq8n47sKMhniuUc8oGz82Prrvh/gk8w7fpzHsJUohvaHxcAEFgNdVvrRoxmW9nh9yB/5X6ubeeEnH8/K1+CTPVaT+R6ipEHCNf2s9gzmjpPEtcCoClN7/6cyWiniG15PkXbcYwGJ8CSvzDrPTcSQodMs0f/rfNvUHw4p4xOCthfp46+ELMCjpBqNxVFvhb2WBfQOKC7HKp1F73f6rbuH9PDm5lMXIJwZGQEbqdg0zOKQn20+63KCHHgu5RgDYhF286BsYcwU0Rc6LwSLyscjcsvtH5FbTrn7R7UqN5DPwX1kGmhMR0fJI2cm7lkYETZrBculII9af7gOpW6Ux6obt5U3KBncHy1T79/TnSHiXVhPuj1DIjs5nHMGrRje48OZXAl1o49pzSKj6bZvcQAB95WG8Jkx4NQ1799D6krSFEA2nPzrtdomBw3ssN2JqshJgcq30+8zywnDEdg5Oi07unkg4tHVbHYuPI1cX+GIPHehGdGXw1VaqwGiM91pV2mM6YEhRi3fmxsfd9sRUiaCHKKWs9uGB9fgENh6EaQgPVAk0EE8Rdt0f/Sf2X+W1QBQ1Q3PWk5qjqgqnzLGD1CPztG2VTu+qA55V3OKP5rpia2oK0pU+BOlOV1MCGPTwLPp/GBgjQ4CJoYCFTgpO5G1uWuaM7PeAS9jDbpiSFqBG/64QksASIUar06gJHCm69fM4cE8mZVyR5Ll4TgPn2WXMfVWiTNC2OnzA7m6ol9BqmHC1glia5vKA19ga71Ebg5BAlJNbLc1WLUSdae/nPPu6Yi87fVBaFtYTnCXyjSXylOrT/ELZAu8PkCSYnIDw8UVa5y0Vh7VIhzTuNC45wgYS9mg9qcyaGqoREVwiBe5kOqMWdc4iOXW14TC2q8ef5PnIvax/CvHXWbD80m9jx X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9233c81f-1de1-4906-dd17-08dabad25e61 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Oct 2022 23:56:31.7435 (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: GV1P250MB0857 Subject: [FFmpeg-devel] [PATCH 04/19] avcodec/vc1: Don't use VLC to read bfraction 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: srwmwUwNmJLt The VLC here is very simple, so that it can just be read by two get_bits(). Signed-off-by: Andreas Rheinhardt --- libavcodec/vc1.c | 8 ++++---- libavcodec/vc1data.c | 21 --------------------- libavcodec/vc1data.h | 4 ---- 3 files changed, 4 insertions(+), 29 deletions(-) diff --git a/libavcodec/vc1.c b/libavcodec/vc1.c index 9b4e951baa..f6468b54c7 100644 --- a/libavcodec/vc1.c +++ b/libavcodec/vc1.c @@ -613,7 +613,10 @@ static void rotate_luts(VC1Context *v) } static int read_bfraction(VC1Context *v, GetBitContext* gb) { - int bfraction_lut_index = get_vlc2(gb, ff_vc1_bfraction_vlc.table, VC1_BFRACTION_VLC_BITS, 1); + int bfraction_lut_index = get_bits(gb, 3); + + if (bfraction_lut_index == 7) + bfraction_lut_index = 7 + get_bits(gb, 4); if (bfraction_lut_index == 21) { av_log(v->s.avctx, AV_LOG_ERROR, "bfraction invalid\n"); @@ -1582,9 +1585,6 @@ static av_cold void vc1_init_static(void) { static VLCElem vlc_table[32372]; - INIT_VLC_STATIC(&ff_vc1_bfraction_vlc, VC1_BFRACTION_VLC_BITS, 23, - ff_vc1_bfraction_bits, 1, 1, - ff_vc1_bfraction_codes, 1, 1, 1 << VC1_BFRACTION_VLC_BITS); INIT_VLC_STATIC(&ff_vc1_norm2_vlc, VC1_NORM2_VLC_BITS, 4, ff_vc1_norm2_bits, 1, 1, ff_vc1_norm2_codes, 1, 1, 1 << VC1_NORM2_VLC_BITS); diff --git a/libavcodec/vc1data.c b/libavcodec/vc1data.c index 844bc0f5c5..01a9767d51 100644 --- a/libavcodec/vc1data.c +++ b/libavcodec/vc1data.c @@ -102,8 +102,6 @@ const uint8_t ff_vc1_pquant_table[3][32] = { * @todo TODO move this into the context */ //@{ -#define VC1_BFRACTION_VLC_BITS 7 -VLC ff_vc1_bfraction_vlc; #define VC1_IMODE_VLC_BITS 4 VLC ff_vc1_imode_vlc; #define VC1_NORM2_VLC_BITS 3 @@ -171,25 +169,6 @@ const int16_t ff_vc1_bfraction_lut[23] = { }; #endif -const uint8_t ff_vc1_bfraction_bits[23] = { - 3, 3, 3, 3, - 3, 3, 3, - 7, 7, 7, 7, - 7, 7, 7, 7, - 7, 7, 7, 7, - 7, 7, - 7, 7 -}; -const uint8_t ff_vc1_bfraction_codes[23] = { - 0, 1, 2, 3, - 4, 5, 6, - 112, 113, 114, 115, - 116, 117, 118, 119, - 120, 121, 122, 123, - 124, 125, - 126, 127 -}; - //Same as H.264 const AVRational ff_vc1_pixel_aspect[16] = { { 0, 1 }, diff --git a/libavcodec/vc1data.h b/libavcodec/vc1data.h index 90dd8baf61..3e45ef1e79 100644 --- a/libavcodec/vc1data.h +++ b/libavcodec/vc1data.h @@ -53,8 +53,6 @@ extern const uint8_t ff_vc1_mbmode_intfrp[2][15][4]; * @todo TODO move this into the context */ //@{ -#define VC1_BFRACTION_VLC_BITS 7 -extern VLC ff_vc1_bfraction_vlc; #define VC1_IMODE_VLC_BITS 4 extern VLC ff_vc1_imode_vlc; #define VC1_NORM2_VLC_BITS 3 @@ -100,8 +98,6 @@ extern VLC ff_vc1_ac_coeff_table[8]; /* pre-computed scales for all bfractions and base=256 */ extern const int16_t ff_vc1_bfraction_lut[23]; -extern const uint8_t ff_vc1_bfraction_bits[23]; -extern const uint8_t ff_vc1_bfraction_codes[23]; //Same as H.264 extern const AVRational ff_vc1_pixel_aspect[16]; From patchwork Sun Oct 30 23:56:17 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 39057 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:8e01:b0:a3:a294:714c with SMTP id y1csp607242pzj; Sun, 30 Oct 2022 16:57:02 -0700 (PDT) X-Google-Smtp-Source: AMsMyM6toC8BczwWPYjbJ0IGNv8k99ZSMSLBVOMD9VqJUc00MPifHOX28PVHAs/68R1JW0sASj3L X-Received: by 2002:a17:906:8473:b0:77b:efa8:50e4 with SMTP id hx19-20020a170906847300b0077befa850e4mr10141218ejc.250.1667174222075; Sun, 30 Oct 2022 16:57:02 -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 hs37-20020a1709073ea500b00791a2a7e578si6267680ejc.641.2022.10.30.16.57.01; Sun, 30 Oct 2022 16:57:02 -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="N0+8/3J2"; 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 F3F1868BD9C; Mon, 31 Oct 2022 01:56:50 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05olkn2043.outbound.protection.outlook.com [40.92.91.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2450868BD60 for ; Mon, 31 Oct 2022 01:56:44 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=F7/kS/Ue1MUZUG0eAwGYIfXOQfwvD5i9pPGGNUQZsDepTF6b7KrGJ6G0YNd5f1IWPsZFJOwf00TfSRltQXv5YlaiYy3o1fzVtQsId+02Vmj2tg5pJdSg/hWoZn8d8ZgGlma+JQXNRM/0t8DeiMB+psgvMC7EIYQ5/oVp53lGIK50QGlmpEXnUlUje6QT8qDO3T/9e2LD41mRdpshZs3sVrqWJ8B4ZstqP6OQLTaDS5cMa0PUhpTQ+QEzg8YguBnmxkdvhU+kJHnUvS/eyBTeg9slImYBwZSLMTphJh+sq3kDaDT3pPQZdu16IELiZM5kRmTVE1H1sK709vzCkHHPIA== 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=v3MFPpUp2fj4KXF4zfBGvwZRFfyvLOlz1vMjgflmAws=; b=V3PQkBAm6EoNgafcvTF9sDg6bUq7DE7Q1ZBkpvsY56KByVQFYiFgjRAws/tLOUccYbEc5XmifFhTPKCyrrQFLpVEimuYgJjY9V9VxpH6U9+sjCrT+p/L/WUeKVYklJFZgF8lNFCQbal0EKjNwkjeTyPpAxUXQ6B2viN1UxZfan6kijMSwGcEj1YNeLjOJor00PatS516ARcVFg9Jsl/txnIgIrTe3mzn+AjGSCsAxLszhj/gxAy9BEEZPRA/NAfewwG2AheeBaFnCgObcD96bjENObLgh3/UfBmXS4FiJnTAgOANkEc5vtjJUr3hJccJQyWhQjT+snIkCAOpCP5QsA== 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=v3MFPpUp2fj4KXF4zfBGvwZRFfyvLOlz1vMjgflmAws=; b=N0+8/3J22sE+36n/S20r1VJgOl217G3k2QuYAYTFBNV4o1APjWM2ly5ZpGwfOl51H0qhkgy66UsFb9H5HS1cNw25EPjHztwi2dBCQHWs8uaKuugKEopIZJymblVHmz+SMlHEhFcbOrw/b3KQFxuRA8fqRouROl+9HchUs4ouSWs97ctXycV8fgzN5LHFuxyZlS/RLLCdBa6m9nsqNFCKg9ddFcrfufM2dPjTX3FAOOJt3VVGQPZAH9Wir1uEzqFTYUtIg58oBbMd8/CUkBcN4HnnZmtakeThkFSogBxWmV8/UHUOl10p+MIO4FUfqM/YJjAYJ6UVssIrUwT++sMRZg== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by GV1P250MB0857.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:97::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.19; Sun, 30 Oct 2022 23:56:33 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::739a:8740:19c5:925c]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::739a:8740:19c5:925c%5]) with mapi id 15.20.5769.019; Sun, 30 Oct 2022 23:56:33 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 31 Oct 2022 00:56:17 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [9XivJeFunxT5d5ScnGI7ej9CEWQsJ+QCIS+caW6DTF8=] X-ClientProxiedBy: FR0P281CA0146.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:96::20) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20221030235631.11750-4-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|GV1P250MB0857:EE_ X-MS-Office365-Filtering-Correlation-Id: b589a053-6e55-4c6b-bd9f-08dabad25f4a X-MS-Exchange-SLBlob-MailProps: AZnQBsB9XmqZLd1X3toBDX9YZ7dpDxvLMKQ2pJKMKjquDb4LX4Zo72GmuAs/U8blsGbMypjfb4+Qoxyxnq5pfu3Qq/kaYMUf5MR1XqImpf45A8cZ4rBl1eBWb+5179bHeiGqAptp29VAwNeBCfYrNiKTwoVAdS/l2R+srVT/dwpWfg5eUqmoU799ZQuMO4R7v6EUVh+VvQUEIFR0Hgpa0N8bS/qC03D2EOHVxJU5Ohq/fDIB/nKsa+zBoJ+ryYqEEYVxcjtK4C0/PI7vFx5VnN3lFf2TvcNrThBugf2AO+jyoUUOFLK5ETdolIss1Uk6B0wunkcK7kdTGmJTxoRJY5u0MFNDFiFFa+XcmYOaCW7Os7/EEwZ3WI75JyA7pMdB68hb6Kqrx3nhntYGUVwfbXc69lFTq2UnoneMnc8kyfXZ2QFpkRuBQSE9K0C1DyucMxU5avg4GjdYTI24SiYQEjPEYpmWmPAOZa5rMA8x2fICSKmCOp1KjiZHYrCdp6Mr/+yWSYp5WQjaHzcMEpGH7Jp64uXLF7SL3TJUVFx65riz04NWD5sugZNSkndmxKwhfI9aZPA2qOR2svkNd1hgCHyh9nsi65lDrdMOfteCM2oqjAhRjXRSqnKT1NP9gX9lzdAS4FA4dLwKyOTbBeCu1JycJmjJjB7x6EAo5qqFAsFob4ZmUOspPbeEmDMkPgcmH8Swzz5TSR44h+osgUo5szasfLWQHRGA5lGm3tiw6UbzkpFs1IkJJ3Br52+GkYtyEwflJU2AAxs= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: WmFuriRNUeRMOC3L1ytZspksBOORC0RZn6cmgsw2Dc5TKuQSPJWqYTFFcTaDTg28o/9uSPeqeVUHraMnHiNx2IasFwXxhZJ8UaOKDA7gEnWGHTajoECwXP5K5gXgR5LLuQEZhIc6Ewt1FCuRGiv+QKG0LaYO4nl8E3oKmfV9AWDLCPapqldTzqjQ+E2nYQ83uHVudeEMuEYWkgthBoCM+EqRww8LHieG6TPS55hlMfb1OwZJm9vRYoVvK9yYFLEnFLYBY6R+jj6xlIx14P2ls4C2mb96p2e0DKk32NDPZtIrpYXFcgxIo7rqhdc04TgF6BYUg9+iHpcr6pbqDs9TO7hDLdTdQHFSwMy85czZSeZMHKGYM8bMjMyCyHeRdhFlCFyXddgmWJqJAQVS0qqKTndTqF4+BZV3Vb705oHCMKvHMJZOy+PXl3xs2HkHf4enyzIMeZZayiH6/CPHjWso1uGfSlfdh64syPXMnh0NWkTHbRruyGpYP0ILZjNAStvbgT+7ZqeZYzSEKMZrrnH+KTSMR4MpF1S/80vez2qMgG2goi9Z5fFivQBcMF+ySXDPlZZ4DT1z1F+41CBRmDMHwTTX8O9dD+FLgtCeDOh0/Z8fR2c8dL29jiTurUAAHkVeluHSBK9Yg9fz38HzgmorOtXN7I1ED2kk9mnWLXxgLq1eY4H6I1/xK+AAo4VugSUF X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: vE3YQdP4S3idf5U2wfKgreeJ3yF8CXDieItuhaCYK23bVElSEDZjWIHTRp2jkG3KEFlLAluqh4XZfmmzy3bGHEpw1VFxPadYoj0q5gkom32SNPl/C74U3/faRnD1V+2ir0eLnER4OwdEJnOFihhHAVK02NdyLuW4Wtbb+qahgViENRKcVraa1XmoEj3FEfPAvyjs7Je6qyuoWQIDYQNgJYp9zhy+JiUh4TZ7EFxCFamWwkIM/F5kazEvkjTdLvtWMjxHniGHXmAorRVpEPSVF+tGlQ4+vbSYjQ+iLj+vfroOnZk13I5d2UNW4uVsDQm4Rjw1Zn6Zp7AyjlykqH1U8G1WSQRijnIL5gqh9HEURm6tSNl3giw2Xs9+e39t6I366UtgJppXa471MSOVvOJeKRnaHSwpTpfR/LRHuOEuorOUC2KXf5PfSLDXTQFWW9Hm7riOSuksid6PxJZCl28aJ3IYR7iTAIpns4Jw0M1z3SQFy37JZgAWHv99dyq2q+Sgt407q/h7/UUyhDKOiStiKNVPXypIwlh0sqQXInCi8BF+dYbuyvyWQs83dB0ILVb0yeFnX+dk+kq13bzZoJvoFY0JHSNEc2SglUR8rG2stWgBVv+BBf3WAONjCJYySZFV7pyV0Wc/SesbqbARjxVk1IfVvS3zaLoun9BRyraDSxl3SIUsrWI5PL8d7i53/I37rbXRSi85l0Msif9fDzrvMAvvnPu75XFwgPtTVDcHT7TN7LOkoXHQQKVIghY7Bazcquqts9ieusTJacUwkhCkSpwnkvKLSyCATHZx4M6/QaqkqDhBOBglXkvYlqIywiZ0s/sG8aLtw9+WaWcEt/Mvj+9e+TgAi0OfGSu+3guFsBWrxCsyheflTjtQdy5k2SNUzeyqIwAMft9ZldIz87O+K0jybbAl05McI/Vk1rSyLQRXv4Ljb4sE9oPUKS/q9oan77LuJsV43IOlJvx9WwRZEWPoG4S1Ic74CpNYzlFN/VAlWoOfJHeDNK4JpKv0Xvc/3d889z9bKKST7jF3d28K6b3DZlahqUzY2U6Zfn7+Am8mMwbt+KeNeeHrAjARMjhASkWNkSnSKiNPrKaTV1QIBbt/OWYwGFHC8DYi++r6+G6gM3TWEikIOXuN8YD+8SwM5zD6mhyQ3HNDtTLSddvT7xFSJiQ3VST9PA/IUuqeqxdG8nHOezDzqozJIYobUll3Vr9ttEQcht8K0l2f3av6k+h5wvARSatVauPlX5rXtnGPJR70xNEEG1bMDr+WZIiGCUVYH48N3zyQGh5lZCuDoL7D6JtGDEy7wnexxkT1gC7jyuEa72ecLALCR691qi2n X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b589a053-6e55-4c6b-bd9f-08dabad25f4a X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Oct 2022 23:56:33.3043 (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: GV1P250MB0857 Subject: [FFmpeg-devel] [PATCH 05/19] avcodec/vc1_parser: Set parse_only only once 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: +4DlsQHKa0s+ Signed-off-by: Andreas Rheinhardt --- libavcodec/vc1_parser.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/vc1_parser.c b/libavcodec/vc1_parser.c index 8257e0ccfa..d57fcdf1e1 100644 --- a/libavcodec/vc1_parser.c +++ b/libavcodec/vc1_parser.c @@ -65,7 +65,6 @@ static void vc1_extract_header(AVCodecParserContext *s, AVCodecContext *avctx, GetBitContext gb; int ret; vpc->v.s.avctx = avctx; - vpc->v.parse_only = 1; init_get_bits8(&gb, buf, buf_size); switch (vpc->prev_start_code) { case VC1_CODE_SEQHDR & 0xFF: @@ -260,6 +259,7 @@ static av_cold int vc1_parse_init(AVCodecParserContext *s) VC1ParseContext *vpc = s->priv_data; vpc->v.s.slice_context_count = 1; vpc->v.first_pic_header_flag = 1; + vpc->v.parse_only = 1; vpc->prev_start_code = 0; vpc->bytes_to_skip = 0; vpc->unesc_index = 0; From patchwork Sun Oct 30 23:56:18 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 39058 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:8e01:b0:a3:a294:714c with SMTP id y1csp607324pzj; Sun, 30 Oct 2022 16:57:10 -0700 (PDT) X-Google-Smtp-Source: AMsMyM42nOT2pbtsuKUI4iV/+2tbVVF62e8gU+1IU1pE0p0KXDU3GZHcCuo565XUOLVt+Ude5yd8 X-Received: by 2002:aa7:dd57:0:b0:453:2d35:70bb with SMTP id o23-20020aa7dd57000000b004532d3570bbmr11154047edw.26.1667174230345; Sun, 30 Oct 2022 16:57:10 -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 my15-20020a1709065a4f00b0078db6f488c2si5002804ejc.56.2022.10.30.16.57.10; Sun, 30 Oct 2022 16:57:10 -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="cDM/ggnC"; 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 1E9D268BDA0; Mon, 31 Oct 2022 01:56:52 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05olkn2043.outbound.protection.outlook.com [40.92.91.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 58F0E68BD60 for ; Mon, 31 Oct 2022 01:56:49 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gV3bmxyFhCYWtrKesRBXEEKTF01wVg41VRH6nU/mvRn9KqqNxG3a6F7Sor0+IzF6LS5lAmwH4KchtR41m+v87F7aR0ENs/0FGIaqaM/SLIKNhhwjR/V/j3r46EIbTTyEJFPi1Ya6HGbhwSYpz20a57stUtGSNkpGgLMGiuoZx+sQOikvf+29sbBdqN2wdFRdo23ZKfhc6YSJ4mGLFpsOMfaGtYysTpTD5AJ4ysvsV8Ow526E/zrTU1Se1pBdNRrVajYM6iyAwGTy/jqw0uWx/TsVCSZ7gSoYJG16fZjcMtA6paq1YkMzDeerz6DKWl2XOzxaZA4VFPBARXI1SDB1IA== 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=E0qmuvR5TYuYUqJo7dfH6WyDc9c9KUF07mw9TMAkr4s=; b=e9HDuLpc4lVYhMnSbLakn75KoVgbiJ/yscEowK6ABEfjK8uaFhp0ihsD+rvZkY7vqbfh8L73vhJDNJEP9w8RW4wTSoSgaDneJIjcSY98FuChrhWppQD8WeAZquqZzku0ILNJhRZ0gU4sdamPGefMJtmgv64JiiuHgIWlqT6urWo+IpyyPEZf98F/IMIaB463sSuX6mfTvtulaXc3unBlEjBpbRfruly5GwDX8MqQ6qXulmEBzcFbMgOq7StzPVnb+drlVhGgFzrctgr5j9MI2kXdRHFglLL9dA19C2/LTTUrU8KeOZQv6mg2mTIFOU3/j7QMJwli9NQ5t1eDkkZlCQ== 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=E0qmuvR5TYuYUqJo7dfH6WyDc9c9KUF07mw9TMAkr4s=; b=cDM/ggnCujGvwufRu/Xc91dyV2YK1b+KOPiFJuk1olmXHALZJdu04CP9ufRT7VtB3qWJ1WiCYttAByn6EVM23U/GSxsFYrpgqVYAprRRPq6IK+yib4/QR3Cq/3lCrTtjs2Yt/70g/8lrM0cB1bdgIcQuYDeXqmdEOhXWZSGus7OH9YkQX+KN+ww3flyEtKWzwpXBZTXa9CJA5O64VAScFF9KCFJ/H/DwwmfeKM3pipxiZX4m5Vz/uSi3wFO6PiC2HflFyhBqOjxVwhucoF80rG4Whn1om2qmw+xSm0ysuB3ywGVR/jfK3ACGRd05TYcAQZMi0PIgBqfjzj3LhSu8YQ== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by GV1P250MB0857.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:97::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.19; Sun, 30 Oct 2022 23:56:34 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::739a:8740:19c5:925c]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::739a:8740:19c5:925c%5]) with mapi id 15.20.5769.019; Sun, 30 Oct 2022 23:56:34 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 31 Oct 2022 00:56:18 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [zETHDlZ+JSkbIJjKVD+0V+5WdQc/U8992BgyiPWLx4Y=] X-ClientProxiedBy: FR0P281CA0146.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:96::20) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20221030235631.11750-5-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|GV1P250MB0857:EE_ X-MS-Office365-Filtering-Correlation-Id: 193e4a80-49b4-4d01-4d20-08dabad26029 X-MS-Exchange-SLBlob-MailProps: AZnQBsB9XmqZLd1X3toBDX9YZ7dpDxvLnZ1+52daghUiYV8g8kMzldNJLlRa+U7rFc88ZhggXGOh/wYa23DaFPkIDHs8eVnc5elxN5NuidyvfPqB5PdrWUHDKvIaFqyEnJdOS4C6P5DbGT2glh1Ft4W030m1NkMcI37B4pUr2924WUMizJlQQJPCMypMTUHuRdzdbuTe3+wjJJnXNhMgL4RxnSxY0oTmCRngRHn7poXTUaY+xB7Tj+2xy75smYdgxye9Rg49gbRm3A647Z2BXL3VWW+7lE4PuPXFjzwuYjewBEeOgbYIncQWaAYBh62eL8DUjAyA9lp7BWdu0ExJmuiLBHeIDtlMAObRgHrqXfqzaLyMwgWwF0EUaAV98/HpqJvhlnYAfZkrApkUkAoYNHEeF/5hILCcMwd3jlqQnpQai5OJ1iKhdSse5OKfokXtNFVAfkE8Duy3q7EaAXu0s3mrbS+S83YDl19+BSwn7EYkJRopLKDjYBW15iEeXhbcRsjtXFiVkjpVDWeef9rYHdmUoIoB6ApEtln1c+C40OZdwgA/tZaXMFbkby83gh6clwMXYln/FLBMVLKGJUrjBHOBh09gObu7MWk4j1YzD1yJZuaA126GHPZ+7sZloeIDFszmo0+VWkemiAf0eQBWkDOx5svXtOjY0yv9NTKtjQE/3ZSsCoA+RbLOiJRiYp+fTQvQcIJuVD6abnzu/6HPYnw4i19UKVbqmwky36AgyFAN/WPH+mUoC4nzdtZPUpSNrI5JNvbjn1I= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: DY+9Xkcp9Yh+nVnhm3uEyI9nT8xBwa0LAvkW57uAkMttiPoTjcGabWYXGk4uadT0wKj1Kj84X/LRSohsNFAhChZF7FyqZr9O8kN2FSBIJwky1Uz27yKkkCze44SQBx6DACb5b2XlgzOeDstBKmRVR6aort1TH4Dm9PPIz5fR33sdXKM94BsXdc1Eyvp5HzprGIaQjhcu1tFkSlrbUcXI6rP2TvuFs0J0XJKtYZZ2TpOGXGX9wM4wpt0PE05lgYcjZKR26zp9WeNt1Iq+kHnlEhbiPj8VUqOI72PmM/6s2XlK1GPL2wu7UmMIUlGRoyYQa2eA14DlUnFwz/EtVRs9x+mBJzwQ+B1CwW3HUbw7Kl3KTaEAIi/g88boYxGadJJDNJ383sLObtKLaKw1BTNDeimf5tU2Rx78s6qfzqdyfkUHAsdCky++pf5X84fZTYv9ObsQa1M0wKzPyyv4/7tyqZV4mQzDstiQazS7RemWbKvBLGZUsTDEhSdojjx2Ap2N40pjB/GixI2p1qYCZ2boRfxoMv0BBvATX9hgETtrea0Lf86d35tVLFuBQoJWeJFnk55pPR6k5hxiKt3ZeEAPQNL710CMk2u4HAOZaswaYCHgknB4XSiODUrc+nb/Fq1Y0kHxa7qX8qtUmZuhEwBGfJQguSW5daONmkSP5Z4lLxNWIwwNGXzAs+DFaplT1cIn X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: mJu3ZnuIQDp5+wUQU1+HFCs8jSJvqC+A6tSAOBwIB/t4p/VQt/o5QylOm8mzAa0VSWy67F0a/Lqe3f/U51S5+QTPm36VjCphNONCe6swsldBUw8eDlHU2D+8BF46y5sxY32148wyZtY4rE2sd531hXBKOp3WGKs+72Cc5nNoVSCOicYfM5Pmrz+aCVUu1zIzgsp41KmamkUASt5aIheSrey7Kdp+LJAlh4oZlWCfX4tJmI8D8LRNBEgUzo9DDOY5UnoZsEG2rO4KKZLq8GUkHEsIYNab1msHasTuCgFRpz6ZB1Xpn0coKJOIp5RZq74FMAD0hq/K0gZ5I3Dhvv6rxfWVSUETr6IOKtaQ+ej7gsrhRqSdHn/QRuAxhNPKyeDFvRsQON1UAJyf/0+g3OL91jcdmLcPJWaVlSezP3uMglBUwC0IhH2FNChGYTB7AsCIaoVGfZo50kfZV4rKWMDK+ynAmRo0ZvbR7CYNXi/U34A+ViQktupxJlTaUHXyGIKVkLIIeaBCTgiQZT8jl3rLyjPcpbu7eYzi77cqrJOxej9qfHjJkWaWBO7ILVwP9Vg+9b51i3Y3v7YyPp5ojT1lU8C83fN6ImPftrHA27c4exNsbpVcN1AkVM+lwY82JMBBjMlzmDxVDWaLNIpd1RDtNlvaY5crXrhQ6JbCzn5QtEj2SVSDc6s4SxcOsXMRTfS2E9YUEr+aBr7JMUy/dNnUP2Gg17IbioS69M4exZmfEjQe3vO1dleS6Rc6tH1U27RqkQbmN2gOcg3GBdXkFkgQ/yz90uEEKOz3IWudKjjVXKt9T450FLa19K0f3yKjHPU/XtJ3P+S7cRYlB+x84N3hURZZ1szoiVHSNWYR52VenOCm7xM8EC82wKizL/HO+G9kpebLAbFiVdY/Y1aQEnqkQ6z5nNG6/vg5XQrGfLW4Cbi1CsIQbWs5jITFDCjociz+1obk3iFVdVwVjN29iPcx8qlCznyKGHFVaSqwPv6ZLOSIaHDODTQ9YpjH9Enm2PROwDcw23lc6rgPrTappXCWd3xOmHPpA9uIqVBKb7i2plUgw7j2p7rzOEVAkbruZBnmHTo5bH+U+j38G3zqUmH9KZB3An0k7vt+itNqczaQ3zsGcGpOQtx6xHm8g4RVSyZyx8TwU3lUpBiBTkMNyMmAvdNHjU1Bag8sDf6cRC9ONh3SfrtldgjGyZ9u16FM/3u3I1vo49J6VTJQLBAwGDDHwK+OXSuujGa3FxCFfBjHPBkLzHfMDtvMA7QyFFI9e965jj0LPy6w3EESdP++KYgiglS1H7PT+yIjQK86oymtnCq5o7Wu3J8j2kk+diIXJzjq X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 193e4a80-49b4-4d01-4d20-08dabad26029 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Oct 2022 23:56:34.7907 (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: GV1P250MB0857 Subject: [FFmpeg-devel] [PATCH 06/19] avcodec/vc1_parser: Don't call ff_vc1_init_common() 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: WIjrTJBJd941 It is unnecessary to initialize the VLCs: The only VLC that was only ever used by the code reachable from the parser was ff_vc1_bfraction_vlc; and this VLC has been removed. Yet vc1dsp is still needed for startcode_find_candidate. Maybe this should be factored out of vc1dsp in a later commit. Signed-off-by: Andreas Rheinhardt --- libavcodec/vc1_parser.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libavcodec/vc1_parser.c b/libavcodec/vc1_parser.c index d57fcdf1e1..a459a2aa7d 100644 --- a/libavcodec/vc1_parser.c +++ b/libavcodec/vc1_parser.c @@ -29,6 +29,7 @@ #include "parser.h" #include "vc1.h" #include "get_bits.h" +#include "vc1dsp.h" /** The maximum number of bytes of a sequence, entry point or * frame header whose values we pay any attention to */ @@ -264,7 +265,7 @@ static av_cold int vc1_parse_init(AVCodecParserContext *s) vpc->bytes_to_skip = 0; vpc->unesc_index = 0; vpc->search_state = NO_MATCH; - ff_vc1_init_common(&vpc->v); + ff_vc1dsp_init(&vpc->v.vc1dsp); /* startcode_find_candidate */ return 0; } From patchwork Sun Oct 30 23:56:19 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 39059 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:8e01:b0:a3:a294:714c with SMTP id y1csp607370pzj; Sun, 30 Oct 2022 16:57:18 -0700 (PDT) X-Google-Smtp-Source: AMsMyM7itK2XPkXAIlbIAoE0ilWp2Yr5iQKF9rUxPQLLBDv9fxbjrqvipbvJuvYhlEGog1Eya1ee X-Received: by 2002:aa7:c04f:0:b0:457:1b08:d056 with SMTP id k15-20020aa7c04f000000b004571b08d056mr11349364edo.146.1667174238596; Sun, 30 Oct 2022 16:57:18 -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 hz5-20020a1709072ce500b00783d969f318si6962594ejc.253.2022.10.30.16.57.18; Sun, 30 Oct 2022 16:57:18 -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=LhjbLTXD; 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 308E968BD85; Mon, 31 Oct 2022 01:56:53 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05olkn2043.outbound.protection.outlook.com [40.92.91.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 788DA68BD85 for ; Mon, 31 Oct 2022 01:56:49 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JGOGCk8T7GN3PX5eLwq6NoPeQpdQnXmpEvidCUzFk2HoySeJtTNxJbnY7LBcujGKwtALkJLfX1NMcYBDSJsZZreUNIABKgIdISeFdcd6oXrqkY3EuVywPxURpPoVbePgCpI9Q2d0orBJuFl0pCsZJiAYvLKwjNJqwb5wsUByxn4O4+8enhOJARmIcreInn52suTy/foP84ywdxlaH4L063nMwV6FX/VWkeExFCjcnhY1t+M8aELC00B4bdQ3cV9UbR00mGK89HPP/TSjJ3yLiLJyyjAYYJ5Q71zK+d1o0sNkYL5HjHw9l6MwedE/7GmHlF5KBnYIKb+pyVJDV81ecw== 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=gDQ55YJHd83J1duPKRYCrzroxp7/dR0nMBhH0JwKzyw=; b=ACn8R1viFoZQyU6wrnqd5/S3wJ95je8NXeTRK2GrGPW34Qtmy6UwBVRLJmV9kNgvULKV9B1OtLucMp0OYFNhuYj4SoPVc/vVNGcnbK/382kiuK8e6fnnIegEEFfgbXXwzvG05sDb4j4Z4OY8vo928/UqcevfIyooeR+rXN9xDJtey76kVBBGZ5XH9bSR3goX5WsMj0eVXBuUjY6nZWJIV2njnAqLa8YEDamXvJJ9o+W5bdTt/yBQiIEXE7MY64YjoBhiw3DF2oRJMz+9Ma/EQ+vbCniUkCuQtxJho7aMU4HJCRLcSs0k5B5c/GiXBcA0iCKfWTUl1kGL6tjvHh8wNA== 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=gDQ55YJHd83J1duPKRYCrzroxp7/dR0nMBhH0JwKzyw=; b=LhjbLTXDQXAmuUzUi+qFVKERXxM9zKINBpUdy5q7AM92SOXvUozPcZQzrVmw3YBNuiQDdMV4otnSnIHtmke1oVQgY3Nvo6jbZxbwydZ/XQeUAPDJX9NAgVwbBVYcUZlC7mMrIOBNIZlMQje0fE1pLRtcCMVbnRWpjyTwaENEc3B7m2tmu/3QGPxUvopbDhi0ikaUAcasvNZdglMaEO6e9H5biF+blzIo81wbyA1a8gR18QK8cSOn425rRF3xfiHP1CtKhCXMrmGyV2yjF/EERRThYquO915Sn0wUX/fxZp5ebETB3fC5p0jNmv986McO9l1MZP0qqo4Y8ysfw/mzUg== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by GV1P250MB0857.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:97::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.19; Sun, 30 Oct 2022 23:56:36 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::739a:8740:19c5:925c]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::739a:8740:19c5:925c%5]) with mapi id 15.20.5769.019; Sun, 30 Oct 2022 23:56:36 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 31 Oct 2022 00:56:19 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [2Q9qMHjF/Woi3115tkH++fIqnhmrrqc5aaZPHHRPLwY=] X-ClientProxiedBy: FR0P281CA0146.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:96::20) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20221030235631.11750-6-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|GV1P250MB0857:EE_ X-MS-Office365-Filtering-Correlation-Id: 5dd2ea0e-d5c8-4623-d5ba-08dabad26115 X-MS-Exchange-SLBlob-MailProps: ZILSnhm0P3nN7ksDdJHhaFM91iprChLh3n9URP/yqxYVC2mDRcoZJbPdkUPCTcXtU+yYTGHI9Z8tx3glrT2VyRW4gc23jFhm664+LfXliz34nezhmX2+xLN6OB1RKWF2g10/b+Ac04tDLx+oHNEi9cmXMXp+7rwHdENUU+NCsVGu3iMgwxSclL49E04XVnD2tr3F/OkT/B8LpDh/CVkTK+agpz69oRMeYLUhssSEyWa18L8FsLPXVQ/nGusIuLDGlqj4BJaKK9QmdaLmCM3HL3Y71E++ik0rATL9lqhA8e4iEmrbywhKZdcqOgYZAzsiKZrG4khTQz3HIXdVBw0bsw6DuhGiIGuevKXM+mk+eeGHnFRs20Ks8itiXfDejf/nX+cu2nykYSuuFJTXvuP5vc0bfXBqDSHu6dnwyRPWPHoY5wzmvx4Ay0ET/4W1oXW/E8qkagFpdlGdfN9E/nLNYgBr94sgnBeXnktssdAk/4TbIOqmpw0mvb2y1Z9FdA9C3xocIcUusVf9hLb2uHgm8eL/K+SHZIzKt4+0JMXanIFlS4lI+/lYLJRfFpoAb0cfFoQoizd2xOekHybn/ryZvAP4AjeAPn9/7w/2OjLJbj1/4B4EKbZ1KzWR8yvuuWLPuFtqyTM+wIZBl41yMmLd3PJot/o4kBmxne5v64A9DcfvKEMsNSF07kI7Peb93MTvN42YtxmPtRgGhEKsWDiE01Ajdsou8VREYc4mwxMFNTiHD6Hv5oten6C8RqpgkJDgy8Yv3vNR7NrwEAWc7I5AqluTEcGekLPg X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: KFCQJeKZHa65e/3ZY+ru4NMiaJOeotRWyia+fRekAOFliEwPHi0TBJSRxmNHH5wqS/75EaYruJd7KyCzfJaD43BcsiycNSO+FO55hnGyXBrDScqLU4lMHmehsZECtrBfG1cbdKOSv90R7N19FH+6CKt921a8fedLJctFej8Y9exaWY//U5c4EoBJ78X3s1kpYEJpliJjjxvlR9wWc/FohoA+1w/AHYpGlZQHPL3c3J4HJ8nL8aPCbHYG4vJs1I6C4tdT0m3EgcksAAAJOnDCgAXVO/EdLxAbVCgkxx0x2/qo32fRgYCg6A96qakkpDFk1r1sgARpujnwtRmj7QXuubwqnC999S61gewCUZX0W/aXKogUldGNzD9KzrWZjipihJlDkVOIIQNKMDkH9Qo5OkYaz0bhPDXoFvXaiC9UaRaFbcZk2nie/ErQQxFhP122Zf5k467Jz/PHUDkU/j/uTFKK1m20P6Ugu20AHMqR+K0uPAIrECmCxJ2ZAWpWe9RPi1xCoggS/elpMTY57KY8HF5t4Ihed6t/AcIP2S8NUXDTWLojCJXVjIjiS7lvQf82IvuTfIvsJ8QQZ2dNGorO0ojZYqk2APWcYLfpybENv+PPFMa1rOHUfHsZWuJMRPQEw1sNDcEvlIh8rN0nqpxYatkR1klzN0klyXqXapsgZSQ0Dwiei06+30hcaB7nzYTq X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: BVCU28fMByNJ4Zn0zRqznESQ+BiHmY/0XhHwtWTJGSAL2ETTA4uP0cSbBfgweB9KSZFhd9WN36N9q0uPDSTS8hJREaga9szVQw84bp8ckNJDk4hcdYsCcsakuqAIXx3zoIS9GNgJAxut2747ggWN6GviqAvhOPq0H/UGsj5vN9Ku3u6pe3M4eRbKewM+ZA4Ww8zYdFQclBoVh9luTr8qfFuA6Dceja+TaFSAkUPmO+5XHSuTTbw5xTkSTwM/Aj5m4pew+1m1rel9KcaGoNn9vPVhx/iQZtuOzv3cg1gMAQkJk4PmOoaskeAatGGelYMPdHZZ2khlRR6UxiwaTCUBSnLHv3fL0rxQChuzQl/J+iKjBODlH9LCYTOTsePTM8My3QHBnQIfWOeKHkRjyNW9hp5EIA2oHXZdgvP1PUzp1WTo0UnsEL/imxQClawuYwdxpiahGwKCwfu6e4qKqGzGUHaCw4n24ojLSh0Pwy7Msm51MivAzZceUlSLxIh2DrHshPbkY1UEI2LIu0r+qWqPny8UKW0cS/jlWyAxsFz2qhsSwQB2YwSi04KGdvwYrYCxR5I5vHeFuyu4zas/kLckHCSX2Xq0aq7fSewuq5/zrlfwwU7mMWq24kudZbFLQ0FWYBp5BhHKzRXxouaXBBFgSN4a6rSOXerPTtgIGLmBpq6ZV0PvFeeJyPTFQw15oJH9rptdekfaZ9TPuEU8GtchpJl267wY0Jclc0YYgNLbmg8H3clr5H8MV4V0zOlGlyLo0aCyvGzoxg0Gr6ZTFN1VYzvTZ0LJDRWAkC296cTAowVyGXMAKbgykd5Scx8PMMAMD/07M3fvzv6de7YkZjBbP9XimoFRKHnWXIoRJWTKoeNxsFMK9OFVYQDijCxCkuRv10sYTaOF1H0q6UcUuJ/uXF0oJdaCfb7K0yCNeTTgLiOBfhX6n1oWG4tQU9p7CUXaAoPp+02NrGY2UmCMrsRB85ArIXETcvcnDYJg3juX3rknR5fjnKCZyTs29STx4C71qtRQ9ccR3IAQuzO380WVTJ0oxYAEzUH1XHKG6/7KevwH8BnkDfI4wqJkNObQ4fQ6VZumdmH7WSOdzYV5sydhCL2KI3epBoS3+BCE2Gv3rnnr4T9+sYBfhtvA4lxJ2dwaiVnKR01gROOBsGMGvWI+YvrcHPHaoXmPNcD6SCdSgipTh5KKbPouiVdnpf08e4g2juXqBR+ZYQc1ldvhU/Nq1KOaDrPoJFiAP8dddg4l8lfQHiUsRnEHVpH5UUxLRKFpAqoeTtj8wU0d0HG0/KkHhzl7kYRI6oqBOpIXBtEbcNPCf2EJer4CrcW0CLAu2TFb X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5dd2ea0e-d5c8-4623-d5ba-08dabad26115 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Oct 2022 23:56:36.2628 (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: GV1P250MB0857 Subject: [FFmpeg-devel] [PATCH 07/19] avcodec/vc1: Move setting res_fasttx-IDCT functions to vc1dec.c 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: TaUuiJhuKyWU It allows to avoid compiling simple_idct.o for the VC-1 parser. Signed-off-by: Andreas Rheinhardt --- libavcodec/Makefile | 2 +- libavcodec/vc1.c | 11 ----------- libavcodec/vc1dec.c | 9 +++++++++ 3 files changed, 10 insertions(+), 12 deletions(-) diff --git a/libavcodec/Makefile b/libavcodec/Makefile index 72d2f92901..739bf757f9 100644 --- a/libavcodec/Makefile +++ b/libavcodec/Makefile @@ -1169,7 +1169,7 @@ OBJS-$(CONFIG_SBC_PARSER) += sbc_parser.o OBJS-$(CONFIG_SIPR_PARSER) += sipr_parser.o OBJS-$(CONFIG_TAK_PARSER) += tak_parser.o tak.o OBJS-$(CONFIG_VC1_PARSER) += vc1_parser.o vc1.o vc1data.o \ - simple_idct.o wmv2data.o + wmv2data.o OBJS-$(CONFIG_VP3_PARSER) += vp3_parser.o OBJS-$(CONFIG_VP8_PARSER) += vp8_parser.o OBJS-$(CONFIG_VP9_PARSER) += vp9_parser.o diff --git a/libavcodec/vc1.c b/libavcodec/vc1.c index f6468b54c7..6eb0d70a68 100644 --- a/libavcodec/vc1.c +++ b/libavcodec/vc1.c @@ -35,7 +35,6 @@ #include "vc1data.h" #include "wmv2data.h" #include "unary.h" -#include "simple_idct.h" /***********************************************************************/ /** @@ -314,16 +313,6 @@ int ff_vc1_decode_sequence_header(AVCodecContext *avctx, VC1Context *v, GetBitCo v->res_x8 = get_bits1(gb); //reserved v->multires = get_bits1(gb); v->res_fasttx = get_bits1(gb); - if (!v->res_fasttx) { - v->vc1dsp.vc1_inv_trans_8x8 = ff_simple_idct_int16_8bit; - v->vc1dsp.vc1_inv_trans_8x4 = ff_simple_idct84_add; - v->vc1dsp.vc1_inv_trans_4x8 = ff_simple_idct48_add; - v->vc1dsp.vc1_inv_trans_4x4 = ff_simple_idct44_add; - v->vc1dsp.vc1_inv_trans_8x8_dc = ff_simple_idct_add_int16_8bit; - v->vc1dsp.vc1_inv_trans_8x4_dc = ff_simple_idct84_add; - v->vc1dsp.vc1_inv_trans_4x8_dc = ff_simple_idct48_add; - v->vc1dsp.vc1_inv_trans_4x4_dc = ff_simple_idct44_add; - } v->fastuvmc = get_bits1(gb); //common if (!v->profile && !v->fastuvmc) { diff --git a/libavcodec/vc1dec.c b/libavcodec/vc1dec.c index fa6b5cfd3c..2cb39430f5 100644 --- a/libavcodec/vc1dec.c +++ b/libavcodec/vc1dec.c @@ -40,6 +40,7 @@ #include "msmpeg4data.h" #include "msmpeg4dec.h" #include "profiles.h" +#include "simple_idct.h" #include "vc1.h" #include "vc1data.h" #include "libavutil/avassert.h" @@ -562,6 +563,14 @@ static av_cold int vc1_decode_init(AVCodecContext *avctx) memcpy(v->zz_8x8, ff_wmv1_scantable, 4*64); v->left_blk_sh = 3; v->top_blk_sh = 0; + v->vc1dsp.vc1_inv_trans_8x8 = ff_simple_idct_int16_8bit; + v->vc1dsp.vc1_inv_trans_8x4 = ff_simple_idct84_add; + v->vc1dsp.vc1_inv_trans_4x8 = ff_simple_idct48_add; + v->vc1dsp.vc1_inv_trans_4x4 = ff_simple_idct44_add; + v->vc1dsp.vc1_inv_trans_8x8_dc = ff_simple_idct_add_int16_8bit; + v->vc1dsp.vc1_inv_trans_8x4_dc = ff_simple_idct84_add; + v->vc1dsp.vc1_inv_trans_4x8_dc = ff_simple_idct48_add; + v->vc1dsp.vc1_inv_trans_4x4_dc = ff_simple_idct44_add; } if (avctx->codec_id == AV_CODEC_ID_WMV3IMAGE || avctx->codec_id == AV_CODEC_ID_VC1IMAGE) { From patchwork Sun Oct 30 23:56:20 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 39060 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:8e01:b0:a3:a294:714c with SMTP id y1csp607415pzj; Sun, 30 Oct 2022 16:57:27 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5kGWuB0uDVg98A0uvU+C1NzTtjpbmfIdK43fgn2aA5DLaKTsGJdcgUeBoRa+7qD9Qzllc9 X-Received: by 2002:a17:907:7fab:b0:7aa:97e5:fac2 with SMTP id qk43-20020a1709077fab00b007aa97e5fac2mr10267351ejc.553.1667174247195; Sun, 30 Oct 2022 16:57:27 -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 dm16-20020a170907949000b007912fb7ad6esi6549269ejc.893.2022.10.30.16.57.26; Sun, 30 Oct 2022 16:57:27 -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=sxQpvXQs; 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 4661F68BD91; Mon, 31 Oct 2022 01:56:54 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05olkn2043.outbound.protection.outlook.com [40.92.91.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 97FB068BD60 for ; Mon, 31 Oct 2022 01:56:49 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YEyFD+brTPYogzGZGOeVEok/GIr1quQH2KUVs4BiLFr7ED2UAUwcsnOlFs/PELgOh4EBud/hzAFGXcKkKnONpZgLsOYwWFm1J+lcDG8ig88pddbqiN9wtLOeqUwbMO6yh1qWIV1DzsUa8kzPH6NeyGt1yAiWcw7kM3XYnjUu4zldWchMU9N6+oFlwUOlvdAxf3v6/t3+lh3nV7ol5lH7ET7tTlAV2hH1hQKjN+ydMqa7zD+vQNFDMXZ7Yas+4EZ8eVxkIoufjeNJIFCexI2EGa7QNqFJ8awUYNm9oKOAQPz7Obb3/LKjf9kHzmyhu25hG9vS58aT9Gtmw8IgpRZmgA== 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=beHB+Gg6sZffSFHiUZ2WA001pKVAIRc50gE0UtspFE8=; b=Mp04GyDquvwjxMarzePqfQtcbEBiUoUL2fB4IIldP8QbcEdLtMFY83akppYCcFOjXr0QE+Dq3pvPUBoC6QINohDFS09opASvwNJoX5I2rqMzS/paxHksG1RHuTLKXBskwDBccVTeB89mLzJb/IwUzdQI1DslC346Xz8C6JhiP4Qq390BGT386csGEWuaZg1MAabvMWeQr5dKz55jxXme4fXu5jjRL9vaZYEyvPRicyh7Ty+K12MPOVdogafxGgYqN6DXXGjfuvf8CXeGR9XTR52W0d7IGE7O/ZlN672g+W30rfFs7KCFgmVy/FRKdTcNdSThsuoq/0Ur23IwNlg9Bg== 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=beHB+Gg6sZffSFHiUZ2WA001pKVAIRc50gE0UtspFE8=; b=sxQpvXQsDUlmoUZc3QVhrHqUSzFZN6YH1df4D4aLMafp2cIT4Xo5OBc+VxnUOlGMbEIcUEgyKZ3ymicN6U3RhyWOAXibJj922dMLnqE4P61OKSoLkxJi3D+E1J4tQdYhR94K02C7hGdeFq483po4tkYW3gR/kl+o9rHKkNCO4UE6J1wmYrV4L2XmXqX7OcYJuGfj3bEZj7Eg6LxwFnHF4uqrX2UCiklMXHRNTGYdRUTChrtDiW4DI0y9xhiY1eKK7zMR0tpRjxz4fYaNs6d/bMQZuomUh/wN7pshnAbzZNxk6c9gITyIfY3B5jQKppGIotqghNqIxt2xguylZbDrwA== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by GV1P250MB0857.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:97::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.19; Sun, 30 Oct 2022 23:56:43 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::739a:8740:19c5:925c]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::739a:8740:19c5:925c%5]) with mapi id 15.20.5769.019; Sun, 30 Oct 2022 23:56:43 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 31 Oct 2022 00:56:20 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [aJ4TLAEFhL0bb4rRjtsZRUvRVp7u1kmpRWh8drueXXA=] X-ClientProxiedBy: FR0P281CA0146.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:96::20) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20221030235631.11750-7-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|GV1P250MB0857:EE_ X-MS-Office365-Filtering-Correlation-Id: 70f27662-0337-4c84-e459-08dabad2657a X-MS-Exchange-SLBlob-MailProps: EgT5Wr3QDKxn/FJXV9AifVAmfFjhXa5Iu7eeHADLGWaL04yy/04JY6Vr6wkm/8TVqmQiXlENTaNFh1ZdD9+TsmDuBDHeIiU4Ytr5hmgucsVT5/qvUBOiyKImh02gmoP3NDJB2y7SKVZrYk40FMHJg5Sr2+J57Ul3tLwicZM9GUTs6Rp5+pXlN4P3t2rGbbknNetfX5VCRwznqrKKdL3IZNZzPU+HDBRlNhW0KZWXjlnsma/WHyJnyOanQvLHFX5Dq8yDLnFERliI8TjsmI2qr3pkKPJFi+85R8/gYuQx50btOHk00s8CDaH6JaDkbo3mObxEFoGkjdW/OrXMkI+6MJHsured/PBf9aMNfnYZJxsOebonZt6a379pl1G8rozXblu38hAWe5A2A7kbcOvaQl6HgKPs3eRKVDBAyAQY1YJ9JSXxMMrSDuGk3EGNyAaiBfOMD53S7Fa7nA/PkJcnCGQiSN8GYmOImEU4emuPCZHkgDgh4HijMpk+88bTjpgpe/yOTwAeAr+7pG7kgC7KgulRmYRM+Dk3t8GNfDe0rH4KR5AZFYOBovsdPQyi4Xx9Ff5SC9Neww5lZDOqRo2XTZumKhaiDJeRcTqPzV2SnVysqCLBqqKsY9OaOqTgJmOCoe+EeTM8Uj3fHhOOVYChNw3PTr0vKZxunjUSth+T7YueRTfk1gXUvu/V7YgXA6npXTlIakbVL6LYFR7HK4paXs4rUspLFaYwQVq6WQSay6A= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Tf6e+KIZSselaR2334PqJYOHX61kYVLAWPeRwOQxzOKyHuEeuCrOTKH0h0FPMvWkHVlUSYRk7fPhOSSwS7EOnW2dp+/dTBsYIvump3Omy6lY8AScIKr6azFS0khzr8F/iVLxCbblkUioW4X2eIOTu96zZz8s5Mjoqr59cyQxZRIPf0WwG37ANjXXGZdiHmLm+HULLqLwq/XTkPu4OvZXjA4En1Yu/UM3DyIVf9o1h+rRLdg89iHVvmgfP/KzJ9DBz4FPFmtXSj6vDIXpxcFBzDyQiLjelelE2eLWi3PvMylwPoN8E+yFmMSMQWNhsntGwP/BTBNS5p0on6CPvLWz2UwaT79tUtu0+gk7PlDObYgPahVisEpmC8ifoFSlszH/pxPagOQGjTYvh1ZUdNRRGMhTVj9SuPqayVqwBfqStzzMSLeURVFHVpQtZ414b8rkgc8VH/lhSFJIjZTfdESL8SuO1wctCheZqPVR/rQQDXNPF0GX3mBjHK5WjjfYDN+z0uS2ZaHz7RalgacpYOPY4uPjHjYkTxEAuKkrRhsygtEwHAlpz51i+2dPc52y4pYoFmkX5gvkwoH+AVBkDHyAXkqhXrEfK5zdNwdi6Bq35gD0Nx7Bf0Dng6iwCrBL5beXKM8ZF6H2EpWb6KecV3Mg/tMFQPhmDh5rz04oa5EcC/j4sDHuc4FrTLX0eRD/LtZX X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: BpFnkjR65tuy8xo9MtoVst+kLS3nPl1uwVdwA4vE65DaeDIhDa2w7LQMPbf4n8Fs+Z8eKBG5S6YbU3aGlI7Bpyds/bEG4Q/KtdhaNvUvoprNLi9JhEgEFzBzqZ3utoC5mA3A3Kv0dsAmJmY/Uh0l1hFCIbQD0Xxl6U8u9DYGTo8sxddRa4WmBpp3CLOGCUwi+fgweNXVdjN1jEvtONNuMHSOGrNgdeQR6oIfaP4KOYUR3WNiHSiKNc4gL/0UBrE2iTgrNRY38rkTs+Xl3sOzh3SHpER8V0Z253Hg5gkeZDJDjYHd6SwL9clG5Va9wjAxCocz6l6f8zjdU4azWtfEIPQbyXO2eBiApUUPh0RXqOcuxajUfEV97frdXNWQJ1bh3TJuqZgWdfACH1XwMbfG5Si5YZweQgtavcW0ZtcnNhzxqtWDRBY55ir9ecP3xkfObxrRw5xqnj8jKVd4Bxq4d/0was5JISdnvviH1M79mCZgmkI2h8RRXym2MS9sQlXFIESSpw514GPx8ciG0/Yb2gX/42zW5rqVcCaUnMGDxjg9FwMG7Tt/2wsWVUxnLoD5svDi5WYSQN2VkEoYRQqkfTIR/y4ZCCJjailvHUP2ElXNwUB28kkhWGkHcaLNWttUBptW83H8J1BADTUARKUtI/V+Y88EXUedO/H5z1FhnaqxGBvgHXZOAbMlwxkfvIPf9VZ+uGCo+h8SN0DpZYYAb7PYDoaOTRFteppgLd47fXcYuYe6gvMwf0jmoYz/7ea4pCc8fkS/MTdt2Qq2BjgpgwJs/S+72ysnHpxsoXUYqPMiREaIenTwraRzcltrB/PETBzURdRoU+1XxdW7TuEaXep5EkKzVeoH6Gzwm8Mrq6xFMry6x/71+6RlBm+/uAHf17mqRwKDICMkMqjAFAU2B4aLY1yZAikJ91raM7IjkbnkqCX4u3ojzXSIhb4+vuWebZAJP3E9yApxsiFbmq/UAN4CHgwgXz9ZEGKXDNQB008bbPpKctzFNq4IDgkELtdEaBiM5+8UMWTgLGnqDOc57TTIrNJMDRRFPrlUy20EDWlUaY6zW+W4mWgsAFV4jyxTatE+xtlWS6yTDABSbkvDc5NIFB5jh7FFodKw4e0/2WheWeVqXletO02dNztwtpUUpq5AeMzsvPio89oQx9/mQCGEeeHP/OiLbzzBpoBJFX/uPxxrSYjyAsADOKQmwSAZVv+iGAY/mrIRAuaIol/9K5caLOO7BAzaALSPhOaTsyTPv9llekotnmHlpPtDcPwbBMpRDZ01FR3pyInZsCLr5ymp6kJ4C0XtNkfiaDy+/l2sWVwLtBv80JlFV/KBs8d1 X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 70f27662-0337-4c84-e459-08dabad2657a X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Oct 2022 23:56:43.6828 (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: GV1P250MB0857 Subject: [FFmpeg-devel] [PATCH 08/19] avcodec/vc1data: Remove duplicate defines 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: 7EQuqBxmKeqG The defines in vc1data.c are duplicates of the ones in vc1data.h; they are also pointless, because they are not used anywhere. Signed-off-by: Andreas Rheinhardt --- libavcodec/vc1data.c | 21 +-------------------- libavcodec/vc1data.h | 3 ++- 2 files changed, 3 insertions(+), 21 deletions(-) diff --git a/libavcodec/vc1data.c b/libavcodec/vc1data.c index 01a9767d51..004b1347d4 100644 --- a/libavcodec/vc1data.c +++ b/libavcodec/vc1data.c @@ -98,50 +98,31 @@ const uint8_t ff_vc1_pquant_table[3][32] = { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 31 } }; -/** @name VC-1 VLC tables and defines +/** @name VC-1 VLC tables * @todo TODO move this into the context */ //@{ -#define VC1_IMODE_VLC_BITS 4 VLC ff_vc1_imode_vlc; -#define VC1_NORM2_VLC_BITS 3 VLC ff_vc1_norm2_vlc; -#define VC1_NORM6_VLC_BITS 9 VLC ff_vc1_norm6_vlc; /* Could be optimized, one table only needs 8 bits */ -#define VC1_TTMB_VLC_BITS 9 //12 VLC ff_vc1_ttmb_vlc[3]; -#define VC1_MV_DIFF_VLC_BITS 9 //15 VLC ff_vc1_mv_diff_vlc[4]; -#define VC1_CBPCY_P_VLC_BITS 9 //14 VLC ff_vc1_cbpcy_p_vlc[4]; -#define VC1_ICBPCY_VLC_BITS 9 VLC ff_vc1_icbpcy_vlc[8]; -#define VC1_4MV_BLOCK_PATTERN_VLC_BITS 6 VLC ff_vc1_4mv_block_pattern_vlc[4]; -#define VC1_2MV_BLOCK_PATTERN_VLC_BITS 3 VLC ff_vc1_2mv_block_pattern_vlc[4]; -#define VC1_TTBLK_VLC_BITS 5 VLC ff_vc1_ttblk_vlc[3]; -#define VC1_SUBBLKPAT_VLC_BITS 6 VLC ff_vc1_subblkpat_vlc[3]; -#define VC1_INTFR_4MV_MBMODE_VLC_BITS 9 VLC ff_vc1_intfr_4mv_mbmode_vlc[4]; -#define VC1_INTFR_NON4MV_MBMODE_VLC_BITS 6 VLC ff_vc1_intfr_non4mv_mbmode_vlc[4]; -#define VC1_IF_MMV_MBMODE_VLC_BITS 5 VLC ff_vc1_if_mmv_mbmode_vlc[8]; -#define VC1_IF_1MV_MBMODE_VLC_BITS 5 VLC ff_vc1_if_1mv_mbmode_vlc[8]; -#define VC1_1REF_MVDATA_VLC_BITS 9 VLC ff_vc1_1ref_mvdata_vlc[4]; -#define VC1_2REF_MVDATA_VLC_BITS 9 VLC ff_vc1_2ref_mvdata_vlc[8]; VLC ff_vc1_ac_coeff_table[8]; -#define VC1_IF_MBMODE_VLC_BITS 5 // as a placeholder for VC1_IF_MMV_MBMODE_VLC_BITS - // or VC1_IF_1MV_MBMODE_VLC_BITS since they are the same //@} diff --git a/libavcodec/vc1data.h b/libavcodec/vc1data.h index 3e45ef1e79..ee4ec83263 100644 --- a/libavcodec/vc1data.h +++ b/libavcodec/vc1data.h @@ -91,7 +91,8 @@ extern VLC ff_vc1_2ref_mvdata_vlc[8]; extern VLC ff_vc1_ac_coeff_table[8]; -#define VC1_IF_MBMODE_VLC_BITS 5 +#define VC1_IF_MBMODE_VLC_BITS 5 // as a placeholder for VC1_IF_MMV_MBMODE_VLC_BITS + // or VC1_IF_1MV_MBMODE_VLC_BITS since they are the same //@} #define B_FRACTION_DEN 256 From patchwork Sun Oct 30 23:56:21 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 39061 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:8e01:b0:a3:a294:714c with SMTP id y1csp607450pzj; Sun, 30 Oct 2022 16:57:35 -0700 (PDT) X-Google-Smtp-Source: AMsMyM7lUcgNL3fqzp6RUBjhrIQGKMIc1QinPqSzF5alvLgplQYEhejhsCKKvUHSIPhk90RcdCVZ X-Received: by 2002:a17:907:5c2:b0:77e:def7:65d8 with SMTP id wg2-20020a17090705c200b0077edef765d8mr10462728ejb.487.1667174255143; Sun, 30 Oct 2022 16:57:35 -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 gt13-20020a1709072d8d00b0078c37681f89si7226803ejc.650.2022.10.30.16.57.34; Sun, 30 Oct 2022 16:57:35 -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=UxkoKcJR; 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 454A868BDAF; Mon, 31 Oct 2022 01:56:55 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05olkn2043.outbound.protection.outlook.com [40.92.91.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B7BFE68BD85 for ; Mon, 31 Oct 2022 01:56:49 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lPHuGzyoxMfLrUC1wf3aOHpcQboUuXVi+O2B+vjfgztDnGMeMrv1Rg/nSdgZ7SNENTqdLcUHP675u2UqaV1CE8mQ6vtV3eloNVkR9xcPJEGp/yTCDvbVUc5CIZnfd7miekndaq2CmG+VspPmjbhJd69G/K2irzPLObBUPwYK2QCSZZ2SGAY/JdSFn2jWd9mMJEm17sXX/ZWn0alRaOjgKaOjMRp+TXnebJGURR7SgqkMkmXrwK+5tO2vE06jZIVay8z4/YTk4jezYB88/sOrSDH0gCVgAz5P8vtX78bSDZV9jHU5+19h14WLh+3BA+M1pp13spEVjml0SSlEJrSkgA== 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=3doJM6W/kIUqWEqFQrIZaTQ59JrxcK/OY2E4dlozbks=; b=V5nsxqNfGab6AlX75rFo9ymOvEgFslV6V1q2XRoEzXDgNaQuwsI2PoK2unX9SnVVpJsFPcUCh32EBTUJ+OdjzUioqOR8mLQSeLrjOdwOk9GwR7sWwf28uCzQZPvvp+gJaqmekKuOGGxgH7O/uTZmLyWxYh2p2xXRs9S5tzfKGyr8+XyzoDFa04PwzqOSMZpBej160Rg/XUrkixr7kNvPQ51yimOZfUz3M2hnwUnfa0+0ZmqsQBS6rlvk3RmlCfrXxJjfRfR6ejOZiPQRUyEY49TGVYD/ei3GJa1kHHcyfPD5LlMJz0A5Jq1lZYcEuXyn3Zy05jw2lYQQ5H9bCtEAng== 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=3doJM6W/kIUqWEqFQrIZaTQ59JrxcK/OY2E4dlozbks=; b=UxkoKcJRKtk2PvQHjtURH2yianA7XOMNdkqKwDpoN3hjJZrQLaWH1KyG+nWVur4AyfR47p9xg18/jLP13ABIaDa0/HEW/2tyAOsg4/ESY30KxEak7LXU/IPCrLuFjZLFiSQmfxLQfUFyMQs5IIRUkBWdI7DYyzhGWUFIBCZ8Nd2kvl7G2ulZ4qdvPtdNMMcAvUFalRllHCoLq8btL+gjRrA4bCGQuB5+zcE9exW4B06FMzEBxh7rpOW+bl22Zw7vLqL+NegIzPzGsmE2MX2tT99ZJ/5y/w+lLPBzX1i0bf0WKOx2l5vBjdCoWNGb4c0GKGl5AJC9KFzxmz32HXEpsA== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by GV1P250MB0857.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:97::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.19; Sun, 30 Oct 2022 23:56:45 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::739a:8740:19c5:925c]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::739a:8740:19c5:925c%5]) with mapi id 15.20.5769.019; Sun, 30 Oct 2022 23:56:45 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 31 Oct 2022 00:56:21 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [VDOaaXZ8HmFWU2icUF+dbp9oHpMsEoEkoTTCWOQ9Mnc=] X-ClientProxiedBy: FR0P281CA0146.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:96::20) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20221030235631.11750-8-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|GV1P250MB0857:EE_ X-MS-Office365-Filtering-Correlation-Id: e834a322-36df-4230-30b0-08dabad26675 X-MS-Exchange-SLBlob-MailProps: EgT5Wr3QDKxn/FJXV9AifVAmfFjhXa5IcCkHwRAzPOiwWqeKtWiq0P/D8M9exxgluzBH6hlQUDIwkG0CStTsMCIjTCKZgmzWNYXGXLcuf2A9mBuaEFRnL0Iht/slVIW9GxQGohM4j7ooMuWcrLEg/LguyHMrpfd5uYqE3CKjkH6As4IEC7FHcazJcTBSPslSYFA+Iz4gTJkiOi52jPaGg0t55nAlpnzCEUmaEYXdPhCPuATe/iQNOeT1+VURcjgRLwtE14s8BWFo9chvJ6TrE/iErCAn8ZUrLP6Js3yHQxxR7i4pqKT+1OaULWL33NJiLZOyEvyKf3YMoTiFrUb4EO1hqo2fuxp9ry7abAQWDUgWACoFZB2USzXjvfcbXFoN9sUL3VIXmUFoYmttGcw6vc5w3LN2xYYvZmiHBdEWUCKx6JKD1+HKq7A2vJrnR3kuwXbZV6180QaY6HF+H9URx6Z2jUOOTkm8rQBwguM6NBjByutU4QrPdvLT1oxX2LEjDIjkEJ2XTq4v+1+2rnMoxMeuiSxtrGj4sO82ciXkGa57VlXa6DT+jf1xBXFuvanLAQPRyXcyDOB8Kw3RwRSFbvAv6S1jVkG16QdwwrrYAmcYC8daWRsO2G1ltPFHtzEXW79XVAyHRHnWZYj9Re4NzkNd6IcgOWw6uHL+UObeNFUR+AXRT4OccFlFdM5HDaJSsr/2wt3hrHzY31J/45gz1vpjc7DFPB+mG32gYWzPZQE= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: SjIHtZOA0iamAaHBQPz9+9guC7geduitVNnKaI33+DsuXoQIxqRePulBnu04CuTfnaZcvf/UHEMOjHp2v8iiXO2pg+Y5qIU1iAh799m6w3xiIiaE30zpDCVKIhaAvgVfmjEIlqI28lCAr8AKAtMe3prjDPBh9hIxovCeRmNH/IqbLlelZsYsSgDAfWIRyerEakmOynWWpFsoenzUoS1MPHWeEzoNBHYPLQE20nrXDu+eREnXF5kQXUquqNIjmdwBpZubQPOUSs7CYhKTX5HuIzkD7X6oQp0H4NI983BKc2kt5ZkMnDpcJlublsMWRXf2z9LjXKr1e6VScEos64V2qM8mGLdkHT4x1+gwE87OrsvmYLQ9/ceUM8y2g5F0aCWyuQIuE7Zgol15wOEZMx8zTWUV67TlPlu+S+8vzW3Rhjo38l9TI+AIh4SibFVpvuLQ3qduJJKNMR47/OHlOTdvzsnRqAi1dySb6vQBdZNVRflnu0uwHsTBQgeaIkGf3v/E8tWydKwn9KHWcSdNJB/dW13rVbvoZjwK9v2CPZhDNvyM7KAC9BN7omjTmRVgN7IGzkyhluEyLJUE6zMET5Ee89VMjpAb2HeudhOjjve/6dRX21FzTN0//gTIKUIMPJbfuA1HLpTdp6sgD9TXirKwJW/iN3HaQF3tRABBVoXOv+Z3yHo8eeCwplpbzI4Hq3j8 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: IG2HDT6z41s9O/cbw0oZQVKe3O1S4UCm+/BxfbKgJFZqBPllJKsp0UM+SUgjkl+NaQzrjiduQsz+5+l5MsOraE4IZRAOVQjDqveHT9P+imNVBC5diiOOw9tEPKzcfa6fWaNga4rX0I3Kc85KJJsl2X6fqBnhsTAc0SdSSojhTLjAKTaNaW1PYpfEiDcPcND1XDPwoUAsADr4hNFoU7LeBB6wx8yqcrkMB35H5T0jlOK30zUj0q0Cs/pJusCGnHJxJ4iB4Aj7YKzghgN43edXZ3lNfYF2zQ7J4kb1gIBPBEYB2gqK6yXTTjE5UE3YvYxMJG9VsUeL/yP+posbINmippMgfsRrhsmIoNk7+zH4+firgNFFr2BEttqUhsQJtnYfZbBqzsnvdns/PNIhITghBqs4w4207SsK8ZSbGpcPHgJI+kmsX3Fz8iqxUbCVeMNe5UJpfVk8VtUpqSNsveSfQGh0rZ7Z3HEiyGXZI4ZUuYaWSAy3zci7BLw2jvD2oVrE6QOv80b2riSXNQqmaKtwTjqdMerpIsVP3bnYwYVDDagegh6AqIGfqJ+teik9a6/XFb+5oqD4jBq7ojjIsxlVKQX8FdIf6Bf+iXhgvoik0sQkTc464s+wu7mkQlEX8g+tKjKmp4zs0tjQfFbvVkCE/pTu8IAhR6y703k9THnk5cYeDBNT/gT3zIGw5BxZbuI8QLDA08WESsb2WYUNSpMe1LeagRJmgjjHiiYW/mX4Zua4azY/fuj/kPma1GLpMjCbldFvEsF3MgvQxGRIJob9Jzy+X+0wsUy2h55e/T8MQVdTYlgfDY6q63EUN1QdUarbK1QNW3diBTPhyWwRyg+EwpbgJ+0/tVRO7fm5ls2Q8jJgk9ViGlGsg+GoFV5Mf7VYyl83rtUhIdm37CHmVfzkTT/CpiES5VnoFQ3RKngZtOXdxKLnt58I7p52gC7eIwuOLrIBc49RdFFcDgyXRVDN5jOhjnRV1gwUrd8PHbw1KwFgtu/bIgUIR8CXDKJpWSuCY439U5/KKwC9ldWoRatUge+HwdLto65VKN3MRErWPzRBtVjXd3wltxOUwci9c/xgQFFlRFutZAgsPbiquQ7L//LDifLZLqz9cAhy+cHaRJFIageVLtHn/ejOd8//nWTWRLsDzB0Tdtk1pogtxqNBJrTv7L1UGuxuBeMXxE/py2ZaZLJMea2m9iU1dAqdcQD72LM/yBhDI9tSEHPlW8yxEUOLNPGrwE1bdfRg7d6e4Ie/N+/ep8Oiw4Yj1OzNocm8iIDgTXVXusy+YAymFGhf6D4YjfD8PG6ILOKmm/TKUTBk3BLqS+icxN1w2NETa92g X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e834a322-36df-4230-30b0-08dabad26675 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Oct 2022 23:56:45.2919 (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: GV1P250MB0857 Subject: [FFmpeg-devel] [PATCH 09/19] avcodec/vc1data: Remove declarations of inexistent arrays 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: ujvYYGswIymW ff_vc1_norm6_spec has been removed in commit 356be9307cbffa1226bed52b26aa2ac9c7af174f (and it seems that it has never been used); the declarations of the 8x8_zz arrays meanwhile have been added in f0c02e1cbc71043ffe8c1fa44f12330a63f9df10 without having ever been defined. Signed-off-by: Andreas Rheinhardt --- libavcodec/vc1data.h | 4 ---- 1 file changed, 4 deletions(-) diff --git a/libavcodec/vc1data.h b/libavcodec/vc1data.h index ee4ec83263..b73e0a5f0e 100644 --- a/libavcodec/vc1data.h +++ b/libavcodec/vc1data.h @@ -112,8 +112,6 @@ extern const uint8_t ff_vc1_norm2_codes[4]; extern const uint8_t ff_vc1_norm2_bits[4]; extern const uint16_t ff_vc1_norm6_codes[64]; extern const uint8_t ff_vc1_norm6_bits[64]; -/* Normal-6 imode */ -extern const uint8_t ff_vc1_norm6_spec[64][5]; /* 4MV Block pattern VLC tables */ extern const uint8_t ff_vc1_4mv_block_pattern_codes[4][16]; @@ -187,8 +185,6 @@ extern const uint8_t ff_vc1_adv_interlaced_8x8_zz [64]; extern const uint8_t ff_vc1_adv_interlaced_8x4_zz [32]; extern const uint8_t ff_vc1_adv_interlaced_4x8_zz [32]; extern const uint8_t ff_vc1_adv_interlaced_4x4_zz [16]; -extern const uint8_t ff_vc1_intra_horz_8x8_zz [64]; -extern const uint8_t ff_vc1_intra_vert_8x8_zz [64]; /* DQScale as specified in 8.1.3.9 - almost identical to 0x40000/i */ extern const int32_t ff_vc1_dqscale[63]; From patchwork Sun Oct 30 23:56:22 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 39062 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:8e01:b0:a3:a294:714c with SMTP id y1csp607493pzj; Sun, 30 Oct 2022 16:57:44 -0700 (PDT) X-Google-Smtp-Source: AMsMyM6vuxCbrIz4ytrIYHbElfTqhovA2ICvw0jztpUXrythp6WSuSVZZjmuSp1QWz0GtW/fD/Zl X-Received: by 2002:a17:906:ee89:b0:73d:70c5:1a4e with SMTP id wt9-20020a170906ee8900b0073d70c51a4emr9884632ejb.683.1667174264750; Sun, 30 Oct 2022 16:57:44 -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 b9-20020a056402084900b0046189831142si7509161edz.7.2022.10.30.16.57.44; Sun, 30 Oct 2022 16:57:44 -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=IiyT4txJ; 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 356B668BDB2; Mon, 31 Oct 2022 01:56:56 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05olkn2043.outbound.protection.outlook.com [40.92.91.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D707868BD60 for ; Mon, 31 Oct 2022 01:56:49 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ej46FuV+cox+qjDmk0LOl4KcDxmsiaHl+iTSx5te9X4c2hWi/PBMv4eBaGAz4mkZONi85IXznL3g5j7FCPuLp90111IUlGoo8eag7iJZYBQ0WgxqdLVIAUO1MMz4gKXYSQZnQeHpCrZvHkUZfEaiwmO/jcaCHLxuIK9mqwGUhrq0tEyNlYhvPU82VfsO7rbdDyl13b4akSc2KfG4zWjNDhtLao/KCDZVfNZuhQTNjgsBTmSUqDFWzuPqpMr6Dm9B89fQfWHHRgiDH1+DY36QNEV6UIoHInC3thcR0ZPOVLfvhEsZc9/xgsPQWk55UJvUPx0BgLfscVKQNY5X+FpQkA== 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=MHvmLqT9LTuSNq0Vx+vvrthIej0Qag3RdYruVIuGI28=; b=jnS2OsaYyAsdVI5jZqXexqXtwSJfH6qhkaYKUaIiNoE0zQF3pT/hnUeftq+PUERsgomh7aWX+WhG0Of56NiRM9/qsAJgYsu6KFHSEWP5MANl7Orj1nPxBaXpuKU0j+dxa65ya/y0uNQ0cCvaR3WYDRibV818Sjr96zkA4vSVoTKy4njYSWyLbu0T7IYe8lMpUA50lNO5lNgeA7XyvzCAnnjtfxruVw8RoiyXtVl0n2QnKJW3gGzoxvChxcgTFfyESmMkC44IHZDfQIu2OjjiaXp/DZkTZQhcz2zA/hIJLzDkgCTog52hElCYwOQLJq81jTF3oNGsrgDe76db/M5Ang== 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=MHvmLqT9LTuSNq0Vx+vvrthIej0Qag3RdYruVIuGI28=; b=IiyT4txJy8NS0nn67IH8acwMz5QdPPtePNc0OWvOjMNMoYMmDvlOL16i6WwQLJ+xs4zv3oAwCIAg3zvVg+pO+npxA0ZCG7/zkQHfwWzamqbfedXSFDWicWyEoapnYmgEX6PdxD6eKCwd9w2zVD95Y4RvPld5Ig66GLn6TleVumfTqHqcA85ag9g5LNfNiJ/svJCMqWzsNFwAJBoSVoJGxXil4cayTRkdc4kIHcZ+nNCl5oDWxAvQHzPyfjCGE/TxacinKWX1wK7B1dtRh4mu11HenL9CkQ27x0pZF4Nb4BAEG5abEzYKfa8VJKnn9YCS4qFmSbO880+zfqc6Z2HUeg== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by GV1P250MB0857.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:97::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.19; Sun, 30 Oct 2022 23:56:47 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::739a:8740:19c5:925c]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::739a:8740:19c5:925c%5]) with mapi id 15.20.5769.019; Sun, 30 Oct 2022 23:56:46 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 31 Oct 2022 00:56:22 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [2zQi8i0Rvh8Ahb7n2bh3LeecD4lm3dCKYXRnmaBr14A=] X-ClientProxiedBy: FR0P281CA0146.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:96::20) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20221030235631.11750-9-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|GV1P250MB0857:EE_ X-MS-Office365-Filtering-Correlation-Id: 1425c433-0ae7-4093-afa8-08dabad26768 X-MS-Exchange-SLBlob-MailProps: EgT5Wr3QDKxn/FJXV9AifVAmfFjhXa5IK7RaoDt/wPB6BpCw3hiAyPvtROQqZTu4K67R/HMABaJ8fAPGlEd5JYo5DQuKb8IqPB513im71+iw2wjG1/OPExxmUw06Qcy3QnqED/RdGl+zP5UTKtZIuyNMgOUZXfpWF5aVLfzYJzjRWSNAOr5C/y0SdCRnppfKvBlBQu5sGJcXvqBBjcCUvA2XJPL13vDfHXRqnG9FEjer/6eKMQ5JwGgyj8LxafBiOE8Nn8djhMl6qlPXpzU22GOgRt3k3/FI5n/C7UtxD/o6ZPlwnJeYK4u6zy2dsWZHc3e+2q4Y+3NmAJwSLpSReSsjpAP1r0CeTyVhxigEtVW+8568cqBFvUr6oM+VQrvPKEsqy1iura5D0Nkxd2NDbG4J263lKEDpdrJMw9iN30+12b/lQrzzuAEAG3+p4UpfGXl2sWuG+jcSH6YBNvAa6B9TyMAso2zlyP4nYY6+zBfSJErY9jE2avuaY5kuMhCYyuL4rKu23o+CYEuKxKdirGvNiDiPCOKHWvCr5WfBlpr2LY3teVXx2Di49e4XO/hfKl4Ul8rkJ9mdEigLznOfXPpr/hT9OHwH8p3gAil+9cuFVAn6GmFf31hnw93X2xwLb7E5RgotuFTcAf42fE0lAWcu3xa89nW/WRIY35RIK06EYIOIBzgUbPt1b9igFe+Z+q/6BtQDNzK794NXpxW4ECj/ZV/+w8JeHDxAooQSJU0= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 8y7gspmgLy4STgkomMipDfURD+SHqRIzGnSiYLk+O1+8umUcPTjp2fHeS8ndaMVYCYfn60rR+ioassh03A0a8llhemrd9VrkvssTUmtA9J01WbEh1dT8yp6an0DbLeddBNxHhnrUonu6HSDKKFa5X+oXqSdHqIKkNEJttOHIymLrR/sUl163CtilQTmIvhf0RLkvNIQK9NS8nfeM2qv7+i3yAvop4VqqArWOlgJu9MvU3vGCavNDJngXZpWua7tsvMTjmKxsFenpCzabSBBAmG0i9nl1wHQbpb+daWh3YT2vcJbcdutPN8kJEg9sJzNWw9+/f479LMpYeb0K06Uwy114YVXYSg6i6bGJY+xzeLxOuZvqGh2LFu9wESYvZ3A8jeE6apOhU12KgXge7sARdXrq4wILELIDHgFb2SkV2PJN0B/s+OjFXcHbQf6lgGRoBz80K2vdjwkUk00s+sj2WuzZRBLqIQElLjl/lo5ge/bCp6xjJ2sBiIa6ioPJkP7x45dJxojK+7weS8PfdffnDDy2kbfgArP6gbhAwcIR05VhAec8zkDeoae+autRrHI/RGrvqab5mTMyV9APYX3oyqvjcKCK3ho1WezPZdWiAt65qXTi4rML57vGo5TvIC+kgX5pQvD7ToUS5uGayli53ECVhJghoi474CuR/5iQd/S73oA1j+xmMIZMfECeYA6l X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: ffRuO6+hs0noRJJ+3geObPExLZZrJTMiyBXJ/pbX78/HRGIQfWTfs6w046mlNbPa7pV8bDDzNrU6jojO0ZEdhoJrmKVqVIKp00UOOQt+TN5/lvIoSEFfkOjbQTC6JaeKnPst0ZJhTb+PudKj9fwwSCX7v0o1fDkdqNSB+jIjt3robFVxwsnSY8U8PleEPpaBLukiNaGFuI4fPBz51inACcitxKQEVc58PBBwDRhSKqeEs44osm+nXpc2eaEky4i1fBngYtJrYhku93Czl5O00Q3A+CIVEvysvOqzZtpcGjI0gpu6h8La/nsZdtrjKskWm3ASMhjWLmCFCBprtR6hWMvrK3vDDJ77o5u3fo1zl6gQusdXwjTFANiQWxHKjXCFFK8LillrrIOw85Xg7p7S6bIMbfeKayTIOUaQgEfm/NaW3zq7pU0wdVAwmFfxqkIsKdanqE18Rz5KFV7zaK7g/66Md8hS8I4xrR4u8uiwS00OLnWXhtDnlg6onG44CS28rvxobsxv2PrpzTUUdBks4cXeDkKc0rof/NQf2Rmo7jgvkyeum6gJymTjzJoreFo5uGmuQ27yx3zD1rDWgWhybKJKnJEHfYOGTkiuP4ifLd2c6dOEJgYDae9tnvYDS/1UUlnXZYqDpZ9gS0xtzEzHFxWSINNv/8fJYxQtmkG+YC2PEuaIgIdu1JrGnnkeTcxXIiWayNDXZ8sfJEkG3DW9eHia3faV8BJt0C9Ugy0vxDgPHY/AM4FCBEOw5gLxCr1PGNxKm8tFGbkMl7CfCKKXUZGnBi2eS/RdrDK5Yd7ZcSuwGH6ssfiV4wZ/V7DhYJ8af1SmOO0aIwWSn7hHex/fLpgOrEgLTZnqiynzKZCRkYlbxD6jMcDZOL/wYua1xfIvj35otrWmXrRp/2X5WIVz/de4CoLPH79gFnkNar6V217QwWtjPohmX2EnwnLnjyO4d1H/kBpBhVlb2R9exSLVE/v6b94diQFUV0lMxNPq0D/qnO1Zeh8kvc/PUlYXT5dv3C5co7Q1At+v/ZhSPbNFUhVnBFQtzdZl72XkvJsu4CWrJ3aL8BH2Xd/sHbTztkKwiRSvscEgnhSD705Y4Pg/lHuyiLTgFapcINLuyVhPdeONSLIXeYlqO/QcPAenRc+IV/iILocGA2GbyDiXQibeMde//RQwDGtur7Rof1VcFHBENZ8ZbbJHnANovlSHkl2dvnI1VeKj7paE9lwipEdbiYhdkMTHfq0FhWuKpzmK1yHHFZGlWU8M1RyBZ9hCbct3M2qY/QG0iKiSyGx4tnIsK8BNYKAuXPllJRuiKWHWLRN1TQQEzQHz/AaylF1qcrfp X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1425c433-0ae7-4093-afa8-08dabad26768 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Oct 2022 23:56:46.9501 (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: GV1P250MB0857 Subject: [FFmpeg-devel] [PATCH 10/19] avcodec/vc1data: Move VLC codes/lengths tables to a 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: VobBmwLhua9d and include said header at the place where the VLCs are created. This allows to make said tables static. Signed-off-by: Andreas Rheinhardt --- libavcodec/vc1.c | 69 ++-- libavcodec/vc1_vlc_data.h | 842 ++++++++++++++++++++++++++++++++++++++ libavcodec/vc1data.c | 804 ------------------------------------ libavcodec/vc1data.h | 70 ---- 4 files changed, 877 insertions(+), 908 deletions(-) create mode 100644 libavcodec/vc1_vlc_data.h diff --git a/libavcodec/vc1.c b/libavcodec/vc1.c index 6eb0d70a68..5214bcdedf 100644 --- a/libavcodec/vc1.c +++ b/libavcodec/vc1.c @@ -33,6 +33,7 @@ #include "mpegvideo.h" #include "vc1.h" #include "vc1data.h" +#include "vc1_vlc_data.h" #include "wmv2data.h" #include "unary.h" @@ -1575,47 +1576,47 @@ static av_cold void vc1_init_static(void) static VLCElem vlc_table[32372]; INIT_VLC_STATIC(&ff_vc1_norm2_vlc, VC1_NORM2_VLC_BITS, 4, - ff_vc1_norm2_bits, 1, 1, - ff_vc1_norm2_codes, 1, 1, 1 << VC1_NORM2_VLC_BITS); + vc1_norm2_bits, 1, 1, + vc1_norm2_codes, 1, 1, 1 << VC1_NORM2_VLC_BITS); INIT_VLC_STATIC(&ff_vc1_norm6_vlc, VC1_NORM6_VLC_BITS, 64, - ff_vc1_norm6_bits, 1, 1, - ff_vc1_norm6_codes, 2, 2, 556); + vc1_norm6_bits, 1, 1, + vc1_norm6_codes, 2, 2, 556); INIT_VLC_STATIC(&ff_vc1_imode_vlc, VC1_IMODE_VLC_BITS, 7, - ff_vc1_imode_bits, 1, 1, - ff_vc1_imode_codes, 1, 1, 1 << VC1_IMODE_VLC_BITS); + vc1_imode_bits, 1, 1, + vc1_imode_codes, 1, 1, 1 << VC1_IMODE_VLC_BITS); for (int i = 0; i < 3; i++) { ff_vc1_ttmb_vlc[i].table = &vlc_table[vlc_offs[i * 3 + 0]]; ff_vc1_ttmb_vlc[i].table_allocated = vlc_offs[i * 3 + 1] - vlc_offs[i * 3 + 0]; init_vlc(&ff_vc1_ttmb_vlc[i], VC1_TTMB_VLC_BITS, 16, - ff_vc1_ttmb_bits[i], 1, 1, - ff_vc1_ttmb_codes[i], 2, 2, INIT_VLC_USE_NEW_STATIC); + vc1_ttmb_bits[i], 1, 1, + vc1_ttmb_codes[i], 2, 2, INIT_VLC_USE_NEW_STATIC); ff_vc1_ttblk_vlc[i].table = &vlc_table[vlc_offs[i * 3 + 1]]; ff_vc1_ttblk_vlc[i].table_allocated = vlc_offs[i * 3 + 2] - vlc_offs[i * 3 + 1]; init_vlc(&ff_vc1_ttblk_vlc[i], VC1_TTBLK_VLC_BITS, 8, - ff_vc1_ttblk_bits[i], 1, 1, - ff_vc1_ttblk_codes[i], 1, 1, INIT_VLC_USE_NEW_STATIC); + vc1_ttblk_bits[i], 1, 1, + vc1_ttblk_codes[i], 1, 1, INIT_VLC_USE_NEW_STATIC); ff_vc1_subblkpat_vlc[i].table = &vlc_table[vlc_offs[i * 3 + 2]]; ff_vc1_subblkpat_vlc[i].table_allocated = vlc_offs[i * 3 + 3] - vlc_offs[i * 3 + 2]; init_vlc(&ff_vc1_subblkpat_vlc[i], VC1_SUBBLKPAT_VLC_BITS, 15, - ff_vc1_subblkpat_bits[i], 1, 1, - ff_vc1_subblkpat_codes[i], 1, 1, INIT_VLC_USE_NEW_STATIC); + vc1_subblkpat_bits[i], 1, 1, + vc1_subblkpat_codes[i], 1, 1, INIT_VLC_USE_NEW_STATIC); } for (int i = 0; i < 4; i++) { ff_vc1_4mv_block_pattern_vlc[i].table = &vlc_table[vlc_offs[i * 3 + 9]]; ff_vc1_4mv_block_pattern_vlc[i].table_allocated = vlc_offs[i * 3 + 10] - vlc_offs[i * 3 + 9]; init_vlc(&ff_vc1_4mv_block_pattern_vlc[i], VC1_4MV_BLOCK_PATTERN_VLC_BITS, 16, - ff_vc1_4mv_block_pattern_bits[i], 1, 1, - ff_vc1_4mv_block_pattern_codes[i], 1, 1, INIT_VLC_USE_NEW_STATIC); + vc1_4mv_block_pattern_bits[i], 1, 1, + vc1_4mv_block_pattern_codes[i], 1, 1, INIT_VLC_USE_NEW_STATIC); ff_vc1_cbpcy_p_vlc[i].table = &vlc_table[vlc_offs[i * 3 + 10]]; ff_vc1_cbpcy_p_vlc[i].table_allocated = vlc_offs[i * 3 + 11] - vlc_offs[i * 3 + 10]; init_vlc(&ff_vc1_cbpcy_p_vlc[i], VC1_CBPCY_P_VLC_BITS, 64, - ff_vc1_cbpcy_p_bits[i], 1, 1, - ff_vc1_cbpcy_p_codes[i], 2, 2, INIT_VLC_USE_NEW_STATIC); + vc1_cbpcy_p_bits[i], 1, 1, + vc1_cbpcy_p_codes[i], 2, 2, INIT_VLC_USE_NEW_STATIC); ff_vc1_mv_diff_vlc[i].table = &vlc_table[vlc_offs[i * 3 + 11]]; ff_vc1_mv_diff_vlc[i].table_allocated = vlc_offs[i * 3 + 12] - vlc_offs[i * 3 + 11]; init_vlc(&ff_vc1_mv_diff_vlc[i], VC1_MV_DIFF_VLC_BITS, 73, - ff_vc1_mv_diff_bits[i], 1, 1, - ff_vc1_mv_diff_codes[i], 2, 2, INIT_VLC_USE_NEW_STATIC); + vc1_mv_diff_bits[i], 1, 1, + vc1_mv_diff_codes[i], 2, 2, INIT_VLC_USE_NEW_STATIC); } for (int i = 0; i < 8; i++) { ff_vc1_ac_coeff_table[i].table = &vlc_table[vlc_offs[i * 2 + 21]]; @@ -1627,55 +1628,55 @@ static av_cold void vc1_init_static(void) ff_vc1_2ref_mvdata_vlc[i].table = &vlc_table[vlc_offs[i * 2 + 22]]; ff_vc1_2ref_mvdata_vlc[i].table_allocated = vlc_offs[i * 2 + 23] - vlc_offs[i * 2 + 22]; init_vlc(&ff_vc1_2ref_mvdata_vlc[i], VC1_2REF_MVDATA_VLC_BITS, 126, - ff_vc1_2ref_mvdata_bits[i], 1, 1, - ff_vc1_2ref_mvdata_codes[i], 4, 4, INIT_VLC_USE_NEW_STATIC); + vc1_2ref_mvdata_bits[i], 1, 1, + vc1_2ref_mvdata_codes[i], 4, 4, INIT_VLC_USE_NEW_STATIC); } for (int i = 0; i < 4; i++) { /* initialize 4MV MBMODE VLC tables for interlaced frame P picture */ ff_vc1_intfr_4mv_mbmode_vlc[i].table = &vlc_table[vlc_offs[i * 3 + 37]]; ff_vc1_intfr_4mv_mbmode_vlc[i].table_allocated = vlc_offs[i * 3 + 38] - vlc_offs[i * 3 + 37]; init_vlc(&ff_vc1_intfr_4mv_mbmode_vlc[i], VC1_INTFR_4MV_MBMODE_VLC_BITS, 15, - ff_vc1_intfr_4mv_mbmode_bits[i], 1, 1, - ff_vc1_intfr_4mv_mbmode_codes[i], 2, 2, INIT_VLC_USE_NEW_STATIC); + vc1_intfr_4mv_mbmode_bits[i], 1, 1, + vc1_intfr_4mv_mbmode_codes[i], 2, 2, INIT_VLC_USE_NEW_STATIC); /* initialize NON-4MV MBMODE VLC tables for the same */ ff_vc1_intfr_non4mv_mbmode_vlc[i].table = &vlc_table[vlc_offs[i * 3 + 38]]; ff_vc1_intfr_non4mv_mbmode_vlc[i].table_allocated = vlc_offs[i * 3 + 39] - vlc_offs[i * 3 + 38]; init_vlc(&ff_vc1_intfr_non4mv_mbmode_vlc[i], VC1_INTFR_NON4MV_MBMODE_VLC_BITS, 9, - ff_vc1_intfr_non4mv_mbmode_bits[i], 1, 1, - ff_vc1_intfr_non4mv_mbmode_codes[i], 1, 1, INIT_VLC_USE_NEW_STATIC); + vc1_intfr_non4mv_mbmode_bits[i], 1, 1, + vc1_intfr_non4mv_mbmode_codes[i], 1, 1, INIT_VLC_USE_NEW_STATIC); /* initialize interlaced MVDATA tables (1-Ref) */ ff_vc1_1ref_mvdata_vlc[i].table = &vlc_table[vlc_offs[i * 3 + 39]]; ff_vc1_1ref_mvdata_vlc[i].table_allocated = vlc_offs[i * 3 + 40] - vlc_offs[i * 3 + 39]; init_vlc(&ff_vc1_1ref_mvdata_vlc[i], VC1_1REF_MVDATA_VLC_BITS, 72, - ff_vc1_1ref_mvdata_bits[i], 1, 1, - ff_vc1_1ref_mvdata_codes[i], 4, 4, INIT_VLC_USE_NEW_STATIC); + vc1_1ref_mvdata_bits[i], 1, 1, + vc1_1ref_mvdata_codes[i], 4, 4, INIT_VLC_USE_NEW_STATIC); } for (int i = 0; i < 4; i++) { /* Initialize 2MV Block pattern VLC tables */ ff_vc1_2mv_block_pattern_vlc[i].table = &vlc_table[vlc_offs[i + 49]]; ff_vc1_2mv_block_pattern_vlc[i].table_allocated = vlc_offs[i + 50] - vlc_offs[i + 49]; init_vlc(&ff_vc1_2mv_block_pattern_vlc[i], VC1_2MV_BLOCK_PATTERN_VLC_BITS, 4, - ff_vc1_2mv_block_pattern_bits[i], 1, 1, - ff_vc1_2mv_block_pattern_codes[i], 1, 1, INIT_VLC_USE_NEW_STATIC); + vc1_2mv_block_pattern_bits[i], 1, 1, + vc1_2mv_block_pattern_codes[i], 1, 1, INIT_VLC_USE_NEW_STATIC); } for (int i = 0; i < 8; i++) { /* Initialize interlaced CBPCY VLC tables (Table 124 - Table 131) */ ff_vc1_icbpcy_vlc[i].table = &vlc_table[vlc_offs[i * 3 + 53]]; ff_vc1_icbpcy_vlc[i].table_allocated = vlc_offs[i * 3 + 54] - vlc_offs[i * 3 + 53]; init_vlc(&ff_vc1_icbpcy_vlc[i], VC1_ICBPCY_VLC_BITS, 63, - ff_vc1_icbpcy_p_bits[i], 1, 1, - ff_vc1_icbpcy_p_codes[i], 2, 2, INIT_VLC_USE_NEW_STATIC); + vc1_icbpcy_p_bits[i], 1, 1, + vc1_icbpcy_p_codes[i], 2, 2, INIT_VLC_USE_NEW_STATIC); /* Initialize interlaced field picture MBMODE VLC tables */ ff_vc1_if_mmv_mbmode_vlc[i].table = &vlc_table[vlc_offs[i * 3 + 54]]; ff_vc1_if_mmv_mbmode_vlc[i].table_allocated = vlc_offs[i * 3 + 55] - vlc_offs[i * 3 + 54]; init_vlc(&ff_vc1_if_mmv_mbmode_vlc[i], VC1_IF_MMV_MBMODE_VLC_BITS, 8, - ff_vc1_if_mmv_mbmode_bits[i], 1, 1, - ff_vc1_if_mmv_mbmode_codes[i], 1, 1, INIT_VLC_USE_NEW_STATIC); + vc1_if_mmv_mbmode_bits[i], 1, 1, + vc1_if_mmv_mbmode_codes[i], 1, 1, INIT_VLC_USE_NEW_STATIC); ff_vc1_if_1mv_mbmode_vlc[i].table = &vlc_table[vlc_offs[i * 3 + 55]]; ff_vc1_if_1mv_mbmode_vlc[i].table_allocated = vlc_offs[i * 3 + 56] - vlc_offs[i * 3 + 55]; init_vlc(&ff_vc1_if_1mv_mbmode_vlc[i], VC1_IF_1MV_MBMODE_VLC_BITS, 6, - ff_vc1_if_1mv_mbmode_bits[i], 1, 1, - ff_vc1_if_1mv_mbmode_codes[i], 1, 1, INIT_VLC_USE_NEW_STATIC); + vc1_if_1mv_mbmode_bits[i], 1, 1, + vc1_if_1mv_mbmode_codes[i], 1, 1, INIT_VLC_USE_NEW_STATIC); } } diff --git a/libavcodec/vc1_vlc_data.h b/libavcodec/vc1_vlc_data.h new file mode 100644 index 0000000000..2063269a24 --- /dev/null +++ b/libavcodec/vc1_vlc_data.h @@ -0,0 +1,842 @@ +/* + * VC-1 and WMV3 decoder VLC table data + * copyright (c) 2011 Mashiat Sarker Shakkhar + * copyright (c) 2006 Konstantin Shishkov + * (c) 2005 anonymous, Alex Beregszaszi, Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * VC-1 tables. + */ + +#ifndef AVCODEC_VC1_VLC_DATA_H +#define AVCODEC_VC1_VLC_DATA_H + +#include + +#include "vc1data.h" + +/* BitPlane IMODE - such a small table... */ +static const uint8_t vc1_imode_codes[7] = { + 0, 2, 1, 3, 1, 2, 3 +}; +static const uint8_t vc1_imode_bits[7] = { + 4, 2, 3, 2, 4, 3, 3 +}; + +/* Normal-2 imode */ +static const uint8_t vc1_norm2_codes[4] = { + 0, 4, 5, 3 +}; +static const uint8_t vc1_norm2_bits[4] = { + 1, 3, 3, 2 +}; + +static const uint16_t vc1_norm6_codes[64] = { + 0x001, 0x002, 0x003, 0x000, 0x004, 0x001, 0x002, 0x047, 0x005, 0x003, 0x004, 0x04B, 0x005, 0x04D, 0x04E, 0x30E, + 0x006, 0x006, 0x007, 0x053, 0x008, 0x055, 0x056, 0x30D, 0x009, 0x059, 0x05A, 0x30C, 0x05C, 0x30B, 0x30A, 0x037, + 0x007, 0x00A, 0x00B, 0x043, 0x00C, 0x045, 0x046, 0x309, 0x00D, 0x049, 0x04A, 0x308, 0x04C, 0x307, 0x306, 0x036, + 0x00E, 0x051, 0x052, 0x305, 0x054, 0x304, 0x303, 0x035, 0x058, 0x302, 0x301, 0x034, 0x300, 0x033, 0x032, 0x007, +}; + +static const uint8_t vc1_norm6_bits[64] = { + 1, 4, 4, 8, 4, 8, 8, 10, 4, 8, 8, 10, 8, 10, 10, 13, + 4, 8, 8, 10, 8, 10, 10, 13, 8, 10, 10, 13, 10, 13, 13, 9, + 4, 8, 8, 10, 8, 10, 10, 13, 8, 10, 10, 13, 10, 13, 13, 9, + 8, 10, 10, 13, 10, 13, 13, 9, 10, 13, 13, 9, 13, 9, 9, 6, +}; + +/* 4MV Block pattern VLC tables */ +static const uint8_t vc1_4mv_block_pattern_codes[4][16] = { + { 14, 58, 59, 25, 12, 26, 15, 15, 13, 24, 27, 0, 28, 1, 2, 2 }, + { 8, 18, 19, 4, 20, 5, 30, 11, 21, 31, 6, 12, 7, 13, 14, 0 }, + { 15, 6, 7, 2, 8, 3, 28, 9, 10, 29, 4, 11, 5, 12, 13, 0 }, + { 0, 11, 12, 4, 13, 5, 30, 16, 14, 31, 6, 17, 7, 18, 19, 10 } +}; +static const uint8_t vc1_4mv_block_pattern_bits[4][16] = { + { 5, 6, 6, 5, 5, 5, 5, 4, 5, 5, 5, 3, 5, 3, 3, 2 }, + { 4, 5, 5, 4, 5, 4, 5, 4, 5, 5, 4, 4, 4, 4, 4, 2 }, + { 4, 4, 4, 4, 4, 4, 5, 4, 4, 5, 4, 4, 4, 4, 4, 3 }, + { 2, 4, 4, 4, 4, 4, 5, 5, 4, 5, 4, 5, 4, 5, 5, 4 } +}; + +/* 2MV Block pattern VLC tables */ +static const uint8_t vc1_2mv_block_pattern_codes[4][4] = { + { 2, 1, 0, 3 }, { 1, 0, 2, 3 }, { 2, 0, 3, 1 }, { 1, 3, 2, 0 } +}; + +static const uint8_t vc1_2mv_block_pattern_bits[4][4] = { + { 2, 2, 2, 2 }, { 1, 2, 3, 3 }, { 3, 2, 3, 1 }, { 1, 3, 3, 2 } +}; + +/* Interlaced frame picture 4MV MBMODE VLC tables (p. 246, p. 360) */ +static const uint16_t vc1_intfr_4mv_mbmode_codes[4][15] = { + { 22, 17, 0, 47, 32, 10, 1, 3, 67, 133, 132, 92, 19, 93, 18 }, + { 3, 45, 0, 7, 23, 6, 1, 2, 10, 39, 44, 8, 18, 77, 76 }, + { 15, 6, 28, 9, 41, 6, 2, 15, 14, 8, 40, 29, 0, 21, 11 }, + { 7, 198, 1, 2, 193, 13, 25, 0, 97, 1599, 98, 398, 798, 192, 1598 } +}; + +static const uint8_t vc1_intfr_4mv_mbmode_bits[4][15] = { + { 5, 5, 2, 6, 6, 4, 2, 2, 7, 8, 8, 7, 5, 7, 5 }, + { 3, 6, 3, 3, 5, 3, 3, 3, 4, 6, 6, 4, 5, 7, 7 }, + { 4, 3, 5, 5, 7, 4, 2, 5, 5, 5, 7, 5, 2, 6, 5 }, + { 4, 9, 1, 3, 9, 5, 6, 2, 8, 12, 8, 10, 11, 9, 12 } +}; + +/* Interlaced frame picture NON-4MV MBMODE VLC tables (p. 363) */ +static const uint8_t vc1_intfr_non4mv_mbmode_codes[4][9] = { + { 9, 22, 0, 17, 16, 10, 1, 3, 23 }, + { 7, 0, 5, 2, 1, 1, 6, 3, 4 }, + { 1, 0, 10, 23, 44, 8, 3, 9, 45 }, + { 7, 97, 1, 2, 49, 13, 25, 0, 96 } +}; + +static const uint8_t vc1_intfr_non4mv_mbmode_bits[4][9] = { + { 4, 5, 2, 5, 5, 4, 2, 2, 5 }, + { 3, 4, 6, 2, 3, 2, 3, 5, 6 }, + { 2, 2, 4, 5, 6, 4, 2, 4, 6 }, + { 4, 8, 1, 3, 7, 5, 6, 2, 8 } +}; + +/* Interlaced field picture MBMODE VLC tables (p. 356 - 11.4.1, 11.4.2) */ +/* mixed-MV */ +static const uint8_t vc1_if_mmv_mbmode_codes[8][8] = { + { 16, 17, 3, 3, 0, 5, 9, 2 }, + { 8, 9, 3, 6, 7, 0, 5, 2 }, + { 16, 17, 5, 3, 0, 3, 9, 2 }, + { 56, 57, 15, 4, 5, 6, 29, 0 }, + { 52, 53, 27, 14, 15, 2, 12, 0 }, + { 56, 57, 29, 5, 6, 0, 15, 4 }, + { 16, 17, 6, 7, 0, 1, 9, 5 }, + { 56, 57, 0, 5, 6, 29, 4, 15 } +}; +static const uint8_t vc1_if_mmv_mbmode_bits[8][8] = { + { 6, 6, 2, 3, 2, 4, 5, 2 }, + { 5, 5, 3, 3, 3, 2, 4, 2 }, + { 6, 6, 4, 3, 2, 2, 5, 2 }, + { 6, 6, 4, 3, 3, 3, 5, 1 }, + { 6, 6, 5, 4, 4, 2, 4, 1 }, + { 6, 6, 5, 3, 3, 1, 4, 3 }, + { 5, 5, 3, 3, 2, 2, 4, 3 }, + { 6, 6, 1, 3, 3, 5, 3, 4 } +}; + +/* 1MV */ +static const uint8_t vc1_if_1mv_mbmode_codes[8][6] = { + { 0, 1, 1, 1, 1, 1 }, + { 0, 1, 1, 1, 1, 1 }, + { 16, 17, 3, 0, 9, 5 }, + { 20, 21, 3, 11, 0, 4 }, + { 4, 5, 2, 3, 3, 0 }, + { 4, 5, 3, 2, 0, 3 }, + { 0, 1, 1, 1, 1, 1 }, + { 16, 17, 9, 5, 3, 0 } +}; +static const uint8_t vc1_if_1mv_mbmode_bits[8][6] = { + { 5, 5, 1, 3, 2, 4 }, + { 5, 5, 1, 2, 3, 4 }, + { 5, 5, 2, 1, 4, 3 }, + { 5, 5, 2, 4, 1, 3 }, + { 4, 4, 2, 3, 2, 2 }, + { 4, 4, 3, 2, 2, 2 }, + { 5, 5, 3, 4, 1, 2 }, + { 5, 5, 4, 3, 2, 1 } +}; + +/* Interlaced frame/field picture MVDATA VLC tables */ + +/* 1-reference tables */ +static const uint32_t vc1_1ref_mvdata_codes[4][72] = { /* uint32_t may be too big */ + { + 0x00005, 0x0000C, 0x0001E, 0x00012, 0x0000C, 0x00034, 0x00075, 0x00070, + 0x00000, 0x00008, 0x0001B, 0x00008, 0x0001D, 0x0007C, 0x000D6, 0x001DE, + 0x001AF, 0x00005, 0x0001B, 0x00026, 0x0001E, 0x00012, 0x00076, 0x0004D, + 0x001F6, 0x001F4, 0x00039, 0x0007F, 0x00027, 0x0006A, 0x00071, 0x00035, + 0x00071, 0x00068, 0x001DC, 0x00027, 0x00073, 0x000FF, 0x000E8, 0x000E9, + 0x0007E, 0x001F9, 0x001F5, 0x001FD, 0x0003E, 0x001CA, 0x003F9, 0x0004C, + 0x00069, 0x001FA, 0x001DF, 0x001F7, 0x00070, 0x001DD, 0x00E4D, 0x00727, + 0x00392, 0x001C8, 0x001CB, 0x003F8, 0x001AE, 0x001F8, 0x001FB, 0x0E4CE, + 0x0E4CF, 0x07260, 0x07261, 0x07262, 0x07263, 0x07264, 0x07265, 0x07266 + }, + { + 0x00007, 0x00001, 0x00007, 0x00016, 0x00001, 0x00045, 0x00018, 0x002B6, + 0x00006, 0x00004, 0x00017, 0x00010, 0x00029, 0x0002C, 0x0015A, 0x00066, + 0x0019E, 0x00009, 0x00028, 0x00017, 0x00000, 0x0002A, 0x00004, 0x0005B, + 0x000B5, 0x000CE, 0x00006, 0x00044, 0x0000F, 0x00046, 0x0000E, 0x000AC, + 0x00032, 0x00037, 0x011EB, 0x0000A, 0x0001A, 0x0011F, 0x00016, 0x00014, + 0x0002B, 0x00168, 0x00055, 0x023D5, 0x00057, 0x0002F, 0x00036, 0x0002E, + 0x00169, 0x00054, 0x0047B, 0x0019F, 0x02B7D, 0x0008E, 0x00ADE, 0x00479, + 0x0056E, 0x008F4, 0x015BF, 0x00478, 0x023D4, 0x0ADF1, 0x056F9, 0xADF0E, + 0xADF0F, 0x56F80, 0x56F81, 0x56F82, 0x56F83, 0x56F84, 0x56F85, 0x56F86 + }, + { + 0x00002, 0x00006, 0x00007, 0x0000D, 0x00007, 0x00030, 0x000FF, 0x001F0, + 0x00002, 0x00000, 0x00005, 0x00019, 0x0001E, 0x00007, 0x00063, 0x000FD, + 0x00023, 0x0000E, 0x0001B, 0x0001A, 0x00006, 0x00009, 0x00018, 0x000C5, + 0x00033, 0x001F1, 0x00002, 0x003FB, 0x001F3, 0x00022, 0x001FC, 0x00042, + 0x00623, 0x00083, 0x00620, 0x0007D, 0x00040, 0x00043, 0x003E4, 0x003E5, + 0x00191, 0x00FE9, 0x00105, 0x00208, 0x000FC, 0x00624, 0x00622, 0x00190, + 0x00626, 0x007F5, 0x00C4B, 0x01FD0, 0x0104D, 0x00065, 0x00C42, 0x000C9, + 0x00627, 0x00C43, 0x00C4A, 0x0104E, 0x01FD1, 0x0104F, 0x00412, 0x104CE, + 0x104CF, 0x08260, 0x08261, 0x08262, 0x08263, 0x08264, 0x08265, 0x08266 + }, + { + 0x0000D, 0x00001, 0x00004, 0x00000, 0x00017, 0x00005, 0x0007F, 0x0004D, + 0x00003, 0x00011, 0x0003E, 0x0003B, 0x00017, 0x00067, 0x0004A, 0x000C3, + 0x000F2, 0x0000A, 0x0002C, 0x00032, 0x0003D, 0x00015, 0x00028, 0x00093, + 0x000CC, 0x00096, 0x00003, 0x00075, 0x00020, 0x0002D, 0x00021, 0x00029, + 0x00090, 0x001D0, 0x001FB, 0x0001C, 0x0004C, 0x00060, 0x00009, 0x00008, + 0x0002D, 0x0009F, 0x001FA, 0x0013D, 0x00031, 0x000FC, 0x00058, 0x00092, + 0x000F0, 0x000F1, 0x000CD, 0x00185, 0x00165, 0x0004E, 0x00091, 0x000E9, + 0x00184, 0x001D1, 0x001E6, 0x00097, 0x001E7, 0x000B3, 0x0013C, 0x0164E, + 0x0164F, 0x00B20, 0x00B21, 0x00B22, 0x00B23, 0x00B24, 0x00B25, 0x00B26 + } +}; + +static const uint8_t vc1_1ref_mvdata_bits[4][72] = { + { + 3, 4, 5, 5, 5, 6, 7, 7, 2, 4, 5, 5, 6, 7, 8, 9, 9, 4, + 6, 6, 6, 6, 7, 8, 9, 9, 6, 8, 7, 7, 7, 7, 8, 8, 9, 6, + 8, 8, 8, 8, 8, 9, 9, 9, 7, 10, 10, 8, 8, 9, 9, 9, 8, 9, + 13, 12, 11, 10, 10, 10, 9, 9, 9, 17, 17, 16, 16, 16, 16, 16, 16, 16 + }, + { + 3, 3, 4, 5, 5, 7, 8, 10, 3, 4, 5, 5, 6, 7, 9, 10, 12, 4, + 6, 6, 5, 6, 6, 8, 9, 11, 4, 7, 7, 7, 7, 8, 9, 9, 13, 5, + 8, 9, 8, 8, 9, 10, 10, 14, 7, 9, 9, 9, 10, 10, 11, 12, 14, 8, + 12, 11, 11, 12, 13, 11, 14, 16, 15, 20, 20, 19, 19, 19, 19, 19, 19, 19 + }, + { + 3, 4, 4, 4, 5, 6, 8, 9, 2, 4, 5, 5, 5, 6, 7, 8, 8, 4, + 7, 7, 6, 6, 7, 8, 8, 9, 5, 10, 9, 8, 9, 9, 11, 10, 11, 7, + 9, 9, 10, 10, 11, 12, 11, 12, 8, 11, 11, 11, 11, 11, 12, 13, 15, 9, + 12, 10, 11, 12, 12, 15, 13, 15, 13, 19, 19, 18, 18, 18, 18, 18, 18, 18 + }, + { + 4, 4, 4, 4, 5, 5, 7, 7, 3, 5, 6, 6, 6, 7, 7, 8, 8, 4, + 6, 6, 6, 6, 7, 8, 8, 8, 4, 7, 6, 6, 6, 7, 8, 9, 9, 5, + 7, 7, 6, 6, 7, 8, 9, 9, 6, 8, 8, 8, 8, 8, 8, 9, 10, 7, + 8, 8, 9, 9, 9, 8, 9, 9, 9, 14, 14, 13, 13, 13, 13, 13, 13, 13 + } +}; + +/* 2-reference tables */ +static const uint32_t vc1_2ref_mvdata_codes[8][126] = { /* table 132 - table 139 */ + { + 0x0000C, 0x0001C, 0x0000B, 0x00000, 0x0000E, 0x0002A, 0x00050, 0x00368, + 0x00002, 0x0001A, 0x00004, 0x0003A, 0x0001D, 0x0006C, 0x000EF, 0x001BC, + 0x0015F, 0x0000F, 0x00003, 0x0001C, 0x0000D, 0x0000B, 0x0003E, 0x000A7, + 0x00146, 0x00199, 0x00006, 0x0001F, 0x00004, 0x0003C, 0x00007, 0x001BE, + 0x0008B, 0x0002C, 0x007B3, 0x00005, 0x000DB, 0x00056, 0x000EC, 0x00052, + 0x001BD, 0x00078, 0x000CF, 0x00573, 0x00009, 0x00023, 0x000ED, 0x00018, + 0x00006, 0x00044, 0x000F5, 0x00079, 0x006D2, 0x0006E, 0x0002B, 0x0015D, + 0x00017, 0x0037F, 0x00144, 0x000CE, 0x00028, 0x000AB, 0x00010, 0x001B5, + 0x000F7, 0x000A6, 0x0007B, 0x00028, 0x001ED, 0x001E9, 0x006FD, 0x00004, + 0x000F5, 0x00029, 0x0028A, 0x0028B, 0x0028F, 0x00DF9, 0x00335, 0x01E85, + 0x000EE, 0x002BD, 0x0002B, 0x003D8, 0x003D1, 0x00198, 0x001E9, 0x0051D, + 0x000B4, 0x0003F, 0x00455, 0x0022B, 0x00229, 0x00451, 0x00578, 0x007B2, + 0x00570, 0x00155, 0x00032, 0x003D0, 0x00054, 0x006D3, 0x00571, 0x00454, + 0x00334, 0x01BF1, 0x000B7, 0x00029, 0x01E84, 0x0016C, 0x0019B, 0x01BF0, + 0x00579, 0x00F43, 0x000B5, 0x008A1, 0x0002A, 0x0016D, 0x008A0, 0x007A0, + 0x003D1, 0x00AE5, 0x00154, 0x00AE4, 0x00A39, 0x00A38 + }, + { + 0x00003, 0x00009, 0x00016, 0x00010, 0x000D7, 0x00335, 0x00574, 0x00555, + 0x00000, 0x0001D, 0x00009, 0x00017, 0x0002C, 0x000AD, 0x00374, 0x006B3, + 0x00577, 0x0000F, 0x00018, 0x0000A, 0x0002E, 0x00022, 0x0017C, 0x00E7B, + 0x01B89, 0x015D8, 0x00008, 0x00034, 0x0006D, 0x00023, 0x001C2, 0x00376, + 0x002D3, 0x01C4A, 0x0330A, 0x00014, 0x0006A, 0x00072, 0x0006C, 0x000E3, + 0x0019B, 0x0073F, 0x01CF0, 0x00B41, 0x00032, 0x000E6, 0x000E0, 0x000CF, + 0x000AB, 0x0019C, 0x002AB, 0x00E2B, 0x015D9, 0x0006F, 0x001C3, 0x000AF, + 0x000BF, 0x000AC, 0x0017D, 0x006E3, 0x00E29, 0x01984, 0x00054, 0x000B5, + 0x0017A, 0x001AD, 0x00199, 0x00178, 0x00358, 0x002D2, 0x01C4B, 0x0005B, + 0x002A8, 0x00331, 0x00388, 0x0038B, 0x00370, 0x00713, 0x00CC3, 0x01CF1, + 0x001B9, 0x005EF, 0x00738, 0x002F2, 0x0033B, 0x002B9, 0x006EB, 0x00570, + 0x00E24, 0x0039D, 0x005A2, 0x005A3, 0x00E7D, 0x005EE, 0x00739, 0x00554, + 0x00AA5, 0x00AA4, 0x00377, 0x01CF5, 0x00BCE, 0x00E79, 0x00660, 0x00674, + 0x006EA, 0x00E7C, 0x00D65, 0x002F6, 0x015DA, 0x01B88, 0x005A1, 0x01CF4, + 0x005E6, 0x00E28, 0x00575, 0x00D64, 0x00334, 0x0330B, 0x015DB, 0x00B40, + 0x00BCF, 0x00DC5, 0x00E2A, 0x00675, 0x00571, 0x00553 + }, + { + 0x00004, 0x00002, 0x00010, 0x00003, 0x00017, 0x00045, 0x0003E, 0x0007E, + 0x00003, 0x00002, 0x00028, 0x0001E, 0x00015, 0x00047, 0x00002, 0x0014D, + 0x00060, 0x0000B, 0x00026, 0x00024, 0x00014, 0x00032, 0x0006F, 0x000C3, + 0x00531, 0x006E5, 0x00015, 0x0003F, 0x0002D, 0x00001, 0x0013E, 0x000DD, + 0x000F6, 0x00305, 0x00331, 0x0000E, 0x00003, 0x00034, 0x00033, 0x0001A, + 0x0014A, 0x000C5, 0x000F4, 0x006E4, 0x00001, 0x0003C, 0x0007D, 0x0008D, + 0x0009D, 0x00031, 0x0006E, 0x00296, 0x000CD, 0x00025, 0x00149, 0x00032, + 0x00089, 0x00036, 0x00088, 0x0006F, 0x00003, 0x0031D, 0x0000E, 0x001AA, + 0x0027E, 0x00061, 0x0014E, 0x0014F, 0x00067, 0x000FF, 0x00183, 0x00036, + 0x00357, 0x000F5, 0x000C6, 0x000C2, 0x00299, 0x00119, 0x00231, 0x00350, + 0x0002C, 0x0018F, 0x00530, 0x00297, 0x00004, 0x001B8, 0x000C0, 0x0027A, + 0x00311, 0x0009C, 0x00621, 0x00199, 0x0031C, 0x000F7, 0x003E3, 0x00356, + 0x00189, 0x00005, 0x0006B, 0x008C2, 0x00330, 0x004FF, 0x004F0, 0x00351, + 0x004F2, 0x001F2, 0x00373, 0x00000, 0x00C41, 0x008C3, 0x009EC, 0x003E2, + 0x00304, 0x004F7, 0x004F1, 0x001F0, 0x00148, 0x00C40, 0x009ED, 0x008C0, + 0x008C1, 0x004F3, 0x004FE, 0x000FE, 0x001F3, 0x001A9 + }, + { + 0x00000, 0x00004, 0x0002F, 0x00052, 0x00010, 0x000AD, 0x0050B, 0x00190, + 0x00003, 0x00016, 0x00007, 0x0000D, 0x000BB, 0x00173, 0x000C9, 0x0050F, + 0x0172C, 0x00003, 0x00011, 0x00005, 0x00043, 0x00023, 0x0004B, 0x0032E, + 0x02E5B, 0x00482, 0x00009, 0x0002A, 0x00014, 0x0002A, 0x00108, 0x005CA, + 0x0065A, 0x02136, 0x02132, 0x0000B, 0x00013, 0x00041, 0x000B8, 0x00174, + 0x00100, 0x014DA, 0x0404E, 0x01437, 0x0002B, 0x00085, 0x000A7, 0x000A0, + 0x0014C, 0x0029A, 0x0032C, 0x02133, 0x0142A, 0x00051, 0x00284, 0x000AC, + 0x00102, 0x00045, 0x00044, 0x0081B, 0x0065E, 0x00CB7, 0x00018, 0x0050C, + 0x00212, 0x002E4, 0x00203, 0x00094, 0x00122, 0x0081A, 0x00655, 0x00033, + 0x002BA, 0x00246, 0x00242, 0x00A6E, 0x0040C, 0x00808, 0x02134, 0x0404F, + 0x00175, 0x00405, 0x00247, 0x0012A, 0x00A14, 0x002BB, 0x00191, 0x0084F, + 0x01438, 0x000AF, 0x00B97, 0x00483, 0x0143B, 0x0032B, 0x00243, 0x0142B, + 0x00958, 0x029BF, 0x00049, 0x00A6C, 0x014DB, 0x004AD, 0x014DE, 0x0084E, + 0x01434, 0x00257, 0x02E5A, 0x00207, 0x01435, 0x01439, 0x00CB6, 0x0143A, + 0x00194, 0x00654, 0x02135, 0x0537C, 0x0015C, 0x00240, 0x01012, 0x0537D, + 0x00959, 0x01098, 0x01436, 0x0065F, 0x02026, 0x02137 + }, + { + 0x00005, 0x00019, 0x00016, 0x00011, 0x0003E, 0x0005E, 0x000EF, 0x000E2, + 0x00000, 0x00039, 0x0002B, 0x00026, 0x00028, 0x00012, 0x000C2, 0x000ED, + 0x0011D, 0x0000D, 0x00031, 0x0002A, 0x00025, 0x00020, 0x0005C, 0x001ED, + 0x0024D, 0x00770, 0x00006, 0x0007A, 0x00060, 0x0004F, 0x00048, 0x00039, + 0x00186, 0x00213, 0x00EC6, 0x0000F, 0x00026, 0x0005F, 0x00075, 0x00070, + 0x00027, 0x001DB, 0x003C6, 0x0078F, 0x0003F, 0x000A6, 0x000F0, 0x0003A, + 0x00052, 0x0004E, 0x000E3, 0x001D9, 0x0030F, 0x00010, 0x001DD, 0x000A7, + 0x000F7, 0x00022, 0x00092, 0x003C4, 0x002EF, 0x00762, 0x00079, 0x0008F, + 0x001DA, 0x00087, 0x000E8, 0x000BA, 0x00176, 0x000EE, 0x003B0, 0x00085, + 0x00119, 0x0030E, 0x00108, 0x001D2, 0x0010C, 0x00773, 0x00424, 0x00434, + 0x00071, 0x005DD, 0x001C1, 0x003A7, 0x00127, 0x0008D, 0x0021B, 0x007B2, + 0x001DF, 0x003D8, 0x00764, 0x00EE4, 0x003B3, 0x0074D, 0x001D8, 0x005DC, + 0x0084A, 0x00499, 0x003C5, 0x01D8E, 0x00765, 0x00435, 0x00771, 0x001C2, + 0x00118, 0x003BC, 0x00381, 0x00387, 0x07B33, 0x01097, 0x01096, 0x01ECD, + 0x00E99, 0x00F1C, 0x00F1D, 0x00EE5, 0x0011C, 0x07B32, 0x03D98, 0x01D8F, + 0x00E98, 0x00F67, 0x003BD, 0x00380, 0x00498, 0x00386 + }, + { + 0x0000D, 0x00010, 0x0002E, 0x00039, 0x0000D, 0x00074, 0x000ED, 0x000B6, + 0x00001, 0x00002, 0x00000, 0x00030, 0x00029, 0x00070, 0x000F3, 0x0008C, + 0x00166, 0x00009, 0x00033, 0x00078, 0x00006, 0x000C4, 0x0000B, 0x00163, + 0x000CC, 0x005BE, 0x0001F, 0x0002F, 0x00064, 0x00018, 0x000C6, 0x0000A, + 0x00162, 0x002C0, 0x00EF3, 0x00007, 0x0000F, 0x000E3, 0x000CA, 0x000B2, + 0x0018F, 0x003AE, 0x0075F, 0x00C51, 0x00015, 0x00047, 0x000EE, 0x000E2, + 0x000EA, 0x00009, 0x0016A, 0x002C3, 0x0059D, 0x0003D, 0x00008, 0x001D9, + 0x00032, 0x0000E, 0x0016E, 0x0032C, 0x0065B, 0x0196B, 0x00002, 0x0000F, + 0x001D8, 0x0008D, 0x000B4, 0x001E4, 0x00067, 0x00317, 0x00794, 0x00022, + 0x003BE, 0x00315, 0x00034, 0x00037, 0x002DE, 0x0006C, 0x00EFE, 0x0066C, + 0x00028, 0x003CB, 0x003AC, 0x00035, 0x0016B, 0x003BD, 0x002C1, 0x0062C, + 0x01DFE, 0x0000E, 0x0059E, 0x005BF, 0x000DA, 0x00629, 0x00584, 0x00EB7, + 0x00B0A, 0x0066D, 0x0000C, 0x0077E, 0x0059C, 0x00778, 0x0075E, 0x0075A, + 0x0062D, 0x00337, 0x00334, 0x00197, 0x01E57, 0x01DE4, 0x0196A, 0x01E56, + 0x00C50, 0x00B3F, 0x01E54, 0x00B0B, 0x0018E, 0x001B6, 0x01E55, 0x00CB4, + 0x00B3E, 0x00EB6, 0x01DE5, 0x01DFF, 0x00335, 0x001B7 + }, + { + 0x00001, 0x0000B, 0x00019, 0x0006F, 0x0002A, 0x00075, 0x007EB, 0x00163, + 0x00001, 0x0000E, 0x0001A, 0x0003E, 0x0001C, 0x0002D, 0x00164, 0x007EC, + 0x00165, 0x00004, 0x00006, 0x00036, 0x0007F, 0x000AE, 0x00158, 0x0015C, + 0x0056D, 0xFD510, 0x00000, 0x00004, 0x0007B, 0x000F3, 0x0003B, 0x007ED, + 0x002B3, 0x002CC, 0x0056E, 0x00018, 0x0003E, 0x00017, 0x0001E, 0x000AF, + 0x003F7, 0x0056F, 0x002CD, 0xFD511, 0x00014, 0x000AD, 0x000AA, 0x00014, + 0x000A8, 0x00153, 0x000E8, 0x001FE, 0x00DCF, 0x00078, 0x001B8, 0x00152, + 0x000FE, 0x002B1, 0x0015D, 0x00160, 0xFD512, 0xFD513, 0x0007A, 0x002B0, + 0x001E5, 0x000E9, 0x000FC, 0x006E6, 0x00DC8, 0x00584, 0xFD514, 0x000AB, + 0x00DDE, 0x00159, 0x003F4, 0x00DC9, 0x00DCA, 0x001FA, 0xFD515, 0xFD516, + 0x000FC, 0x001FF, 0x001E4, 0x000AF, 0x0015A, 0x00167, 0x00DCB, 0x00585, + 0xFD517, 0x003F7, 0x03F55, 0xFD518, 0x00DDC, 0x00586, 0x03F56, 0xFD519, + 0x03F57, 0xFD51A, 0x001BA, 0x00587, 0x00588, 0x00DDF, 0x002B2, 0xFD51B, + 0x00DCE, 0x003F6, 0xFD51C, 0x00FD4, 0xFD51D, 0xFD51E, 0xFD51F, 0x7EA80, + 0x7EA81, 0x0056C, 0x7EA82, 0x7EA83, 0x00376, 0x00589, 0x0058A, 0x7EA84, + 0x7EA85, 0x00DDD, 0x7EA86, 0x7EA87, 0x0058B, 0x07EA9 + }, + { + 0x00003, 0x0000E, 0x0000F, 0x0007E, 0x00062, 0x000C6, 0x00CD9, 0x0063E, + 0x00002, 0x00002, 0x00000, 0x00018, 0x0000C, 0x00069, 0x00039, 0x00707, + 0x00C7E, 0x00002, 0x0000D, 0x0001B, 0x0000F, 0x0019A, 0x00647, 0x01A37, + 0x346C4, 0x0346D, 0x00001, 0x0001E, 0x0007F, 0x0000A, 0x000E1, 0x00661, + 0x00CE4, 0x346C5, 0x346C6, 0x0001D, 0x00030, 0x0000D, 0x000CB, 0x00199, + 0x00320, 0x0008E, 0x0652E, 0x346C7, 0x0003E, 0x00039, 0x00035, 0x00033, + 0x0019F, 0x001C0, 0x00CDA, 0x346C8, 0x346C9, 0x0000B, 0x000D0, 0x0019E, + 0x00022, 0x00038, 0x0018E, 0x0031E, 0x03294, 0x0023C, 0x00032, 0x00012, + 0x00013, 0x00071, 0x0019D, 0x00020, 0x00C87, 0x00CC0, 0x346CA, 0x00338, + 0x00653, 0x001A2, 0x0032A, 0x00322, 0x00CE7, 0x00084, 0x0011F, 0x346CB, + 0x00325, 0x00649, 0x0032B, 0x00077, 0x00648, 0x00642, 0x00C86, 0x00C8C, + 0x346CC, 0x0003A, 0x019B7, 0x00043, 0x00327, 0x0008C, 0x0008D, 0x00C8D, + 0x346CD, 0x346CE, 0x00337, 0x00CE5, 0x00085, 0x00326, 0x00347, 0x00CA4, + 0x00C7F, 0x00D1A, 0x346CF, 0x00328, 0x1A360, 0x1A361, 0x00CD8, 0x0068C, + 0x03295, 0x03296, 0x0652F, 0x066D8, 0x00331, 0x00706, 0x0023D, 0x00076, + 0x00CC1, 0x00382, 0x00CE6, 0x066D9, 0x066DA, 0x066DB + } +}; + +static const uint8_t vc1_2ref_mvdata_bits[8][126] = { + { + 4, 5, 5, 5, 6, 7, 8, 10, 2, 5, 5, 6, 6, 7, 8, 9, + 10, 4, 5, 6, 6, 7, 8, 9, 10, 11, 4, 6, 6, 7, 7, 9, + 9, 10, 12, 5, 8, 8, 8, 8, 9, 9, 10, 12, 5, 7, 8, 7, + 7, 8, 9, 9, 11, 7, 9, 10, 9, 10, 10, 10, 10, 12, 6, 9, + 9, 9, 9, 9, 10, 10, 11, 7, 10, 10, 11, 11, 11, 12, 12, 14, + 8, 11, 10, 11, 11, 11, 11, 12, 12, 8, 12, 11, 11, 12, 12, 12, + 12, 13, 8, 12, 11, 11, 12, 12, 12, 13, 12, 9, 14, 13, 11, 13, + 12, 13, 12, 13, 9, 13, 13, 12, 12, 13, 13, 13, 13, 13 + }, + { + 3, 4, 5, 6, 8, 10, 11, 11, 2, 5, 5, 6, 7, 8, 10, 11, + 11, 4, 5, 5, 6, 7, 9, 12, 13, 13, 4, 6, 7, 7, 9, 10, + 11, 13, 14, 5, 7, 7, 7, 8, 9, 11, 13, 13, 6, 8, 8, 8, + 8, 9, 10, 12, 13, 7, 9, 8, 8, 8, 9, 11, 12, 13, 7, 9, + 9, 9, 9, 9, 10, 11, 13, 8, 10, 10, 10, 10, 10, 11, 12, 13, + 9, 11, 11, 10, 10, 10, 11, 11, 12, 10, 12, 12, 12, 11, 11, 11, + 12, 12, 10, 13, 12, 12, 11, 11, 11, 12, 12, 10, 13, 13, 12, 13, + 11, 12, 11, 12, 10, 14, 13, 13, 12, 12, 12, 11, 11, 11 + }, + { + 4, 4, 5, 5, 6, 7, 8, 9, 2, 5, 6, 6, 6, 7, 7, 9, + 9, 4, 6, 6, 6, 7, 8, 9, 11, 12, 5, 7, 7, 7, 9, 9, + 10, 11, 12, 5, 7, 7, 7, 7, 9, 9, 10, 12, 5, 8, 8, 8, + 8, 8, 9, 10, 10, 6, 9, 8, 8, 8, 8, 9, 9, 11, 6, 10, + 10, 9, 9, 9, 9, 10, 10, 7, 11, 10, 9, 9, 10, 9, 10, 11, + 7, 10, 11, 10, 10, 10, 9, 10, 11, 8, 12, 11, 11, 10, 11, 11, + 10, 10, 8, 12, 12, 11, 11, 11, 11, 10, 11, 8, 13, 12, 12, 11, + 11, 11, 11, 10, 9, 13, 12, 12, 12, 11, 11, 10, 10, 10 + }, + { + 3, 4, 6, 7, 7, 9, 11, 11, 2, 5, 5, 6, 8, 9, 10, 11, + 13, 3, 5, 5, 7, 8, 9, 12, 14, 13, 4, 6, 6, 7, 9, 11, + 13, 14, 14, 5, 7, 7, 8, 9, 9, 13, 15, 13, 6, 8, 8, 8, + 9, 10, 12, 14, 13, 7, 10, 9, 9, 9, 9, 12, 13, 14, 7, 11, + 10, 10, 10, 10, 11, 12, 13, 8, 11, 12, 12, 12, 11, 12, 14, 15, + 9, 11, 12, 11, 12, 11, 11, 12, 13, 9, 12, 13, 13, 12, 12, 13, + 14, 14, 9, 12, 13, 13, 13, 12, 13, 12, 14, 10, 13, 13, 14, 13, + 11, 13, 14, 15, 10, 12, 13, 15, 14, 13, 13, 13, 14, 14 + }, + { + 4, 5, 5, 5, 6, 7, 8, 8, 2, 6, 6, 6, 6, 6, 8, 9, + 10, 4, 6, 6, 6, 6, 7, 9, 10, 11, 4, 7, 7, 7, 7, 7, + 9, 10, 12, 5, 7, 7, 7, 7, 7, 9, 10, 11, 6, 8, 8, 7, + 7, 7, 8, 9, 10, 6, 9, 8, 8, 7, 8, 10, 10, 11, 7, 9, + 9, 8, 8, 8, 9, 9, 10, 8, 10, 10, 9, 9, 9, 11, 11, 11, + 8, 11, 10, 10, 9, 9, 10, 11, 10, 10, 12, 12, 11, 11, 10, 11, + 12, 11, 10, 13, 12, 11, 11, 10, 10, 11, 11, 11, 15, 13, 13, 13, + 12, 12, 12, 12, 10, 15, 14, 13, 12, 12, 11, 11, 11, 11 + }, + { + 4, 5, 6, 6, 6, 7, 8, 8, 2, 4, 5, 6, 6, 7, 8, 8, + 9, 4, 6, 7, 7, 8, 8, 9, 10, 11, 5, 6, 7, 7, 8, 8, + 9, 10, 12, 5, 7, 8, 8, 8, 9, 10, 11, 12, 5, 7, 8, 8, + 8, 8, 9, 10, 11, 6, 8, 9, 8, 8, 9, 10, 11, 13, 5, 8, + 9, 8, 8, 9, 9, 10, 11, 6, 10, 10, 9, 9, 10, 10, 12, 13, + 6, 10, 10, 9, 9, 10, 10, 11, 13, 7, 11, 11, 11, 11, 11, 12, + 12, 13, 7, 11, 11, 11, 11, 11, 11, 12, 12, 9, 13, 13, 13, 13, + 12, 12, 13, 12, 9, 12, 13, 12, 12, 12, 13, 13, 12, 12 + }, + { + 3, 5, 6, 8, 9, 10, 12, 12, 1, 5, 6, 7, 8, 9, 12, 12, + 12, 4, 6, 7, 8, 9, 12, 12, 14, 21, 4, 6, 8, 9, 9, 12, + 13, 13, 14, 6, 9, 8, 8, 9, 13, 14, 13, 21, 6, 9, 9, 8, + 9, 10, 11, 12, 13, 8, 10, 10, 11, 11, 12, 12, 21, 21, 8, 11, + 10, 11, 11, 12, 13, 14, 21, 9, 13, 10, 11, 13, 13, 12, 21, 21, + 9, 12, 10, 11, 12, 12, 13, 14, 21, 11, 15, 21, 13, 14, 15, 21, + 15, 21, 10, 14, 14, 13, 13, 21, 13, 13, 21, 13, 21, 21, 21, 20, + 20, 14, 20, 20, 11, 14, 14, 20, 20, 13, 20, 20, 14, 16 + }, + { + 2, 5, 6, 8, 9, 10, 13, 13, 2, 4, 5, 6, 8, 9, 10, 13, + 14, 3, 5, 7, 8, 10, 12, 15, 20, 16, 4, 6, 8, 8, 10, 12, + 13, 20, 20, 7, 8, 8, 9, 10, 11, 12, 16, 20, 7, 8, 8, 8, + 10, 11, 13, 20, 20, 8, 10, 10, 10, 10, 11, 12, 15, 14, 8, 9, + 9, 9, 10, 10, 13, 13, 20, 11, 12, 11, 11, 11, 13, 12, 13, 20, + 11, 12, 11, 11, 12, 12, 13, 13, 20, 10, 14, 11, 11, 12, 12, 13, + 20, 20, 11, 13, 12, 11, 12, 13, 14, 14, 20, 11, 19, 19, 13, 13, + 15, 15, 16, 16, 11, 13, 14, 11, 13, 12, 13, 16, 16, 16 + } +}; + +/* P-Picture CBPCY VLC tables */ +// Looks like original tables are not conforming to standard at all. Are they used for old WMV? +static const uint16_t vc1_cbpcy_p_codes[4][64] = { + { + 0, 6, 15, 13, 13, 11, 3, 13, 5, 8, 49, 10, 12, 114, 102, 119, + 1, 54, 96, 8, 10, 111, 5, 15, 12, 10, 2, 12, 13, 115, 53, 63, + 1, 7, 1, 7, 14, 12, 4, 14, 1, 9, 97, 11, 7, 58, 52, 62, + 4, 103, 1, 9, 11, 56, 101, 118, 4, 110, 100, 30, 2, 5, 4, 3 + }, + { + 0, 9, 1, 18, 5, 14, 237, 26, 3, 121, 3, 22, 13, 16, 6, 30, + 2, 10, 1, 20, 12, 241, 5, 28, 16, 12, 3, 24, 28, 124, 239, 247, + 1, 240, 1, 19, 18, 15, 4, 27, 1, 122, 2, 23, 1, 17, 7, 31, + 1, 11, 2, 21, 19, 246, 238, 29, 17, 13, 236, 25, 58, 63, 8, 125 + }, + { + 0, 201, 25, 231, 5, 221, 1, 3, 2, 414, 2, 241, 16, 225, 195, 492, + 2, 412, 1, 240, 7, 224, 98, 245, 1, 220, 96, 5, 9, 230, 101, 247, + 1, 102, 1, 415, 24, 3, 2, 244, 3, 54, 3, 484, 17, 114, 200, 493, + 3, 413, 1, 4, 13, 113, 99, 485, 4, 111, 194, 243, 5, 29, 26, 31 + }, + { + 0, 28, 12, 44, 3, 36, 20, 52, 2, 32, 16, 48, 8, 40, 24, 28, + 1, 30, 14, 46, 6, 38, 22, 54, 3, 34, 18, 50, 10, 42, 26, 30, + 1, 29, 13, 45, 5, 37, 21, 53, 2, 33, 17, 49, 9, 41, 25, 29, + 1, 31, 15, 47, 7, 39, 23, 55, 4, 35, 19, 51, 11, 43, 27, 31 + } +}; + +static const uint8_t vc1_cbpcy_p_bits[4][64] = { + { + 13, 13, 7, 13, 7, 13, 13, 12, 6, 13, 7, 12, 6, 8, 8, 8, + 5, 7, 8, 12, 6, 8, 13, 12, 7, 13, 13, 12, 6, 8, 7, 7, + 6, 13, 8, 12, 7, 13, 13, 12, 7, 13, 8, 12, 5, 7, 7, 7, + 6, 8, 13, 12, 6, 7, 8, 8, 5, 8, 8, 6, 3, 3, 3, 2 + }, + { + 14, 13, 8, 13, 3, 13, 8, 13, 3, 7, 8, 13, 4, 13, 13, 13, + 3, 13, 13, 13, 4, 8, 13, 13, 5, 13, 13, 13, 5, 7, 8, 8, + 3, 8, 14, 13, 5, 13, 13, 13, 4, 7, 13, 13, 6, 13, 13, 13, + 5, 13, 8, 13, 5, 8, 8, 13, 5, 13, 8, 13, 6, 6, 13, 7 + }, + { + 13, 8, 6, 8, 4, 8, 13, 12, 4, 9, 8, 8, 5, 8, 8, 9, + 5, 9, 10, 8, 4, 8, 7, 8, 6, 8, 7, 13, 4, 8, 7, 8, + 5, 7, 8, 9, 6, 13, 13, 8, 4, 6, 8, 9, 5, 7, 8, 9, + 5, 9, 9, 13, 5, 7, 7, 9, 4, 7, 8, 8, 3, 5, 5, 5 + }, + { + 9, 9, 9, 9, 2, 9, 9, 9, 2, 9, 9, 9, 9, 9, 9, 8, + 3, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, + 2, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8 + } +}; + +/* Interlaced CBPCY VLC tables (Table 124 - Table 131) */ +static const uint16_t vc1_icbpcy_p_codes[8][63] = { + { + 0x2F1A, 0x2F1B, 0x178C, 0x0090, 0x02A8, 0x02A9, 0x0BC7, 0x0091, + 0x02AA, 0x02AB, 0x05E0, 0x004A, 0x0096, 0x0097, 0x00BD, 0x0092, + 0x02AC, 0x02AD, 0x05E1, 0x0098, 0x0132, 0x0133, 0x0179, 0x0134, + 0x026A, 0x026B, 0x02FC, 0x004E, 0x0040, 0x0041, 0x002B, 0x0093, + 0x02AE, 0x02AF, 0x05E2, 0x0136, 0x026E, 0x026F, 0x02FD, 0x009E, + 0x013E, 0x013F, 0x017F, 0x0050, 0x0042, 0x0043, 0x002C, 0x0051, + 0x00A4, 0x00A5, 0x00BE, 0x0053, 0x0044, 0x0045, 0x002D, 0x0054, + 0x0046, 0x0047, 0x002E, 0x0003, 0x0000, 0x0001, 0x0001 + }, + { + 0x0041, 0x0042, 0x0100, 0x0043, 0x0088, 0x0089, 0x0101, 0x0045, + 0x008C, 0x008D, 0x0102, 0x0010, 0x0022, 0x0023, 0x0024, 0x0047, + 0x0010, 0x0011, 0x0103, 0x0025, 0x0058, 0x0059, 0x005A, 0x005B, + 0x005A, 0x005B, 0x005C, 0x000C, 0x0030, 0x0031, 0x0019, 0x0009, + 0x0014, 0x0015, 0x002C, 0x005C, 0x005D, 0x005E, 0x005F, 0x0026, + 0x005D, 0x005E, 0x005F, 0x000D, 0x0034, 0x0035, 0x001B, 0x0014, + 0x0027, 0x002A, 0x002B, 0x000E, 0x0038, 0x0039, 0x001D, 0x000F, + 0x003C, 0x003D, 0x001F, 0x0005, 0x0009, 0x0000, 0x0003 + }, + { + 0x0032, 0x0033, 0x001A, 0x0026, 0x00E4, 0x00E5, 0x01E6, 0x0027, + 0x00E6, 0x00E7, 0x01E7, 0x000E, 0x0063, 0x006C, 0x0077, 0x0028, + 0x00E8, 0x00E9, 0x01E8, 0x007B, 0x00DA, 0x00DB, 0x00EC, 0x00F5, + 0x01B8, 0x01B9, 0x01DA, 0x0021, 0x004B, 0x0054, 0x002B, 0x0029, + 0x00EA, 0x00EB, 0x01E9, 0x004A, 0x01BA, 0x01BB, 0x01DB, 0x0020, + 0x00DE, 0x00DF, 0x00F2, 0x0022, 0x0055, 0x0058, 0x002D, 0x000F, + 0x0070, 0x0071, 0x0078, 0x0023, 0x0059, 0x005C, 0x002F, 0x0024, + 0x005D, 0x0062, 0x0030, 0x0002, 0x001F, 0x0006, 0x0000 + }, + { + 0x0028, 0x0029, 0x009D, 0x0000, 0x01EA, 0x01EB, 0x01EC, 0x0001, + 0x01ED, 0x01EE, 0x01EF, 0x0005, 0x00F0, 0x00F1, 0x003B, 0x0002, + 0x01F0, 0x01F1, 0x01F2, 0x003F, 0x015C, 0x015D, 0x0099, 0x0010, + 0x03D0, 0x03D1, 0x0130, 0x000F, 0x009E, 0x009F, 0x00FB, 0x0003, + 0x01F3, 0x01F4, 0x01F5, 0x0011, 0x03D2, 0x03D3, 0x0131, 0x0009, + 0x015E, 0x015F, 0x009C, 0x0010, 0x00A8, 0x00A9, 0x0038, 0x0006, + 0x00F2, 0x00F3, 0x004D, 0x0011, 0x00AA, 0x00AB, 0x0039, 0x0012, + 0x00AC, 0x00AD, 0x003A, 0x0006, 0x0016, 0x0017, 0x000E + }, + { + 0x003C, 0x003D, 0x001F, 0x000A, 0x0061, 0x0062, 0x0002, 0x000B, + 0x0063, 0x0064, 0x0003, 0x0007, 0x0003, 0x0004, 0x000B, 0x000C, + 0x0065, 0x0066, 0x0004, 0x0012, 0x000A, 0x000B, 0x0014, 0x001B, + 0x0018, 0x0019, 0x0034, 0x002C, 0x0067, 0x0068, 0x0035, 0x000D, + 0x0069, 0x006C, 0x0005, 0x0060, 0x001A, 0x001B, 0x0035, 0x0013, + 0x000E, 0x000F, 0x0015, 0x002D, 0x006D, 0x006E, 0x0038, 0x0008, + 0x0008, 0x0009, 0x000C, 0x002E, 0x006F, 0x0072, 0x003A, 0x002F, + 0x0073, 0x0000, 0x003B, 0x0007, 0x0014, 0x0015, 0x0004 + }, + { + 0x0038, 0x0039, 0x009D, 0x000A, 0x0091, 0x0092, 0x0093, 0x000B, + 0x0094, 0x0095, 0x0096, 0x0003, 0x00EE, 0x00EF, 0x0036, 0x000C, + 0x0097, 0x0098, 0x0099, 0x0008, 0x01E4, 0x01E5, 0x006A, 0x0018, + 0x03CC, 0x03CD, 0x00D6, 0x000E, 0x009E, 0x009F, 0x00F5, 0x000D, + 0x009A, 0x009B, 0x009C, 0x0019, 0x03CE, 0x03CF, 0x00D7, 0x0009, + 0x01E8, 0x01E9, 0x0090, 0x000F, 0x00E8, 0x00E9, 0x00F6, 0x0005, + 0x00F0, 0x00F1, 0x0037, 0x0010, 0x00EA, 0x00EB, 0x00F7, 0x0011, + 0x00EC, 0x00ED, 0x0034, 0x0000, 0x003E, 0x003F, 0x0002 + }, + { + 0x003C, 0x003D, 0x01CF, 0x0000, 0x00BF, 0x00E0, 0x01FC, 0x0001, + 0x00E1, 0x00E2, 0x01FD, 0x0009, 0x01F1, 0x01F2, 0x01F3, 0x0002, + 0x00E3, 0x00E4, 0x01FE, 0x0011, 0x03EE, 0x03EF, 0x03F0, 0x0021, + 0x07E2, 0x07E3, 0x07E4, 0x0018, 0x03F7, 0x03FE, 0x03FF, 0x0003, + 0x00E5, 0x00E6, 0x0080, 0x002E, 0x07E5, 0x07E6, 0x07E7, 0x0016, + 0x03F4, 0x03F5, 0x03F6, 0x0019, 0x0102, 0x0103, 0x0104, 0x000A, + 0x01F4, 0x01F5, 0x01F6, 0x001A, 0x0105, 0x0106, 0x0107, 0x001B, + 0x0178, 0x0179, 0x01CE, 0x001D, 0x00BD, 0x00BE, 0x01F0 + }, + { + 0x0003, 0x0004, 0x01B6, 0x0004, 0x002E, 0x002F, 0x000E, 0x0005, + 0x0030, 0x0031, 0x000F, 0x0003, 0x000A, 0x000B, 0x0014, 0x0006, + 0x0032, 0x0033, 0x0010, 0x0005, 0x0030, 0x0031, 0x0032, 0x0009, + 0x0066, 0x0067, 0x0068, 0x001D, 0x01B7, 0x01B8, 0x01B9, 0x0007, + 0x0034, 0x0035, 0x0011, 0x0016, 0x0069, 0x006A, 0x006B, 0x000A, + 0x0036, 0x0037, 0x00D8, 0x001E, 0x01BA, 0x01BB, 0x01BC, 0x0004, + 0x0015, 0x0016, 0x0017, 0x001F, 0x01BD, 0x01BE, 0x01BF, 0x0000, + 0x0010, 0x0011, 0x0012, 0x001C, 0x00D9, 0x00DA, 0x0013 + } +}; + +static const uint8_t vc1_icbpcy_p_bits[8][63] = { + { + 15, 15, 14, 9, 11, 11, 13, 9, 11, 11, 12, 8, 9, 9, 9, 9, + 11, 11, 12, 9, 10, 10, 10, 10, 11, 11, 11, 8, 8, 8, 7, 9, + 11, 11, 12, 10, 11, 11, 11, 9, 10, 10, 10, 8, 8, 8, 7, 8, + 9, 9, 9, 8, 8, 8, 7, 8, 8, 8, 7, 3, 3, 3, 1 + }, + { + 7, 7, 9, 7, 8, 8, 9, 7, 8, 8, 9, 6, 7, 7, 7, 7, + 7, 7, 9, 7, 8, 8, 8, 8, 9, 9, 9, 6, 7, 7, 6, 6, + 7, 7, 8, 8, 9, 9, 9, 7, 8, 8, 8, 6, 7, 7, 6, 6, + 7, 7, 7, 6, 7, 7, 6, 6, 7, 7, 6, 3, 4, 3, 2 + }, + { + 6, 6, 5, 6, 8, 8, 9, 6, 8, 8, 9, 5, 7, 7, 7, 6, + 8, 8, 9, 7, 8, 8, 8, 8, 9, 9, 9, 6, 7, 7, 6, 6, + 8, 8, 9, 7, 9, 9, 9, 6, 8, 8, 8, 6, 7, 7, 6, 5, + 7, 7, 7, 6, 7, 7, 6, 6, 7, 7, 6, 3, 5, 4, 2 + }, + { + 6, 6, 8, 4, 9, 9, 9, 4, 9, 9, 9, 4, 8, 8, 7, 4, + 9, 9, 9, 6, 9, 9, 8, 6, 10, 10, 9, 5, 8, 8, 8, 4, + 9, 9, 9, 6, 10, 10, 9, 5, 9, 9, 8, 5, 8, 8, 7, 4, + 8, 8, 7, 5, 8, 8, 7, 5, 8, 8, 7, 3, 5, 5, 4 + }, + { + 6, 6, 5, 5, 7, 7, 7, 5, 7, 7, 7, 5, 6, 6, 6, 5, + 7, 7, 7, 6, 7, 7, 7, 7, 8, 8, 8, 6, 7, 7, 6, 5, + 7, 7, 7, 7, 8, 8, 8, 6, 7, 7, 7, 6, 7, 7, 6, 5, + 6, 6, 6, 6, 7, 7, 6, 6, 7, 6, 6, 4, 5, 5, 3 + }, + { + 6, 6, 8, 4, 8, 8, 8, 4, 8, 8, 8, 4, 8, 8, 7, 4, + 8, 8, 8, 5, 9, 9, 8, 6, 10, 10, 9, 5, 8, 8, 8, 4, + 8, 8, 8, 6, 10, 10, 9, 5, 9, 9, 8, 5, 8, 8, 8, 4, + 8, 8, 7, 5, 8, 8, 8, 5, 8, 8, 7, 3, 6, 6, 4 + }, + { + 6, 6, 9, 3, 8, 8, 9, 3, 8, 8, 9, 4, 9, 9, 9, 3, + 8, 8, 9, 5, 10, 10, 10, 6, 11, 11, 11, 5, 10, 10, 10, 3, + 8, 8, 8, 6, 11, 11, 11, 5, 10, 10, 10, 5, 9, 9, 9, 4, + 9, 9, 9, 5, 9, 9, 9, 5, 9, 9, 9, 5, 8, 8, 9 + }, + { + 6, 6, 10, 3, 7, 7, 7, 3, 7, 7, 7, 4, 8, 8, 8, 3, + 7, 7, 7, 5, 9, 9, 9, 6, 10, 10, 10, 6, 10, 10, 10, 3, + 7, 7, 7, 6, 10, 10, 10, 5, 9, 9, 9, 6, 10, 10, 10, 4, + 8, 8, 8, 6, 10, 10, 10, 5, 9, 9, 9, 6, 9, 9, 9 + } +}; + +/* MacroBlock Transform Type: 7.1.3.11, p89 + * 8x8:B + * 8x4:B:btm 8x4:B:top 8x4:B:both, + * 4x8:B:right 4x8:B:left 4x8:B:both + * 4x4:B 8x8:MB + * 8x4:MB:btm 8x4:MB:top 8x4,MB,both + * 4x8,MB,right 4x8,MB,left + * 4x4,MB */ +static const uint16_t vc1_ttmb_codes[3][16] = { + { + 0x0003, + 0x002E, 0x005F, 0x0000, + 0x0016, 0x0015, 0x0001, + 0x0004, 0x0014, + 0x02F1, 0x0179, 0x017B, + 0x0BC0, 0x0BC1, 0x05E1, + 0x017A + }, + { + 0x0006, + 0x0006, 0x0003, 0x0007, + 0x000F, 0x000E, 0x0000, + 0x0002, 0x0002, + 0x0014, 0x0011, 0x000B, + 0x0009, 0x0021, 0x0015, + 0x0020 + }, + { + 0x0006, + 0x0000, 0x000E, 0x0005, + 0x0002, 0x0003, 0x0003, + 0x000F, 0x0002, + 0x0081, 0x0021, 0x0009, + 0x0101, 0x0041, 0x0011, + 0x0100 + } +}; + +static const uint8_t vc1_ttmb_bits[3][16] = { + { + 2, + 6, 7, 2, + 5, 5, 2, + 3, 5, + 10, 9, 9, + 12, 12, 11, + 9 + }, + { + 3, + 4, 4, 4, + 4, 4, 3, + 3, 2, + 7, 7, 6, + 6, 8, 7, + 8 + }, + { + 3, + 3, 4, 5, + 3, 3, 4, + 4, 2, + 10, 8, 6, + 11, 9, 7, + 11 + } +}; + +/* TTBLK (Transform Type per Block) tables */ +static const uint8_t vc1_ttblk_codes[3][8] = { + { 0, 1, 3, 5, 16, 17, 18, 19 }, + { 3, 0, 1, 2, 3, 5, 8, 9 }, + { 1, 0, 1, 4, 6, 7, 10, 11 } +}; +static const uint8_t vc1_ttblk_bits[3][8] = { + { 2, 2, 2, 3, 5, 5, 5, 5 }, + { 2, 3, 3, 3, 3, 3, 4, 4 }, + { 2, 3, 3, 3, 3, 3, 4, 4 } +}; + +/* SUBBLKPAT tables, p93-94, reordered */ +static const uint8_t vc1_subblkpat_codes[3][15] = { + { 14, 12, 7, 11, 9, 26, 2, 10, 27, 8, 0, 6, 1, 15, 1 }, + { 14, 0, 8, 15, 10, 4, 23, 13, 5, 9, 25, 3, 24, 22, 1 }, + { 5, 6, 2, 2, 8, 0, 28, 3, 1, 3, 29, 1, 19, 18, 15 } +}; +static const uint8_t vc1_subblkpat_bits[3][15] = { + { 5, 5, 5, 5, 5, 6, 4, 5, 6, 5, 4, 5, 4, 5, 1}, + { 4, 3, 4, 4, 4, 5, 5, 4, 5, 4, 5, 4, 5, 5, 2}, + { 3, 3, 4, 3, 4, 5, 5, 3, 5, 4, 5, 4, 5, 5, 4} +}; + +/* MV differential tables, p265 */ +static const uint16_t vc1_mv_diff_codes[4][73] = { + { + 0, 2, 3, 8, 576, 3, 2, 6, + 5, 577, 578, 7, 8, 9, 40, 19, + 37, 82, 21, 22, 23, 579, 580, 166, + 96, 167, 49, 194, 195, 581, 582, 583, + 292, 293, 294, 13, 2, 7, 24, 50, + 102, 295, 13, 7, 8, 18, 50, 103, + 38, 20, 21, 22, 39, 204, 103, 23, + 24, 25, 104, 410, 105, 106, 107, 108, + 109, 220, 411, 442, 222, 443, 446, 447, + 7 /* 73 elements */ + }, + { + 0, 4, 5, 3, 4, 3, 4, 5, + 20, 6, 21, 44, 45, 46, 3008, 95, + 112, 113, 57, 3009, 3010, 116, 117, 3011, + 118, 3012, 3013, 3014, 3015, 3016, 3017, 3018, + 3019, 3020, 3021, 3022, 1, 4, 15, 160, + 161, 41, 6, 11, 42, 162, 43, 119, + 56, 57, 58, 163, 236, 237, 3023, 119, + 120, 242, 122, 486, 1512, 487, 246, 494, + 1513, 495, 1514, 1515, 1516, 1517, 1518, 1519, + 31 /* 73 elements */ + }, + { + 0, 512, 513, 514, 515, 2, 3, 258, + 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 1, 5, 287, 288, + 289, 290, 6, 7, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, + 319 /* 73 elements */ + }, + { + 0, 1, 1, 2, 3, 4, 1, 5, + 4, 3, 5, 8, 6, 9, 10, 11, + 12, 7, 104, 14, 105, 4, 10, 15, + 11, 6, 14, 8, 106, 107, 108, 15, + 109, 9, 55, 10, 1, 2, 1, 2, + 3, 12, 6, 2, 6, 7, 28, 7, + 15, 8, 5, 18, 29, 152, 77, 24, + 25, 26, 39, 108, 13, 109, 55, 56, + 57, 116, 11, 153, 234, 235, 118, 119, + 15 /* 73 elements */ + } +}; +static const uint8_t vc1_mv_diff_bits[4][73] = { + { + 6, 7, 7, 8, 14, 6, 5, 6, 7, 14, 14, 6, 6, 6, 8, 9, + 10, 9, 7, 7, 7, 14, 14, 10, 9, 10, 8, 10, 10, 14, 14, 14, + 13, 13, 13, 6, 3, 5, 6, 8, 9, 13, 5, 4, 4, 5, 7, 9, + 6, 5, 5, 5, 6, 9, 8, 5, 5, 5, 7, 10, 7, 7, 7, 7, + 7, 8, 10, 9, 8, 9, 9, 9, 3 /* 73 elements */ + }, + { + 5, 7, 7, 6, 6, 5, 5, 6, 7, 5, 7, 8, 8, 8, 14, 9, + 9, 9, 8, 14, 14, 9, 9, 14, 9, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 2, 3, 6, 8, 8, 6, 3, 4, 6, 8, 6, 9, + 6, 6, 6, 8, 8, 8, 14, 7, 7, 8, 7, 9, 13, 9, 8, 9, + 13, 9, 13, 13, 13, 13, 13, 13, 5 /* 73 elements */ + + }, + { + 3, 12, 12, 12, 12, 3, 4, 11, 11, 11, 11, 11, 11, 11, 11, 11, + 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, + 11, 11, 11, 11, 1, 5, 11, 11, 11, 11, 4, 4, 11, 11, 11, 11, + 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, + 11, 11, 11, 11, 11, 11, 11, 11, 11 /* 73 elements */ + }, + { + 15, 11, 15, 15, 15, 15, 12, 15, 12, 11, 12, 12, 15, 12, 12, 12, + 12, 15, 15, 12, 15, 10, 11, 12, 11, 10, 11, 10, 15, 15, 15, 11, + 15, 10, 14, 10, 4, 4, 5, 7, 8, 9, 5, 3, 4, 5, 6, 8, + 5, 4, 3, 5, 6, 8, 7, 5, 5, 5, 6, 7, 9, 7, 6, 6, + 6, 7, 10, 8, 8, 8, 7, 7, 4 /* 73 elements */ + } +}; + +const int ff_vc1_ac_sizes[AC_MODES] = { + 186, 169, 133, 149, 103, 103, 163, 175 +}; + +#endif /* AVCODEC_VC1_VLC_DATA_H */ diff --git a/libavcodec/vc1data.c b/libavcodec/vc1data.c index 004b1347d4..5ebf20a0f0 100644 --- a/libavcodec/vc1data.c +++ b/libavcodec/vc1data.c @@ -170,811 +170,11 @@ const AVRational ff_vc1_pixel_aspect[16] = { { 0, 1 } }; -/* BitPlane IMODE - such a small table... */ -const uint8_t ff_vc1_imode_codes[7] = { - 0, 2, 1, 3, 1, 2, 3 -}; -const uint8_t ff_vc1_imode_bits[7] = { - 4, 2, 3, 2, 4, 3, 3 -}; - -/* Normal-2 imode */ -const uint8_t ff_vc1_norm2_codes[4] = { - 0, 4, 5, 3 -}; -const uint8_t ff_vc1_norm2_bits[4] = { - 1, 3, 3, 2 -}; - -const uint16_t ff_vc1_norm6_codes[64] = { - 0x001, 0x002, 0x003, 0x000, 0x004, 0x001, 0x002, 0x047, 0x005, 0x003, 0x004, 0x04B, 0x005, 0x04D, 0x04E, 0x30E, - 0x006, 0x006, 0x007, 0x053, 0x008, 0x055, 0x056, 0x30D, 0x009, 0x059, 0x05A, 0x30C, 0x05C, 0x30B, 0x30A, 0x037, - 0x007, 0x00A, 0x00B, 0x043, 0x00C, 0x045, 0x046, 0x309, 0x00D, 0x049, 0x04A, 0x308, 0x04C, 0x307, 0x306, 0x036, - 0x00E, 0x051, 0x052, 0x305, 0x054, 0x304, 0x303, 0x035, 0x058, 0x302, 0x301, 0x034, 0x300, 0x033, 0x032, 0x007, -}; - -const uint8_t ff_vc1_norm6_bits[64] = { - 1, 4, 4, 8, 4, 8, 8, 10, 4, 8, 8, 10, 8, 10, 10, 13, - 4, 8, 8, 10, 8, 10, 10, 13, 8, 10, 10, 13, 10, 13, 13, 9, - 4, 8, 8, 10, 8, 10, 10, 13, 8, 10, 10, 13, 10, 13, 13, 9, - 8, 10, 10, 13, 10, 13, 13, 9, 10, 13, 13, 9, 13, 9, 9, 6, -}; - -/* 4MV Block pattern VLC tables */ -const uint8_t ff_vc1_4mv_block_pattern_codes[4][16] = { - { 14, 58, 59, 25, 12, 26, 15, 15, 13, 24, 27, 0, 28, 1, 2, 2 }, - { 8, 18, 19, 4, 20, 5, 30, 11, 21, 31, 6, 12, 7, 13, 14, 0 }, - { 15, 6, 7, 2, 8, 3, 28, 9, 10, 29, 4, 11, 5, 12, 13, 0 }, - { 0, 11, 12, 4, 13, 5, 30, 16, 14, 31, 6, 17, 7, 18, 19, 10 } -}; -const uint8_t ff_vc1_4mv_block_pattern_bits[4][16] = { - { 5, 6, 6, 5, 5, 5, 5, 4, 5, 5, 5, 3, 5, 3, 3, 2 }, - { 4, 5, 5, 4, 5, 4, 5, 4, 5, 5, 4, 4, 4, 4, 4, 2 }, - { 4, 4, 4, 4, 4, 4, 5, 4, 4, 5, 4, 4, 4, 4, 4, 3 }, - { 2, 4, 4, 4, 4, 4, 5, 5, 4, 5, 4, 5, 4, 5, 5, 4 } -}; - -/* 2MV Block pattern VLC tables */ -const uint8_t ff_vc1_2mv_block_pattern_codes[4][4] = { - { 2, 1, 0, 3 }, { 1, 0, 2, 3 }, { 2, 0, 3, 1 }, { 1, 3, 2, 0 } -}; - -const uint8_t ff_vc1_2mv_block_pattern_bits[4][4] = { - { 2, 2, 2, 2 }, { 1, 2, 3, 3 }, { 3, 2, 3, 1 }, { 1, 3, 3, 2 } -}; - -/* Interlaced frame picture 4MV MBMODE VLC tables (p. 246, p. 360) */ -const uint16_t ff_vc1_intfr_4mv_mbmode_codes[4][15] = { - { 22, 17, 0, 47, 32, 10, 1, 3, 67, 133, 132, 92, 19, 93, 18 }, - { 3, 45, 0, 7, 23, 6, 1, 2, 10, 39, 44, 8, 18, 77, 76 }, - { 15, 6, 28, 9, 41, 6, 2, 15, 14, 8, 40, 29, 0, 21, 11 }, - { 7, 198, 1, 2, 193, 13, 25, 0, 97, 1599, 98, 398, 798, 192, 1598 } -}; - -const uint8_t ff_vc1_intfr_4mv_mbmode_bits[4][15] = { - { 5, 5, 2, 6, 6, 4, 2, 2, 7, 8, 8, 7, 5, 7, 5 }, - { 3, 6, 3, 3, 5, 3, 3, 3, 4, 6, 6, 4, 5, 7, 7 }, - { 4, 3, 5, 5, 7, 4, 2, 5, 5, 5, 7, 5, 2, 6, 5 }, - { 4, 9, 1, 3, 9, 5, 6, 2, 8, 12, 8, 10, 11, 9, 12 } -}; - -/* Interlaced frame picture NON-4MV MBMODE VLC tables (p. 363) */ -const uint8_t ff_vc1_intfr_non4mv_mbmode_codes[4][9] = { - { 9, 22, 0, 17, 16, 10, 1, 3, 23 }, - { 7, 0, 5, 2, 1, 1, 6, 3, 4 }, - { 1, 0, 10, 23, 44, 8, 3, 9, 45 }, - { 7, 97, 1, 2, 49, 13, 25, 0, 96 } -}; - -const uint8_t ff_vc1_intfr_non4mv_mbmode_bits[4][9] = { - { 4, 5, 2, 5, 5, 4, 2, 2, 5 }, - { 3, 4, 6, 2, 3, 2, 3, 5, 6 }, - { 2, 2, 4, 5, 6, 4, 2, 4, 6 }, - { 4, 8, 1, 3, 7, 5, 6, 2, 8 } -}; - -/* Interlaced field picture MBMODE VLC tables (p. 356 - 11.4.1, 11.4.2) */ -/* mixed-MV */ -const uint8_t ff_vc1_if_mmv_mbmode_codes[8][8] = { - { 16, 17, 3, 3, 0, 5, 9, 2 }, - { 8, 9, 3, 6, 7, 0, 5, 2 }, - { 16, 17, 5, 3, 0, 3, 9, 2 }, - { 56, 57, 15, 4, 5, 6, 29, 0 }, - { 52, 53, 27, 14, 15, 2, 12, 0 }, - { 56, 57, 29, 5, 6, 0, 15, 4 }, - { 16, 17, 6, 7, 0, 1, 9, 5 }, - { 56, 57, 0, 5, 6, 29, 4, 15 } -}; -const uint8_t ff_vc1_if_mmv_mbmode_bits[8][8] = { - { 6, 6, 2, 3, 2, 4, 5, 2 }, - { 5, 5, 3, 3, 3, 2, 4, 2 }, - { 6, 6, 4, 3, 2, 2, 5, 2 }, - { 6, 6, 4, 3, 3, 3, 5, 1 }, - { 6, 6, 5, 4, 4, 2, 4, 1 }, - { 6, 6, 5, 3, 3, 1, 4, 3 }, - { 5, 5, 3, 3, 2, 2, 4, 3 }, - { 6, 6, 1, 3, 3, 5, 3, 4 } -}; -/* 1MV */ -const uint8_t ff_vc1_if_1mv_mbmode_codes[8][6] = { - { 0, 1, 1, 1, 1, 1 }, - { 0, 1, 1, 1, 1, 1 }, - { 16, 17, 3, 0, 9, 5 }, - { 20, 21, 3, 11, 0, 4 }, - { 4, 5, 2, 3, 3, 0 }, - { 4, 5, 3, 2, 0, 3 }, - { 0, 1, 1, 1, 1, 1 }, - { 16, 17, 9, 5, 3, 0 } -}; -const uint8_t ff_vc1_if_1mv_mbmode_bits[8][6] = { - { 5, 5, 1, 3, 2, 4 }, - { 5, 5, 1, 2, 3, 4 }, - { 5, 5, 2, 1, 4, 3 }, - { 5, 5, 2, 4, 1, 3 }, - { 4, 4, 2, 3, 2, 2 }, - { 4, 4, 3, 2, 2, 2 }, - { 5, 5, 3, 4, 1, 2 }, - { 5, 5, 4, 3, 2, 1 } -}; - -/* Interlaced frame/field picture MVDATA VLC tables */ - -/* 1-reference tables */ -const uint32_t ff_vc1_1ref_mvdata_codes[4][72] = { /* uint32_t may be too big */ - { - 0x00005, 0x0000C, 0x0001E, 0x00012, 0x0000C, 0x00034, 0x00075, 0x00070, - 0x00000, 0x00008, 0x0001B, 0x00008, 0x0001D, 0x0007C, 0x000D6, 0x001DE, - 0x001AF, 0x00005, 0x0001B, 0x00026, 0x0001E, 0x00012, 0x00076, 0x0004D, - 0x001F6, 0x001F4, 0x00039, 0x0007F, 0x00027, 0x0006A, 0x00071, 0x00035, - 0x00071, 0x00068, 0x001DC, 0x00027, 0x00073, 0x000FF, 0x000E8, 0x000E9, - 0x0007E, 0x001F9, 0x001F5, 0x001FD, 0x0003E, 0x001CA, 0x003F9, 0x0004C, - 0x00069, 0x001FA, 0x001DF, 0x001F7, 0x00070, 0x001DD, 0x00E4D, 0x00727, - 0x00392, 0x001C8, 0x001CB, 0x003F8, 0x001AE, 0x001F8, 0x001FB, 0x0E4CE, - 0x0E4CF, 0x07260, 0x07261, 0x07262, 0x07263, 0x07264, 0x07265, 0x07266 - }, - { - 0x00007, 0x00001, 0x00007, 0x00016, 0x00001, 0x00045, 0x00018, 0x002B6, - 0x00006, 0x00004, 0x00017, 0x00010, 0x00029, 0x0002C, 0x0015A, 0x00066, - 0x0019E, 0x00009, 0x00028, 0x00017, 0x00000, 0x0002A, 0x00004, 0x0005B, - 0x000B5, 0x000CE, 0x00006, 0x00044, 0x0000F, 0x00046, 0x0000E, 0x000AC, - 0x00032, 0x00037, 0x011EB, 0x0000A, 0x0001A, 0x0011F, 0x00016, 0x00014, - 0x0002B, 0x00168, 0x00055, 0x023D5, 0x00057, 0x0002F, 0x00036, 0x0002E, - 0x00169, 0x00054, 0x0047B, 0x0019F, 0x02B7D, 0x0008E, 0x00ADE, 0x00479, - 0x0056E, 0x008F4, 0x015BF, 0x00478, 0x023D4, 0x0ADF1, 0x056F9, 0xADF0E, - 0xADF0F, 0x56F80, 0x56F81, 0x56F82, 0x56F83, 0x56F84, 0x56F85, 0x56F86 - }, - { - 0x00002, 0x00006, 0x00007, 0x0000D, 0x00007, 0x00030, 0x000FF, 0x001F0, - 0x00002, 0x00000, 0x00005, 0x00019, 0x0001E, 0x00007, 0x00063, 0x000FD, - 0x00023, 0x0000E, 0x0001B, 0x0001A, 0x00006, 0x00009, 0x00018, 0x000C5, - 0x00033, 0x001F1, 0x00002, 0x003FB, 0x001F3, 0x00022, 0x001FC, 0x00042, - 0x00623, 0x00083, 0x00620, 0x0007D, 0x00040, 0x00043, 0x003E4, 0x003E5, - 0x00191, 0x00FE9, 0x00105, 0x00208, 0x000FC, 0x00624, 0x00622, 0x00190, - 0x00626, 0x007F5, 0x00C4B, 0x01FD0, 0x0104D, 0x00065, 0x00C42, 0x000C9, - 0x00627, 0x00C43, 0x00C4A, 0x0104E, 0x01FD1, 0x0104F, 0x00412, 0x104CE, - 0x104CF, 0x08260, 0x08261, 0x08262, 0x08263, 0x08264, 0x08265, 0x08266 - }, - { - 0x0000D, 0x00001, 0x00004, 0x00000, 0x00017, 0x00005, 0x0007F, 0x0004D, - 0x00003, 0x00011, 0x0003E, 0x0003B, 0x00017, 0x00067, 0x0004A, 0x000C3, - 0x000F2, 0x0000A, 0x0002C, 0x00032, 0x0003D, 0x00015, 0x00028, 0x00093, - 0x000CC, 0x00096, 0x00003, 0x00075, 0x00020, 0x0002D, 0x00021, 0x00029, - 0x00090, 0x001D0, 0x001FB, 0x0001C, 0x0004C, 0x00060, 0x00009, 0x00008, - 0x0002D, 0x0009F, 0x001FA, 0x0013D, 0x00031, 0x000FC, 0x00058, 0x00092, - 0x000F0, 0x000F1, 0x000CD, 0x00185, 0x00165, 0x0004E, 0x00091, 0x000E9, - 0x00184, 0x001D1, 0x001E6, 0x00097, 0x001E7, 0x000B3, 0x0013C, 0x0164E, - 0x0164F, 0x00B20, 0x00B21, 0x00B22, 0x00B23, 0x00B24, 0x00B25, 0x00B26 - } -}; - -const uint8_t ff_vc1_1ref_mvdata_bits[4][72] = { - { - 3, 4, 5, 5, 5, 6, 7, 7, 2, 4, 5, 5, 6, 7, 8, 9, 9, 4, - 6, 6, 6, 6, 7, 8, 9, 9, 6, 8, 7, 7, 7, 7, 8, 8, 9, 6, - 8, 8, 8, 8, 8, 9, 9, 9, 7, 10, 10, 8, 8, 9, 9, 9, 8, 9, - 13, 12, 11, 10, 10, 10, 9, 9, 9, 17, 17, 16, 16, 16, 16, 16, 16, 16 - }, - { - 3, 3, 4, 5, 5, 7, 8, 10, 3, 4, 5, 5, 6, 7, 9, 10, 12, 4, - 6, 6, 5, 6, 6, 8, 9, 11, 4, 7, 7, 7, 7, 8, 9, 9, 13, 5, - 8, 9, 8, 8, 9, 10, 10, 14, 7, 9, 9, 9, 10, 10, 11, 12, 14, 8, - 12, 11, 11, 12, 13, 11, 14, 16, 15, 20, 20, 19, 19, 19, 19, 19, 19, 19 - }, - { - 3, 4, 4, 4, 5, 6, 8, 9, 2, 4, 5, 5, 5, 6, 7, 8, 8, 4, - 7, 7, 6, 6, 7, 8, 8, 9, 5, 10, 9, 8, 9, 9, 11, 10, 11, 7, - 9, 9, 10, 10, 11, 12, 11, 12, 8, 11, 11, 11, 11, 11, 12, 13, 15, 9, - 12, 10, 11, 12, 12, 15, 13, 15, 13, 19, 19, 18, 18, 18, 18, 18, 18, 18 - }, - { - 4, 4, 4, 4, 5, 5, 7, 7, 3, 5, 6, 6, 6, 7, 7, 8, 8, 4, - 6, 6, 6, 6, 7, 8, 8, 8, 4, 7, 6, 6, 6, 7, 8, 9, 9, 5, - 7, 7, 6, 6, 7, 8, 9, 9, 6, 8, 8, 8, 8, 8, 8, 9, 10, 7, - 8, 8, 9, 9, 9, 8, 9, 9, 9, 14, 14, 13, 13, 13, 13, 13, 13, 13 - } -}; - -/* 2-reference tables */ -const uint32_t ff_vc1_2ref_mvdata_codes[8][126] = { /* table 132 - table 139 */ - { - 0x0000C, 0x0001C, 0x0000B, 0x00000, 0x0000E, 0x0002A, 0x00050, 0x00368, - 0x00002, 0x0001A, 0x00004, 0x0003A, 0x0001D, 0x0006C, 0x000EF, 0x001BC, - 0x0015F, 0x0000F, 0x00003, 0x0001C, 0x0000D, 0x0000B, 0x0003E, 0x000A7, - 0x00146, 0x00199, 0x00006, 0x0001F, 0x00004, 0x0003C, 0x00007, 0x001BE, - 0x0008B, 0x0002C, 0x007B3, 0x00005, 0x000DB, 0x00056, 0x000EC, 0x00052, - 0x001BD, 0x00078, 0x000CF, 0x00573, 0x00009, 0x00023, 0x000ED, 0x00018, - 0x00006, 0x00044, 0x000F5, 0x00079, 0x006D2, 0x0006E, 0x0002B, 0x0015D, - 0x00017, 0x0037F, 0x00144, 0x000CE, 0x00028, 0x000AB, 0x00010, 0x001B5, - 0x000F7, 0x000A6, 0x0007B, 0x00028, 0x001ED, 0x001E9, 0x006FD, 0x00004, - 0x000F5, 0x00029, 0x0028A, 0x0028B, 0x0028F, 0x00DF9, 0x00335, 0x01E85, - 0x000EE, 0x002BD, 0x0002B, 0x003D8, 0x003D1, 0x00198, 0x001E9, 0x0051D, - 0x000B4, 0x0003F, 0x00455, 0x0022B, 0x00229, 0x00451, 0x00578, 0x007B2, - 0x00570, 0x00155, 0x00032, 0x003D0, 0x00054, 0x006D3, 0x00571, 0x00454, - 0x00334, 0x01BF1, 0x000B7, 0x00029, 0x01E84, 0x0016C, 0x0019B, 0x01BF0, - 0x00579, 0x00F43, 0x000B5, 0x008A1, 0x0002A, 0x0016D, 0x008A0, 0x007A0, - 0x003D1, 0x00AE5, 0x00154, 0x00AE4, 0x00A39, 0x00A38 - }, - { - 0x00003, 0x00009, 0x00016, 0x00010, 0x000D7, 0x00335, 0x00574, 0x00555, - 0x00000, 0x0001D, 0x00009, 0x00017, 0x0002C, 0x000AD, 0x00374, 0x006B3, - 0x00577, 0x0000F, 0x00018, 0x0000A, 0x0002E, 0x00022, 0x0017C, 0x00E7B, - 0x01B89, 0x015D8, 0x00008, 0x00034, 0x0006D, 0x00023, 0x001C2, 0x00376, - 0x002D3, 0x01C4A, 0x0330A, 0x00014, 0x0006A, 0x00072, 0x0006C, 0x000E3, - 0x0019B, 0x0073F, 0x01CF0, 0x00B41, 0x00032, 0x000E6, 0x000E0, 0x000CF, - 0x000AB, 0x0019C, 0x002AB, 0x00E2B, 0x015D9, 0x0006F, 0x001C3, 0x000AF, - 0x000BF, 0x000AC, 0x0017D, 0x006E3, 0x00E29, 0x01984, 0x00054, 0x000B5, - 0x0017A, 0x001AD, 0x00199, 0x00178, 0x00358, 0x002D2, 0x01C4B, 0x0005B, - 0x002A8, 0x00331, 0x00388, 0x0038B, 0x00370, 0x00713, 0x00CC3, 0x01CF1, - 0x001B9, 0x005EF, 0x00738, 0x002F2, 0x0033B, 0x002B9, 0x006EB, 0x00570, - 0x00E24, 0x0039D, 0x005A2, 0x005A3, 0x00E7D, 0x005EE, 0x00739, 0x00554, - 0x00AA5, 0x00AA4, 0x00377, 0x01CF5, 0x00BCE, 0x00E79, 0x00660, 0x00674, - 0x006EA, 0x00E7C, 0x00D65, 0x002F6, 0x015DA, 0x01B88, 0x005A1, 0x01CF4, - 0x005E6, 0x00E28, 0x00575, 0x00D64, 0x00334, 0x0330B, 0x015DB, 0x00B40, - 0x00BCF, 0x00DC5, 0x00E2A, 0x00675, 0x00571, 0x00553 - }, - { - 0x00004, 0x00002, 0x00010, 0x00003, 0x00017, 0x00045, 0x0003E, 0x0007E, - 0x00003, 0x00002, 0x00028, 0x0001E, 0x00015, 0x00047, 0x00002, 0x0014D, - 0x00060, 0x0000B, 0x00026, 0x00024, 0x00014, 0x00032, 0x0006F, 0x000C3, - 0x00531, 0x006E5, 0x00015, 0x0003F, 0x0002D, 0x00001, 0x0013E, 0x000DD, - 0x000F6, 0x00305, 0x00331, 0x0000E, 0x00003, 0x00034, 0x00033, 0x0001A, - 0x0014A, 0x000C5, 0x000F4, 0x006E4, 0x00001, 0x0003C, 0x0007D, 0x0008D, - 0x0009D, 0x00031, 0x0006E, 0x00296, 0x000CD, 0x00025, 0x00149, 0x00032, - 0x00089, 0x00036, 0x00088, 0x0006F, 0x00003, 0x0031D, 0x0000E, 0x001AA, - 0x0027E, 0x00061, 0x0014E, 0x0014F, 0x00067, 0x000FF, 0x00183, 0x00036, - 0x00357, 0x000F5, 0x000C6, 0x000C2, 0x00299, 0x00119, 0x00231, 0x00350, - 0x0002C, 0x0018F, 0x00530, 0x00297, 0x00004, 0x001B8, 0x000C0, 0x0027A, - 0x00311, 0x0009C, 0x00621, 0x00199, 0x0031C, 0x000F7, 0x003E3, 0x00356, - 0x00189, 0x00005, 0x0006B, 0x008C2, 0x00330, 0x004FF, 0x004F0, 0x00351, - 0x004F2, 0x001F2, 0x00373, 0x00000, 0x00C41, 0x008C3, 0x009EC, 0x003E2, - 0x00304, 0x004F7, 0x004F1, 0x001F0, 0x00148, 0x00C40, 0x009ED, 0x008C0, - 0x008C1, 0x004F3, 0x004FE, 0x000FE, 0x001F3, 0x001A9 - }, - { - 0x00000, 0x00004, 0x0002F, 0x00052, 0x00010, 0x000AD, 0x0050B, 0x00190, - 0x00003, 0x00016, 0x00007, 0x0000D, 0x000BB, 0x00173, 0x000C9, 0x0050F, - 0x0172C, 0x00003, 0x00011, 0x00005, 0x00043, 0x00023, 0x0004B, 0x0032E, - 0x02E5B, 0x00482, 0x00009, 0x0002A, 0x00014, 0x0002A, 0x00108, 0x005CA, - 0x0065A, 0x02136, 0x02132, 0x0000B, 0x00013, 0x00041, 0x000B8, 0x00174, - 0x00100, 0x014DA, 0x0404E, 0x01437, 0x0002B, 0x00085, 0x000A7, 0x000A0, - 0x0014C, 0x0029A, 0x0032C, 0x02133, 0x0142A, 0x00051, 0x00284, 0x000AC, - 0x00102, 0x00045, 0x00044, 0x0081B, 0x0065E, 0x00CB7, 0x00018, 0x0050C, - 0x00212, 0x002E4, 0x00203, 0x00094, 0x00122, 0x0081A, 0x00655, 0x00033, - 0x002BA, 0x00246, 0x00242, 0x00A6E, 0x0040C, 0x00808, 0x02134, 0x0404F, - 0x00175, 0x00405, 0x00247, 0x0012A, 0x00A14, 0x002BB, 0x00191, 0x0084F, - 0x01438, 0x000AF, 0x00B97, 0x00483, 0x0143B, 0x0032B, 0x00243, 0x0142B, - 0x00958, 0x029BF, 0x00049, 0x00A6C, 0x014DB, 0x004AD, 0x014DE, 0x0084E, - 0x01434, 0x00257, 0x02E5A, 0x00207, 0x01435, 0x01439, 0x00CB6, 0x0143A, - 0x00194, 0x00654, 0x02135, 0x0537C, 0x0015C, 0x00240, 0x01012, 0x0537D, - 0x00959, 0x01098, 0x01436, 0x0065F, 0x02026, 0x02137 - }, - { - 0x00005, 0x00019, 0x00016, 0x00011, 0x0003E, 0x0005E, 0x000EF, 0x000E2, - 0x00000, 0x00039, 0x0002B, 0x00026, 0x00028, 0x00012, 0x000C2, 0x000ED, - 0x0011D, 0x0000D, 0x00031, 0x0002A, 0x00025, 0x00020, 0x0005C, 0x001ED, - 0x0024D, 0x00770, 0x00006, 0x0007A, 0x00060, 0x0004F, 0x00048, 0x00039, - 0x00186, 0x00213, 0x00EC6, 0x0000F, 0x00026, 0x0005F, 0x00075, 0x00070, - 0x00027, 0x001DB, 0x003C6, 0x0078F, 0x0003F, 0x000A6, 0x000F0, 0x0003A, - 0x00052, 0x0004E, 0x000E3, 0x001D9, 0x0030F, 0x00010, 0x001DD, 0x000A7, - 0x000F7, 0x00022, 0x00092, 0x003C4, 0x002EF, 0x00762, 0x00079, 0x0008F, - 0x001DA, 0x00087, 0x000E8, 0x000BA, 0x00176, 0x000EE, 0x003B0, 0x00085, - 0x00119, 0x0030E, 0x00108, 0x001D2, 0x0010C, 0x00773, 0x00424, 0x00434, - 0x00071, 0x005DD, 0x001C1, 0x003A7, 0x00127, 0x0008D, 0x0021B, 0x007B2, - 0x001DF, 0x003D8, 0x00764, 0x00EE4, 0x003B3, 0x0074D, 0x001D8, 0x005DC, - 0x0084A, 0x00499, 0x003C5, 0x01D8E, 0x00765, 0x00435, 0x00771, 0x001C2, - 0x00118, 0x003BC, 0x00381, 0x00387, 0x07B33, 0x01097, 0x01096, 0x01ECD, - 0x00E99, 0x00F1C, 0x00F1D, 0x00EE5, 0x0011C, 0x07B32, 0x03D98, 0x01D8F, - 0x00E98, 0x00F67, 0x003BD, 0x00380, 0x00498, 0x00386 - }, - { - 0x0000D, 0x00010, 0x0002E, 0x00039, 0x0000D, 0x00074, 0x000ED, 0x000B6, - 0x00001, 0x00002, 0x00000, 0x00030, 0x00029, 0x00070, 0x000F3, 0x0008C, - 0x00166, 0x00009, 0x00033, 0x00078, 0x00006, 0x000C4, 0x0000B, 0x00163, - 0x000CC, 0x005BE, 0x0001F, 0x0002F, 0x00064, 0x00018, 0x000C6, 0x0000A, - 0x00162, 0x002C0, 0x00EF3, 0x00007, 0x0000F, 0x000E3, 0x000CA, 0x000B2, - 0x0018F, 0x003AE, 0x0075F, 0x00C51, 0x00015, 0x00047, 0x000EE, 0x000E2, - 0x000EA, 0x00009, 0x0016A, 0x002C3, 0x0059D, 0x0003D, 0x00008, 0x001D9, - 0x00032, 0x0000E, 0x0016E, 0x0032C, 0x0065B, 0x0196B, 0x00002, 0x0000F, - 0x001D8, 0x0008D, 0x000B4, 0x001E4, 0x00067, 0x00317, 0x00794, 0x00022, - 0x003BE, 0x00315, 0x00034, 0x00037, 0x002DE, 0x0006C, 0x00EFE, 0x0066C, - 0x00028, 0x003CB, 0x003AC, 0x00035, 0x0016B, 0x003BD, 0x002C1, 0x0062C, - 0x01DFE, 0x0000E, 0x0059E, 0x005BF, 0x000DA, 0x00629, 0x00584, 0x00EB7, - 0x00B0A, 0x0066D, 0x0000C, 0x0077E, 0x0059C, 0x00778, 0x0075E, 0x0075A, - 0x0062D, 0x00337, 0x00334, 0x00197, 0x01E57, 0x01DE4, 0x0196A, 0x01E56, - 0x00C50, 0x00B3F, 0x01E54, 0x00B0B, 0x0018E, 0x001B6, 0x01E55, 0x00CB4, - 0x00B3E, 0x00EB6, 0x01DE5, 0x01DFF, 0x00335, 0x001B7 - }, - { - 0x00001, 0x0000B, 0x00019, 0x0006F, 0x0002A, 0x00075, 0x007EB, 0x00163, - 0x00001, 0x0000E, 0x0001A, 0x0003E, 0x0001C, 0x0002D, 0x00164, 0x007EC, - 0x00165, 0x00004, 0x00006, 0x00036, 0x0007F, 0x000AE, 0x00158, 0x0015C, - 0x0056D, 0xFD510, 0x00000, 0x00004, 0x0007B, 0x000F3, 0x0003B, 0x007ED, - 0x002B3, 0x002CC, 0x0056E, 0x00018, 0x0003E, 0x00017, 0x0001E, 0x000AF, - 0x003F7, 0x0056F, 0x002CD, 0xFD511, 0x00014, 0x000AD, 0x000AA, 0x00014, - 0x000A8, 0x00153, 0x000E8, 0x001FE, 0x00DCF, 0x00078, 0x001B8, 0x00152, - 0x000FE, 0x002B1, 0x0015D, 0x00160, 0xFD512, 0xFD513, 0x0007A, 0x002B0, - 0x001E5, 0x000E9, 0x000FC, 0x006E6, 0x00DC8, 0x00584, 0xFD514, 0x000AB, - 0x00DDE, 0x00159, 0x003F4, 0x00DC9, 0x00DCA, 0x001FA, 0xFD515, 0xFD516, - 0x000FC, 0x001FF, 0x001E4, 0x000AF, 0x0015A, 0x00167, 0x00DCB, 0x00585, - 0xFD517, 0x003F7, 0x03F55, 0xFD518, 0x00DDC, 0x00586, 0x03F56, 0xFD519, - 0x03F57, 0xFD51A, 0x001BA, 0x00587, 0x00588, 0x00DDF, 0x002B2, 0xFD51B, - 0x00DCE, 0x003F6, 0xFD51C, 0x00FD4, 0xFD51D, 0xFD51E, 0xFD51F, 0x7EA80, - 0x7EA81, 0x0056C, 0x7EA82, 0x7EA83, 0x00376, 0x00589, 0x0058A, 0x7EA84, - 0x7EA85, 0x00DDD, 0x7EA86, 0x7EA87, 0x0058B, 0x07EA9 - }, - { - 0x00003, 0x0000E, 0x0000F, 0x0007E, 0x00062, 0x000C6, 0x00CD9, 0x0063E, - 0x00002, 0x00002, 0x00000, 0x00018, 0x0000C, 0x00069, 0x00039, 0x00707, - 0x00C7E, 0x00002, 0x0000D, 0x0001B, 0x0000F, 0x0019A, 0x00647, 0x01A37, - 0x346C4, 0x0346D, 0x00001, 0x0001E, 0x0007F, 0x0000A, 0x000E1, 0x00661, - 0x00CE4, 0x346C5, 0x346C6, 0x0001D, 0x00030, 0x0000D, 0x000CB, 0x00199, - 0x00320, 0x0008E, 0x0652E, 0x346C7, 0x0003E, 0x00039, 0x00035, 0x00033, - 0x0019F, 0x001C0, 0x00CDA, 0x346C8, 0x346C9, 0x0000B, 0x000D0, 0x0019E, - 0x00022, 0x00038, 0x0018E, 0x0031E, 0x03294, 0x0023C, 0x00032, 0x00012, - 0x00013, 0x00071, 0x0019D, 0x00020, 0x00C87, 0x00CC0, 0x346CA, 0x00338, - 0x00653, 0x001A2, 0x0032A, 0x00322, 0x00CE7, 0x00084, 0x0011F, 0x346CB, - 0x00325, 0x00649, 0x0032B, 0x00077, 0x00648, 0x00642, 0x00C86, 0x00C8C, - 0x346CC, 0x0003A, 0x019B7, 0x00043, 0x00327, 0x0008C, 0x0008D, 0x00C8D, - 0x346CD, 0x346CE, 0x00337, 0x00CE5, 0x00085, 0x00326, 0x00347, 0x00CA4, - 0x00C7F, 0x00D1A, 0x346CF, 0x00328, 0x1A360, 0x1A361, 0x00CD8, 0x0068C, - 0x03295, 0x03296, 0x0652F, 0x066D8, 0x00331, 0x00706, 0x0023D, 0x00076, - 0x00CC1, 0x00382, 0x00CE6, 0x066D9, 0x066DA, 0x066DB - } -}; - -const uint8_t ff_vc1_2ref_mvdata_bits[8][126] = { - { - 4, 5, 5, 5, 6, 7, 8, 10, 2, 5, 5, 6, 6, 7, 8, 9, - 10, 4, 5, 6, 6, 7, 8, 9, 10, 11, 4, 6, 6, 7, 7, 9, - 9, 10, 12, 5, 8, 8, 8, 8, 9, 9, 10, 12, 5, 7, 8, 7, - 7, 8, 9, 9, 11, 7, 9, 10, 9, 10, 10, 10, 10, 12, 6, 9, - 9, 9, 9, 9, 10, 10, 11, 7, 10, 10, 11, 11, 11, 12, 12, 14, - 8, 11, 10, 11, 11, 11, 11, 12, 12, 8, 12, 11, 11, 12, 12, 12, - 12, 13, 8, 12, 11, 11, 12, 12, 12, 13, 12, 9, 14, 13, 11, 13, - 12, 13, 12, 13, 9, 13, 13, 12, 12, 13, 13, 13, 13, 13 - }, - { - 3, 4, 5, 6, 8, 10, 11, 11, 2, 5, 5, 6, 7, 8, 10, 11, - 11, 4, 5, 5, 6, 7, 9, 12, 13, 13, 4, 6, 7, 7, 9, 10, - 11, 13, 14, 5, 7, 7, 7, 8, 9, 11, 13, 13, 6, 8, 8, 8, - 8, 9, 10, 12, 13, 7, 9, 8, 8, 8, 9, 11, 12, 13, 7, 9, - 9, 9, 9, 9, 10, 11, 13, 8, 10, 10, 10, 10, 10, 11, 12, 13, - 9, 11, 11, 10, 10, 10, 11, 11, 12, 10, 12, 12, 12, 11, 11, 11, - 12, 12, 10, 13, 12, 12, 11, 11, 11, 12, 12, 10, 13, 13, 12, 13, - 11, 12, 11, 12, 10, 14, 13, 13, 12, 12, 12, 11, 11, 11 - }, - { - 4, 4, 5, 5, 6, 7, 8, 9, 2, 5, 6, 6, 6, 7, 7, 9, - 9, 4, 6, 6, 6, 7, 8, 9, 11, 12, 5, 7, 7, 7, 9, 9, - 10, 11, 12, 5, 7, 7, 7, 7, 9, 9, 10, 12, 5, 8, 8, 8, - 8, 8, 9, 10, 10, 6, 9, 8, 8, 8, 8, 9, 9, 11, 6, 10, - 10, 9, 9, 9, 9, 10, 10, 7, 11, 10, 9, 9, 10, 9, 10, 11, - 7, 10, 11, 10, 10, 10, 9, 10, 11, 8, 12, 11, 11, 10, 11, 11, - 10, 10, 8, 12, 12, 11, 11, 11, 11, 10, 11, 8, 13, 12, 12, 11, - 11, 11, 11, 10, 9, 13, 12, 12, 12, 11, 11, 10, 10, 10 - }, - { - 3, 4, 6, 7, 7, 9, 11, 11, 2, 5, 5, 6, 8, 9, 10, 11, - 13, 3, 5, 5, 7, 8, 9, 12, 14, 13, 4, 6, 6, 7, 9, 11, - 13, 14, 14, 5, 7, 7, 8, 9, 9, 13, 15, 13, 6, 8, 8, 8, - 9, 10, 12, 14, 13, 7, 10, 9, 9, 9, 9, 12, 13, 14, 7, 11, - 10, 10, 10, 10, 11, 12, 13, 8, 11, 12, 12, 12, 11, 12, 14, 15, - 9, 11, 12, 11, 12, 11, 11, 12, 13, 9, 12, 13, 13, 12, 12, 13, - 14, 14, 9, 12, 13, 13, 13, 12, 13, 12, 14, 10, 13, 13, 14, 13, - 11, 13, 14, 15, 10, 12, 13, 15, 14, 13, 13, 13, 14, 14 - }, - { - 4, 5, 5, 5, 6, 7, 8, 8, 2, 6, 6, 6, 6, 6, 8, 9, - 10, 4, 6, 6, 6, 6, 7, 9, 10, 11, 4, 7, 7, 7, 7, 7, - 9, 10, 12, 5, 7, 7, 7, 7, 7, 9, 10, 11, 6, 8, 8, 7, - 7, 7, 8, 9, 10, 6, 9, 8, 8, 7, 8, 10, 10, 11, 7, 9, - 9, 8, 8, 8, 9, 9, 10, 8, 10, 10, 9, 9, 9, 11, 11, 11, - 8, 11, 10, 10, 9, 9, 10, 11, 10, 10, 12, 12, 11, 11, 10, 11, - 12, 11, 10, 13, 12, 11, 11, 10, 10, 11, 11, 11, 15, 13, 13, 13, - 12, 12, 12, 12, 10, 15, 14, 13, 12, 12, 11, 11, 11, 11 - }, - { - 4, 5, 6, 6, 6, 7, 8, 8, 2, 4, 5, 6, 6, 7, 8, 8, - 9, 4, 6, 7, 7, 8, 8, 9, 10, 11, 5, 6, 7, 7, 8, 8, - 9, 10, 12, 5, 7, 8, 8, 8, 9, 10, 11, 12, 5, 7, 8, 8, - 8, 8, 9, 10, 11, 6, 8, 9, 8, 8, 9, 10, 11, 13, 5, 8, - 9, 8, 8, 9, 9, 10, 11, 6, 10, 10, 9, 9, 10, 10, 12, 13, - 6, 10, 10, 9, 9, 10, 10, 11, 13, 7, 11, 11, 11, 11, 11, 12, - 12, 13, 7, 11, 11, 11, 11, 11, 11, 12, 12, 9, 13, 13, 13, 13, - 12, 12, 13, 12, 9, 12, 13, 12, 12, 12, 13, 13, 12, 12 - }, - { - 3, 5, 6, 8, 9, 10, 12, 12, 1, 5, 6, 7, 8, 9, 12, 12, - 12, 4, 6, 7, 8, 9, 12, 12, 14, 21, 4, 6, 8, 9, 9, 12, - 13, 13, 14, 6, 9, 8, 8, 9, 13, 14, 13, 21, 6, 9, 9, 8, - 9, 10, 11, 12, 13, 8, 10, 10, 11, 11, 12, 12, 21, 21, 8, 11, - 10, 11, 11, 12, 13, 14, 21, 9, 13, 10, 11, 13, 13, 12, 21, 21, - 9, 12, 10, 11, 12, 12, 13, 14, 21, 11, 15, 21, 13, 14, 15, 21, - 15, 21, 10, 14, 14, 13, 13, 21, 13, 13, 21, 13, 21, 21, 21, 20, - 20, 14, 20, 20, 11, 14, 14, 20, 20, 13, 20, 20, 14, 16 - }, - { - 2, 5, 6, 8, 9, 10, 13, 13, 2, 4, 5, 6, 8, 9, 10, 13, - 14, 3, 5, 7, 8, 10, 12, 15, 20, 16, 4, 6, 8, 8, 10, 12, - 13, 20, 20, 7, 8, 8, 9, 10, 11, 12, 16, 20, 7, 8, 8, 8, - 10, 11, 13, 20, 20, 8, 10, 10, 10, 10, 11, 12, 15, 14, 8, 9, - 9, 9, 10, 10, 13, 13, 20, 11, 12, 11, 11, 11, 13, 12, 13, 20, - 11, 12, 11, 11, 12, 12, 13, 13, 20, 10, 14, 11, 11, 12, 12, 13, - 20, 20, 11, 13, 12, 11, 12, 13, 14, 14, 20, 11, 19, 19, 13, 13, - 15, 15, 16, 16, 11, 13, 14, 11, 13, 12, 13, 16, 16, 16 - } -}; - const uint8_t ff_wmv3_dc_scale_table[32] = { 0, 2, 4, 8, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21 }; -/* P-Picture CBPCY VLC tables */ -// Looks like original tables are not conforming to standard at all. Are they used for old WMV? -const uint16_t ff_vc1_cbpcy_p_codes[4][64] = { - { - 0, 6, 15, 13, 13, 11, 3, 13, 5, 8, 49, 10, 12, 114, 102, 119, - 1, 54, 96, 8, 10, 111, 5, 15, 12, 10, 2, 12, 13, 115, 53, 63, - 1, 7, 1, 7, 14, 12, 4, 14, 1, 9, 97, 11, 7, 58, 52, 62, - 4, 103, 1, 9, 11, 56, 101, 118, 4, 110, 100, 30, 2, 5, 4, 3 - }, - { - 0, 9, 1, 18, 5, 14, 237, 26, 3, 121, 3, 22, 13, 16, 6, 30, - 2, 10, 1, 20, 12, 241, 5, 28, 16, 12, 3, 24, 28, 124, 239, 247, - 1, 240, 1, 19, 18, 15, 4, 27, 1, 122, 2, 23, 1, 17, 7, 31, - 1, 11, 2, 21, 19, 246, 238, 29, 17, 13, 236, 25, 58, 63, 8, 125 - }, - { - 0, 201, 25, 231, 5, 221, 1, 3, 2, 414, 2, 241, 16, 225, 195, 492, - 2, 412, 1, 240, 7, 224, 98, 245, 1, 220, 96, 5, 9, 230, 101, 247, - 1, 102, 1, 415, 24, 3, 2, 244, 3, 54, 3, 484, 17, 114, 200, 493, - 3, 413, 1, 4, 13, 113, 99, 485, 4, 111, 194, 243, 5, 29, 26, 31 - }, - { - 0, 28, 12, 44, 3, 36, 20, 52, 2, 32, 16, 48, 8, 40, 24, 28, - 1, 30, 14, 46, 6, 38, 22, 54, 3, 34, 18, 50, 10, 42, 26, 30, - 1, 29, 13, 45, 5, 37, 21, 53, 2, 33, 17, 49, 9, 41, 25, 29, - 1, 31, 15, 47, 7, 39, 23, 55, 4, 35, 19, 51, 11, 43, 27, 31 - } -}; - -const uint8_t ff_vc1_cbpcy_p_bits[4][64] = { - { - 13, 13, 7, 13, 7, 13, 13, 12, 6, 13, 7, 12, 6, 8, 8, 8, - 5, 7, 8, 12, 6, 8, 13, 12, 7, 13, 13, 12, 6, 8, 7, 7, - 6, 13, 8, 12, 7, 13, 13, 12, 7, 13, 8, 12, 5, 7, 7, 7, - 6, 8, 13, 12, 6, 7, 8, 8, 5, 8, 8, 6, 3, 3, 3, 2 - }, - { - 14, 13, 8, 13, 3, 13, 8, 13, 3, 7, 8, 13, 4, 13, 13, 13, - 3, 13, 13, 13, 4, 8, 13, 13, 5, 13, 13, 13, 5, 7, 8, 8, - 3, 8, 14, 13, 5, 13, 13, 13, 4, 7, 13, 13, 6, 13, 13, 13, - 5, 13, 8, 13, 5, 8, 8, 13, 5, 13, 8, 13, 6, 6, 13, 7 - }, - { - 13, 8, 6, 8, 4, 8, 13, 12, 4, 9, 8, 8, 5, 8, 8, 9, - 5, 9, 10, 8, 4, 8, 7, 8, 6, 8, 7, 13, 4, 8, 7, 8, - 5, 7, 8, 9, 6, 13, 13, 8, 4, 6, 8, 9, 5, 7, 8, 9, - 5, 9, 9, 13, 5, 7, 7, 9, 4, 7, 8, 8, 3, 5, 5, 5 - }, - { - 9, 9, 9, 9, 2, 9, 9, 9, 2, 9, 9, 9, 9, 9, 9, 8, - 3, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, - 2, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8 - } -}; - -/* Interlaced CBPCY VLC tables (Table 124 - Table 131) */ -const uint16_t ff_vc1_icbpcy_p_codes[8][63] = { - { - 0x2F1A, 0x2F1B, 0x178C, 0x0090, 0x02A8, 0x02A9, 0x0BC7, 0x0091, - 0x02AA, 0x02AB, 0x05E0, 0x004A, 0x0096, 0x0097, 0x00BD, 0x0092, - 0x02AC, 0x02AD, 0x05E1, 0x0098, 0x0132, 0x0133, 0x0179, 0x0134, - 0x026A, 0x026B, 0x02FC, 0x004E, 0x0040, 0x0041, 0x002B, 0x0093, - 0x02AE, 0x02AF, 0x05E2, 0x0136, 0x026E, 0x026F, 0x02FD, 0x009E, - 0x013E, 0x013F, 0x017F, 0x0050, 0x0042, 0x0043, 0x002C, 0x0051, - 0x00A4, 0x00A5, 0x00BE, 0x0053, 0x0044, 0x0045, 0x002D, 0x0054, - 0x0046, 0x0047, 0x002E, 0x0003, 0x0000, 0x0001, 0x0001 - }, - { - 0x0041, 0x0042, 0x0100, 0x0043, 0x0088, 0x0089, 0x0101, 0x0045, - 0x008C, 0x008D, 0x0102, 0x0010, 0x0022, 0x0023, 0x0024, 0x0047, - 0x0010, 0x0011, 0x0103, 0x0025, 0x0058, 0x0059, 0x005A, 0x005B, - 0x005A, 0x005B, 0x005C, 0x000C, 0x0030, 0x0031, 0x0019, 0x0009, - 0x0014, 0x0015, 0x002C, 0x005C, 0x005D, 0x005E, 0x005F, 0x0026, - 0x005D, 0x005E, 0x005F, 0x000D, 0x0034, 0x0035, 0x001B, 0x0014, - 0x0027, 0x002A, 0x002B, 0x000E, 0x0038, 0x0039, 0x001D, 0x000F, - 0x003C, 0x003D, 0x001F, 0x0005, 0x0009, 0x0000, 0x0003 - }, - { - 0x0032, 0x0033, 0x001A, 0x0026, 0x00E4, 0x00E5, 0x01E6, 0x0027, - 0x00E6, 0x00E7, 0x01E7, 0x000E, 0x0063, 0x006C, 0x0077, 0x0028, - 0x00E8, 0x00E9, 0x01E8, 0x007B, 0x00DA, 0x00DB, 0x00EC, 0x00F5, - 0x01B8, 0x01B9, 0x01DA, 0x0021, 0x004B, 0x0054, 0x002B, 0x0029, - 0x00EA, 0x00EB, 0x01E9, 0x004A, 0x01BA, 0x01BB, 0x01DB, 0x0020, - 0x00DE, 0x00DF, 0x00F2, 0x0022, 0x0055, 0x0058, 0x002D, 0x000F, - 0x0070, 0x0071, 0x0078, 0x0023, 0x0059, 0x005C, 0x002F, 0x0024, - 0x005D, 0x0062, 0x0030, 0x0002, 0x001F, 0x0006, 0x0000 - }, - { - 0x0028, 0x0029, 0x009D, 0x0000, 0x01EA, 0x01EB, 0x01EC, 0x0001, - 0x01ED, 0x01EE, 0x01EF, 0x0005, 0x00F0, 0x00F1, 0x003B, 0x0002, - 0x01F0, 0x01F1, 0x01F2, 0x003F, 0x015C, 0x015D, 0x0099, 0x0010, - 0x03D0, 0x03D1, 0x0130, 0x000F, 0x009E, 0x009F, 0x00FB, 0x0003, - 0x01F3, 0x01F4, 0x01F5, 0x0011, 0x03D2, 0x03D3, 0x0131, 0x0009, - 0x015E, 0x015F, 0x009C, 0x0010, 0x00A8, 0x00A9, 0x0038, 0x0006, - 0x00F2, 0x00F3, 0x004D, 0x0011, 0x00AA, 0x00AB, 0x0039, 0x0012, - 0x00AC, 0x00AD, 0x003A, 0x0006, 0x0016, 0x0017, 0x000E - }, - { - 0x003C, 0x003D, 0x001F, 0x000A, 0x0061, 0x0062, 0x0002, 0x000B, - 0x0063, 0x0064, 0x0003, 0x0007, 0x0003, 0x0004, 0x000B, 0x000C, - 0x0065, 0x0066, 0x0004, 0x0012, 0x000A, 0x000B, 0x0014, 0x001B, - 0x0018, 0x0019, 0x0034, 0x002C, 0x0067, 0x0068, 0x0035, 0x000D, - 0x0069, 0x006C, 0x0005, 0x0060, 0x001A, 0x001B, 0x0035, 0x0013, - 0x000E, 0x000F, 0x0015, 0x002D, 0x006D, 0x006E, 0x0038, 0x0008, - 0x0008, 0x0009, 0x000C, 0x002E, 0x006F, 0x0072, 0x003A, 0x002F, - 0x0073, 0x0000, 0x003B, 0x0007, 0x0014, 0x0015, 0x0004 - }, - { - 0x0038, 0x0039, 0x009D, 0x000A, 0x0091, 0x0092, 0x0093, 0x000B, - 0x0094, 0x0095, 0x0096, 0x0003, 0x00EE, 0x00EF, 0x0036, 0x000C, - 0x0097, 0x0098, 0x0099, 0x0008, 0x01E4, 0x01E5, 0x006A, 0x0018, - 0x03CC, 0x03CD, 0x00D6, 0x000E, 0x009E, 0x009F, 0x00F5, 0x000D, - 0x009A, 0x009B, 0x009C, 0x0019, 0x03CE, 0x03CF, 0x00D7, 0x0009, - 0x01E8, 0x01E9, 0x0090, 0x000F, 0x00E8, 0x00E9, 0x00F6, 0x0005, - 0x00F0, 0x00F1, 0x0037, 0x0010, 0x00EA, 0x00EB, 0x00F7, 0x0011, - 0x00EC, 0x00ED, 0x0034, 0x0000, 0x003E, 0x003F, 0x0002 - }, - { - 0x003C, 0x003D, 0x01CF, 0x0000, 0x00BF, 0x00E0, 0x01FC, 0x0001, - 0x00E1, 0x00E2, 0x01FD, 0x0009, 0x01F1, 0x01F2, 0x01F3, 0x0002, - 0x00E3, 0x00E4, 0x01FE, 0x0011, 0x03EE, 0x03EF, 0x03F0, 0x0021, - 0x07E2, 0x07E3, 0x07E4, 0x0018, 0x03F7, 0x03FE, 0x03FF, 0x0003, - 0x00E5, 0x00E6, 0x0080, 0x002E, 0x07E5, 0x07E6, 0x07E7, 0x0016, - 0x03F4, 0x03F5, 0x03F6, 0x0019, 0x0102, 0x0103, 0x0104, 0x000A, - 0x01F4, 0x01F5, 0x01F6, 0x001A, 0x0105, 0x0106, 0x0107, 0x001B, - 0x0178, 0x0179, 0x01CE, 0x001D, 0x00BD, 0x00BE, 0x01F0 - }, - { - 0x0003, 0x0004, 0x01B6, 0x0004, 0x002E, 0x002F, 0x000E, 0x0005, - 0x0030, 0x0031, 0x000F, 0x0003, 0x000A, 0x000B, 0x0014, 0x0006, - 0x0032, 0x0033, 0x0010, 0x0005, 0x0030, 0x0031, 0x0032, 0x0009, - 0x0066, 0x0067, 0x0068, 0x001D, 0x01B7, 0x01B8, 0x01B9, 0x0007, - 0x0034, 0x0035, 0x0011, 0x0016, 0x0069, 0x006A, 0x006B, 0x000A, - 0x0036, 0x0037, 0x00D8, 0x001E, 0x01BA, 0x01BB, 0x01BC, 0x0004, - 0x0015, 0x0016, 0x0017, 0x001F, 0x01BD, 0x01BE, 0x01BF, 0x0000, - 0x0010, 0x0011, 0x0012, 0x001C, 0x00D9, 0x00DA, 0x0013 - } -}; - -const uint8_t ff_vc1_icbpcy_p_bits[8][63] = { - { - 15, 15, 14, 9, 11, 11, 13, 9, 11, 11, 12, 8, 9, 9, 9, 9, - 11, 11, 12, 9, 10, 10, 10, 10, 11, 11, 11, 8, 8, 8, 7, 9, - 11, 11, 12, 10, 11, 11, 11, 9, 10, 10, 10, 8, 8, 8, 7, 8, - 9, 9, 9, 8, 8, 8, 7, 8, 8, 8, 7, 3, 3, 3, 1 - }, - { - 7, 7, 9, 7, 8, 8, 9, 7, 8, 8, 9, 6, 7, 7, 7, 7, - 7, 7, 9, 7, 8, 8, 8, 8, 9, 9, 9, 6, 7, 7, 6, 6, - 7, 7, 8, 8, 9, 9, 9, 7, 8, 8, 8, 6, 7, 7, 6, 6, - 7, 7, 7, 6, 7, 7, 6, 6, 7, 7, 6, 3, 4, 3, 2 - }, - { - 6, 6, 5, 6, 8, 8, 9, 6, 8, 8, 9, 5, 7, 7, 7, 6, - 8, 8, 9, 7, 8, 8, 8, 8, 9, 9, 9, 6, 7, 7, 6, 6, - 8, 8, 9, 7, 9, 9, 9, 6, 8, 8, 8, 6, 7, 7, 6, 5, - 7, 7, 7, 6, 7, 7, 6, 6, 7, 7, 6, 3, 5, 4, 2 - }, - { - 6, 6, 8, 4, 9, 9, 9, 4, 9, 9, 9, 4, 8, 8, 7, 4, - 9, 9, 9, 6, 9, 9, 8, 6, 10, 10, 9, 5, 8, 8, 8, 4, - 9, 9, 9, 6, 10, 10, 9, 5, 9, 9, 8, 5, 8, 8, 7, 4, - 8, 8, 7, 5, 8, 8, 7, 5, 8, 8, 7, 3, 5, 5, 4 - }, - { - 6, 6, 5, 5, 7, 7, 7, 5, 7, 7, 7, 5, 6, 6, 6, 5, - 7, 7, 7, 6, 7, 7, 7, 7, 8, 8, 8, 6, 7, 7, 6, 5, - 7, 7, 7, 7, 8, 8, 8, 6, 7, 7, 7, 6, 7, 7, 6, 5, - 6, 6, 6, 6, 7, 7, 6, 6, 7, 6, 6, 4, 5, 5, 3 - }, - { - 6, 6, 8, 4, 8, 8, 8, 4, 8, 8, 8, 4, 8, 8, 7, 4, - 8, 8, 8, 5, 9, 9, 8, 6, 10, 10, 9, 5, 8, 8, 8, 4, - 8, 8, 8, 6, 10, 10, 9, 5, 9, 9, 8, 5, 8, 8, 8, 4, - 8, 8, 7, 5, 8, 8, 8, 5, 8, 8, 7, 3, 6, 6, 4 - }, - { - 6, 6, 9, 3, 8, 8, 9, 3, 8, 8, 9, 4, 9, 9, 9, 3, - 8, 8, 9, 5, 10, 10, 10, 6, 11, 11, 11, 5, 10, 10, 10, 3, - 8, 8, 8, 6, 11, 11, 11, 5, 10, 10, 10, 5, 9, 9, 9, 4, - 9, 9, 9, 5, 9, 9, 9, 5, 9, 9, 9, 5, 8, 8, 9 - }, - { - 6, 6, 10, 3, 7, 7, 7, 3, 7, 7, 7, 4, 8, 8, 8, 3, - 7, 7, 7, 5, 9, 9, 9, 6, 10, 10, 10, 6, 10, 10, 10, 3, - 7, 7, 7, 6, 10, 10, 10, 5, 9, 9, 9, 6, 10, 10, 10, 4, - 8, 8, 8, 6, 10, 10, 10, 5, 9, 9, 9, 6, 9, 9, 9 - } -}; - -/* MacroBlock Transform Type: 7.1.3.11, p89 - * 8x8:B - * 8x4:B:btm 8x4:B:top 8x4:B:both, - * 4x8:B:right 4x8:B:left 4x8:B:both - * 4x4:B 8x8:MB - * 8x4:MB:btm 8x4:MB:top 8x4,MB,both - * 4x8,MB,right 4x8,MB,left - * 4x4,MB */ -const uint16_t ff_vc1_ttmb_codes[3][16] = { - { - 0x0003, - 0x002E, 0x005F, 0x0000, - 0x0016, 0x0015, 0x0001, - 0x0004, 0x0014, - 0x02F1, 0x0179, 0x017B, - 0x0BC0, 0x0BC1, 0x05E1, - 0x017A - }, - { - 0x0006, - 0x0006, 0x0003, 0x0007, - 0x000F, 0x000E, 0x0000, - 0x0002, 0x0002, - 0x0014, 0x0011, 0x000B, - 0x0009, 0x0021, 0x0015, - 0x0020 - }, - { - 0x0006, - 0x0000, 0x000E, 0x0005, - 0x0002, 0x0003, 0x0003, - 0x000F, 0x0002, - 0x0081, 0x0021, 0x0009, - 0x0101, 0x0041, 0x0011, - 0x0100 - } -}; - -const uint8_t ff_vc1_ttmb_bits[3][16] = { - { - 2, - 6, 7, 2, - 5, 5, 2, - 3, 5, - 10, 9, 9, - 12, 12, 11, - 9 - }, - { - 3, - 4, 4, 4, - 4, 4, 3, - 3, 2, - 7, 7, 6, - 6, 8, 7, - 8 - }, - { - 3, - 3, 4, 5, - 3, 3, 4, - 4, 2, - 10, 8, 6, - 11, 9, 7, - 11 - } -}; - -/* TTBLK (Transform Type per Block) tables */ -const uint8_t ff_vc1_ttblk_codes[3][8] = { - { 0, 1, 3, 5, 16, 17, 18, 19 }, - { 3, 0, 1, 2, 3, 5, 8, 9 }, - { 1, 0, 1, 4, 6, 7, 10, 11 } -}; -const uint8_t ff_vc1_ttblk_bits[3][8] = { - { 2, 2, 2, 3, 5, 5, 5, 5 }, - { 2, 3, 3, 3, 3, 3, 4, 4 }, - { 2, 3, 3, 3, 3, 3, 4, 4 } -}; - -/* SUBBLKPAT tables, p93-94, reordered */ -const uint8_t ff_vc1_subblkpat_codes[3][15] = { - { 14, 12, 7, 11, 9, 26, 2, 10, 27, 8, 0, 6, 1, 15, 1 }, - { 14, 0, 8, 15, 10, 4, 23, 13, 5, 9, 25, 3, 24, 22, 1 }, - { 5, 6, 2, 2, 8, 0, 28, 3, 1, 3, 29, 1, 19, 18, 15 } -}; -const uint8_t ff_vc1_subblkpat_bits[3][15] = { - { 5, 5, 5, 5, 5, 6, 4, 5, 6, 5, 4, 5, 4, 5, 1}, - { 4, 3, 4, 4, 4, 5, 5, 4, 5, 4, 5, 4, 5, 5, 2}, - { 3, 3, 4, 3, 4, 5, 5, 3, 5, 4, 5, 4, 5, 5, 4} -}; - -/* MV differential tables, p265 */ -const uint16_t ff_vc1_mv_diff_codes[4][73] = { - { - 0, 2, 3, 8, 576, 3, 2, 6, - 5, 577, 578, 7, 8, 9, 40, 19, - 37, 82, 21, 22, 23, 579, 580, 166, - 96, 167, 49, 194, 195, 581, 582, 583, - 292, 293, 294, 13, 2, 7, 24, 50, - 102, 295, 13, 7, 8, 18, 50, 103, - 38, 20, 21, 22, 39, 204, 103, 23, - 24, 25, 104, 410, 105, 106, 107, 108, - 109, 220, 411, 442, 222, 443, 446, 447, - 7 /* 73 elements */ - }, - { - 0, 4, 5, 3, 4, 3, 4, 5, - 20, 6, 21, 44, 45, 46, 3008, 95, - 112, 113, 57, 3009, 3010, 116, 117, 3011, - 118, 3012, 3013, 3014, 3015, 3016, 3017, 3018, - 3019, 3020, 3021, 3022, 1, 4, 15, 160, - 161, 41, 6, 11, 42, 162, 43, 119, - 56, 57, 58, 163, 236, 237, 3023, 119, - 120, 242, 122, 486, 1512, 487, 246, 494, - 1513, 495, 1514, 1515, 1516, 1517, 1518, 1519, - 31 /* 73 elements */ - }, - { - 0, 512, 513, 514, 515, 2, 3, 258, - 259, 260, 261, 262, 263, 264, 265, 266, - 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 1, 5, 287, 288, - 289, 290, 6, 7, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 302, - 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, - 319 /* 73 elements */ - }, - { - 0, 1, 1, 2, 3, 4, 1, 5, - 4, 3, 5, 8, 6, 9, 10, 11, - 12, 7, 104, 14, 105, 4, 10, 15, - 11, 6, 14, 8, 106, 107, 108, 15, - 109, 9, 55, 10, 1, 2, 1, 2, - 3, 12, 6, 2, 6, 7, 28, 7, - 15, 8, 5, 18, 29, 152, 77, 24, - 25, 26, 39, 108, 13, 109, 55, 56, - 57, 116, 11, 153, 234, 235, 118, 119, - 15 /* 73 elements */ - } -}; -const uint8_t ff_vc1_mv_diff_bits[4][73] = { - { - 6, 7, 7, 8, 14, 6, 5, 6, 7, 14, 14, 6, 6, 6, 8, 9, - 10, 9, 7, 7, 7, 14, 14, 10, 9, 10, 8, 10, 10, 14, 14, 14, - 13, 13, 13, 6, 3, 5, 6, 8, 9, 13, 5, 4, 4, 5, 7, 9, - 6, 5, 5, 5, 6, 9, 8, 5, 5, 5, 7, 10, 7, 7, 7, 7, - 7, 8, 10, 9, 8, 9, 9, 9, 3 /* 73 elements */ - }, - { - 5, 7, 7, 6, 6, 5, 5, 6, 7, 5, 7, 8, 8, 8, 14, 9, - 9, 9, 8, 14, 14, 9, 9, 14, 9, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 2, 3, 6, 8, 8, 6, 3, 4, 6, 8, 6, 9, - 6, 6, 6, 8, 8, 8, 14, 7, 7, 8, 7, 9, 13, 9, 8, 9, - 13, 9, 13, 13, 13, 13, 13, 13, 5 /* 73 elements */ - - }, - { - 3, 12, 12, 12, 12, 3, 4, 11, 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 1, 5, 11, 11, 11, 11, 4, 4, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 11, 11, 11 /* 73 elements */ - }, - { - 15, 11, 15, 15, 15, 15, 12, 15, 12, 11, 12, 12, 15, 12, 12, 12, - 12, 15, 15, 12, 15, 10, 11, 12, 11, 10, 11, 10, 15, 15, 15, 11, - 15, 10, 14, 10, 4, 4, 5, 7, 8, 9, 5, 3, 4, 5, 6, 8, - 5, 4, 3, 5, 6, 8, 7, 5, 5, 5, 6, 7, 9, 7, 6, 6, - 6, 7, 10, 8, 8, 8, 7, 7, 4 /* 73 elements */ - } -}; /* DC differentials low+hi-mo, p217 are the same as in msmpeg4data .h */ @@ -1089,7 +289,3 @@ const uint16_t ff_vc1_b_field_mvpred_scales[7][4] = { { 26, 17, 12, 10 }, // ZONE1OFFSET_X { 7, 4, 3, 3 } // ZONE1OFFSET_Y }; - -const int ff_vc1_ac_sizes[AC_MODES] = { - 186, 169, 133, 149, 103, 103, 163, 175 -}; diff --git a/libavcodec/vc1data.h b/libavcodec/vc1data.h index b73e0a5f0e..dcd51e6a05 100644 --- a/libavcodec/vc1data.h +++ b/libavcodec/vc1data.h @@ -103,78 +103,8 @@ extern const int16_t ff_vc1_bfraction_lut[23]; //Same as H.264 extern const AVRational ff_vc1_pixel_aspect[16]; -/* BitPlane IMODE - such a small table... */ -extern const uint8_t ff_vc1_imode_codes[7]; -extern const uint8_t ff_vc1_imode_bits[7]; - -/* Normal-2 imode */ -extern const uint8_t ff_vc1_norm2_codes[4]; -extern const uint8_t ff_vc1_norm2_bits[4]; -extern const uint16_t ff_vc1_norm6_codes[64]; -extern const uint8_t ff_vc1_norm6_bits[64]; - -/* 4MV Block pattern VLC tables */ -extern const uint8_t ff_vc1_4mv_block_pattern_codes[4][16]; -extern const uint8_t ff_vc1_4mv_block_pattern_bits[4][16]; - -/* 2MV Block pattern VLC tables */ -extern const uint8_t ff_vc1_2mv_block_pattern_codes[4][4]; -extern const uint8_t ff_vc1_2mv_block_pattern_bits[4][4]; - extern const uint8_t ff_wmv3_dc_scale_table[32]; -/* P-Picture CBPCY VLC tables */ -extern const uint16_t ff_vc1_cbpcy_p_codes[4][64]; -extern const uint8_t ff_vc1_cbpcy_p_bits[4][64]; - -/* Interlaced CBPCY VLC tables (Table 124 - Table 131) */ -extern const uint16_t ff_vc1_icbpcy_p_codes[8][63]; -extern const uint8_t ff_vc1_icbpcy_p_bits[8][63]; - -/* MacroBlock Transform Type: 7.1.3.11, p89 - * 8x8:B - * 8x4:B:btm 8x4:B:top 8x4:B:both, - * 4x8:B:right 4x8:B:left 4x8:B:both - * 4x4:B 8x8:MB - * 8x4:MB:btm 8x4:MB:top 8x4,MB,both - * 4x8,MB,right 4x8,MB,left - * 4x4,MB */ -extern const uint16_t ff_vc1_ttmb_codes[3][16]; - -extern const uint8_t ff_vc1_ttmb_bits[3][16]; - -/* TTBLK (Transform Type per Block) tables */ -extern const uint8_t ff_vc1_ttblk_codes[3][8]; -extern const uint8_t ff_vc1_ttblk_bits[3][8]; - -/* SUBBLKPAT tables, p93-94, reordered */ -extern const uint8_t ff_vc1_subblkpat_codes[3][15]; -extern const uint8_t ff_vc1_subblkpat_bits[3][15]; - -/* MV differential tables, p265 */ -extern const uint16_t ff_vc1_mv_diff_codes[4][73]; -extern const uint8_t ff_vc1_mv_diff_bits[4][73]; - -/* Interlaced frame picture MBMODE VLC tables (p. 246, p. 360) */ -extern const uint16_t ff_vc1_intfr_4mv_mbmode_codes[4][15]; -extern const uint8_t ff_vc1_intfr_4mv_mbmode_bits[4][15]; -extern const uint8_t ff_vc1_intfr_non4mv_mbmode_codes[4][9]; -extern const uint8_t ff_vc1_intfr_non4mv_mbmode_bits[4][9]; - -/* Interlaced field picture MBMODE VLC tables (p. 356 - 11.4.1, 11.4.2) */ -extern const uint8_t ff_vc1_if_mmv_mbmode_codes[8][8]; -extern const uint8_t ff_vc1_if_mmv_mbmode_bits[8][8]; -extern const uint8_t ff_vc1_if_1mv_mbmode_codes[8][6]; -extern const uint8_t ff_vc1_if_1mv_mbmode_bits[8][6]; - -/* Interlaced frame/field picture MVDATA VLC tables */ -/* 1-reference tables */ -extern const uint32_t ff_vc1_1ref_mvdata_codes[4][72]; -extern const uint8_t ff_vc1_1ref_mvdata_bits[4][72]; -/* 2-reference tables */ -extern const uint32_t ff_vc1_2ref_mvdata_codes[8][126]; -extern const uint8_t ff_vc1_2ref_mvdata_bits[8][126]; - /* DC differentials low+hi-mo, p217 are the same as in msmpeg4data .h */ /* Scantables/ZZ scan are at 11.9 (p262) and 8.1.1.12 (p10) */ From patchwork Sun Oct 30 23:56:23 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 39063 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:8e01:b0:a3:a294:714c with SMTP id y1csp607531pzj; Sun, 30 Oct 2022 16:57:54 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5oCMSjVrT6jRh/GA4uTc33Mh4TCOMIZZyiPYGo9CkaqbCeFS86cFPkEhoQ9JlMBxhY75yh X-Received: by 2002:a17:907:a0c9:b0:7ad:dc98:d9d2 with SMTP id hw9-20020a170907a0c900b007addc98d9d2mr195119ejc.310.1667174274663; Sun, 30 Oct 2022 16:57:54 -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 og17-20020a1709071dd100b007ad95fdd213si5556845ejc.812.2022.10.30.16.57.54; Sun, 30 Oct 2022 16:57:54 -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=R4cUud0e; 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 3F26668BDBA; Mon, 31 Oct 2022 01:56:57 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05olkn2100.outbound.protection.outlook.com [40.92.91.100]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3096C68BDAA for ; Mon, 31 Oct 2022 01:56:51 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Luykm3zAtf3dtvp+fsu96T+RTCzrWwSHryoagcLCA0ipKjgxdG/WLg3fWZ7u6PgRtH92co0/oG0smkVl/39aJz+HH39nH3bqPmG+E/6DZdwoa1jaccWXrMZdsrIzDIKZSzAF7TcF3FX9LblzP/elGarJRjrPzFXMmovskhcY1DjRm7JFyXQ/eO62trflhA5iGCEhoFwk1ETav5CsHqdED7WK7KY+3CVJB0sOrJDLaJIx+fjl21k/2FDdI9Hw8g4irgn/elvuncj2+9cD0Yw5ITc7U6KtjhJNbWbfBPgSsaIRW7MH008rSSi6xyFCG/5//FXYzDMu2WIcqGVmnCViVA== 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=h6+dLbu+LJNUI7LmQkA87YkmCRemWqPB/58sw7joFaE=; b=Xx14iotOyAzi3cZ5r/XRV/DXPehGc+ujbh7vX93cg6y4gpmKRYm9/NBUc9yQ5g03pnUmtOqeFbHEumMQrw9ap5W1HaSN7mObA9Rw9ypbCNS0XsfvGMgouO49XNpXqgXxQ0YSGFR/BFNZIVLwcvk3s0QAazKCFLdXBNom1bFUAM84q/AwAPwEbToosGzuQRityyBIP4JqvB5Sjln46kRIWuSPwCmukabIoVMoXwr9RUweUwtVrrVLY6MG9pzLG1Y6CwrlA2y3eCoeLO4WjbMjD2DYnzsOJdeYkhNSDlvB3K9svb9Hia/MgX01YakqVQ7PbOHi28ax8F5ec1/zVPIqXw== 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=h6+dLbu+LJNUI7LmQkA87YkmCRemWqPB/58sw7joFaE=; b=R4cUud0eu0RmirJzQOnCSgIHH7F4x6KHFMSid+knLt2HUqsgbD5vn1zvN2m8uPc5JvijxspwAWXULY1nWK5j1YxP7WBSeNP4PwLOTLmSpAUtS98bx5k7BrcAaOl1V+2G5c+BWI6+BQTJVatV56dOnvYCixdwHuz+zKaxdgux1kWzS1Bo5Aqr2wE+FPNQyYi8S2dl9azarHkzToIsRYJUsxs+IhStoLm4mqUx0TOTMNd2k81h5Sv40gn+mCEV2yhKU06sflEqWqy1qw4rcXyfXPKHpLWeLOO/w5252yrlNL1nXijSNmfXtpV7CDLCJJzPHDOgNJdGNK9vQVzvSZu4dw== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by GV1P250MB0857.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:97::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.19; Sun, 30 Oct 2022 23:56:49 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::739a:8740:19c5:925c]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::739a:8740:19c5:925c%5]) with mapi id 15.20.5769.019; Sun, 30 Oct 2022 23:56:49 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 31 Oct 2022 00:56:23 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [c4AOiW2mcYaW83m7Cu0MutkO2TKUlJUZ9aunPVci3kc=] X-ClientProxiedBy: FR0P281CA0146.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:96::20) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20221030235631.11750-10-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|GV1P250MB0857:EE_ X-MS-Office365-Filtering-Correlation-Id: 30b875f9-1609-4093-fb75-08dabad268f9 X-MS-Exchange-SLBlob-MailProps: AZnQBsB9XmqZLd1X3toBDX9YZ7dpDxvLnhfwgMUUPcw33T7lqLq3tmVVD7bxSryJfvxx2YolBkaE1x+64JbA4gmIebe+9yIsCRZ1441xJ42hEyQDvrfutWCPIiDNp4nbYx/cNOHeQTiiPsSGKFhrZkLYHNdBk9RVOIRF8tLK/FbkG1qcPS4oY/ZT9s4RPOxhNKGFzH946uuIbfO58iXjdaPAMbWPI2mu8E3ADrrzBj34H02JI1G43I78tF3Pd5QW5Bmi74SE37NPBwJhZ8PfFGhwNOfzw/H3a7Egbss/wrrzFJLMmJobsBrkEd2OjkJLdl/gO35b2NmJizG5xHSht4lGGJ+zl4wC2QyzrLen7ThDDG3SzW1PSQ7z0wf9a5tq4sjKlqVaGuckZY02GgLg45RlP8Z7JkKs7QDyHq7Tl8K0rCXWnCNjwr4teTZgZfwQAd1Yc2D+JH4Xaon4/2EAX56cenYiTYI4PKx/1eqeAL77iB6MESfilz0OYg6HyARzD+v+TBE2SwDVjsNLWiuDyVfqxa2aVanMDdLL9lDZN33FnEcyio9egmHxA7BFeHZ9CsM2mfsVl/HRY1Pm97U4R0TLtaeRtAuBSmAHNysP4vO6PculATfTOybPYAitWvGWDKgiNEc04Ew/q2ETOd/L79tLm4eZA2nflNHXQJvogAecLD5/HcnhZa2D0MNqU4yS0ZW1Yqvjkxgz67gS1HG2tHwhZBuIMWQAo1yME127MnRFApnqg1MC6oUnAm36zMhPU6XI7c+uOzs= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: aQWhR818k3rqYlc1Ua4TeJRFJ+ibJh1m3O8sOVbU5Y4JKLavRDyGQS6W4WhyHPtxfkeTakfNssbH5fON7/KLmkv1jgp53wdyXm/Cqp7cCXVpJAaaEO5pryh+yMFye8VDzJYTD6Ilwcw1jB3ZDaKqK+MKixwwRwc/AFcN0D53H7U/xq4frFuidMpjMJHrJb1IWY5D44CZxAkgbsmgNfXoazJaG8Cg4tx99ZXmrtxmI1uBkcwiLCEPpaIk2FPrj4RWxQ5SQ4Z5yhM6LZycAP4ImtbVO9eYf+Y3LSIcrd8gB7gVL8C7c0HbRPgeB8xS8dmh/kizX6u8dhr37/PJnWQeny63x3Jh7B+5QBG0s0+D75Gq1E/HqksEKW+ggbK99xKJk/HZ8oN8ud1+mG01kOoXoBzLBiyQt9rMMcrtsEoulxDUzztC4oZ1bFmxooIAWXxPD1UP5BrDdB/htMAq5bNONOOyznXY9AlSh+khmoX6IYp4mITeiv7tjvbHt0/XXJG61jjixSAhPEi4QUFR97Q0ZKr23Kt4njklNq8ykK8KgZzk4pIWjnvKRV6vk56vF74xY1549K3CToQs0X1bDn7wjG/JeYN2Fm9tA39y50mj5gEyxEJ1MBQ6kjMWvM5QRFND4JR64Frfu8BdmzOlDyYd6l3KzMPWcHVVge5FHpLZper7swlSnOR0/edc9cnf/Jy7 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: EeNCPp4CsrfzB8RB36Wn+rgujc8Qmk/iv6XhwwCznwUrDOgPFkvrGtC1r5qqDhgE/pK796AUbsuw681KGGJXRSkJfPv5PJyv7EbCyNUHa6k3AkyejGpeuImrVXhzepT1m2tMI558RRCBaA3tK6+5AWYH6GEUp/ecOWjnnJF8nfRkBrHgeQh+z9HUbhsof3yC4WdSqSrz3j51xvky2AJDoXNw6XeSh9PHJAv8P0Bb/yH3+u9EMCdtkHYUj4Wv8YWkUKPko+LrdnUauwLWXeT2+Se9fN+Z8WMwjYh6eZuPJBwRBOx4gDD9G9Wb3KJanKGLSX9ud4u+vErU/JIUp3yh4f4u5G5Aj26/kVTTpcgebChdhGXonEW7kE9k5p06ThNdz6aKuySmIWMNkuM8gXcgUMzPbC+5juLinZKVSfLVri1LBGAfVXWkM5+mi3ncTn0zNDQLaUhcExUB2fCVTvIBxllGJg0i0d2txmTCrtiWHC7YutpnJ9nvv2kuc6UK41dPGs54JWmugUtH7dRzhNoh0Fd0iulkLj27nwZ5nV59x0OpGZMY9uytAH2HBqBRg1eKj2TCExZvoEaHtsRkNlogICu57uoBTJRCUU5/QmPudv3kCH6ryeyldF8toi0YoiSW3TWwS+yRLC4ONdW9J932F6++dsH58PIYD8gF+1w7F/TopopXMoxuqAMUsP7tzb1Xs13R0NcK5wyTs6BL1uteoQWHzsQYCiBcmrpL9fpGbz9hvU9quFH64ZEVOHzJ4/nVjv4qgcITF9j7o/7EivUGr7XjODptv0NdHk+3jqi7n46TPG2THRWcIFVz35DKtwwIKnpgL8y1FlGQawAJNkFrVrfJt4KuRNFuaEde1GjyAu8e9PDYGoTxe0dV6PcEN4Q8AbxHZ/V3Ch3IPQWUprLsu/0dT0cacjSz6BUgpE3/gns8LZ+mFMK1JDZ4EJEhkbpi+I1xsKW0q2O7EtJES96B50DWTAQXeY+0hm6Fn23wx7BjaS/yjj1Mbzy+A7i2SjXw+1MDHVMXH/kBesV7wUpNipdnvV0Vn1HmOBUPEpRwn20eI/25AbZCf1nV4wNBERzj+wXMkoidPuQStOqk6gI3dUT+n2arktaJc6A59ANmr4sOEgpdmOtYr3Xdm8fCr9jpGi6tmH2PTPwIB4QThloQO2XFNFqljUx3bDxEWeNbI9LO/wqIjo4oufE8bvEqdFISvRNI7lMCoFiDedh3duuHqvm5pAuais/ghYDdMi7Uc+EL7pXHUmv1MHfq3aD9c/s1TdJHhHMslqrpC1wJPr1lK6/VYCiWSC0Hi9PvZvSLHn1aYneiB8VGQ8FKaUvdBdlu X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 30b875f9-1609-4093-fb75-08dabad268f9 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Oct 2022 23:56:49.5658 (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: GV1P250MB0857 Subject: [FFmpeg-devel] [PATCH 11/19] avcodec/vc1: Move ff_vc1_init_common() to vc1dec.c 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: tYqGa6uBaKo1 This is possible given that it is no longer used by the parser. Signed-off-by: Andreas Rheinhardt --- libavcodec/vc1.c | 362 -------------------------------------- libavcodec/vc1_vlc_data.h | 221 +++++++++++++++++++++++ libavcodec/vc1dec.c | 141 +++++++++++++++ 3 files changed, 362 insertions(+), 362 deletions(-) diff --git a/libavcodec/vc1.c b/libavcodec/vc1.c index 5214bcdedf..d4014d25ab 100644 --- a/libavcodec/vc1.c +++ b/libavcodec/vc1.c @@ -26,14 +26,11 @@ * VC-1 and WMV3 decoder common code */ -#include "libavutil/attributes.h" -#include "libavutil/thread.h" #include "avcodec.h" #include "decode.h" #include "mpegvideo.h" #include "vc1.h" #include "vc1data.h" -#include "vc1_vlc_data.h" #include "wmv2data.h" #include "unary.h" @@ -1339,362 +1336,3 @@ int ff_vc1_parse_frame_header_adv(VC1Context *v, GetBitContext* gb) return 0; } - -static const uint32_t vc1_ac_tables[AC_MODES][186][2] = { -{ -{ 0x0001, 2}, { 0x0005, 3}, { 0x000D, 4}, { 0x0012, 5}, { 0x000E, 6}, { 0x0015, 7}, -{ 0x0013, 8}, { 0x003F, 8}, { 0x004B, 9}, { 0x011F, 9}, { 0x00B8, 10}, { 0x03E3, 10}, -{ 0x0172, 11}, { 0x024D, 12}, { 0x03DA, 12}, { 0x02DD, 13}, { 0x1F55, 13}, { 0x05B9, 14}, -{ 0x3EAE, 14}, { 0x0000, 4}, { 0x0010, 5}, { 0x0008, 7}, { 0x0020, 8}, { 0x0029, 9}, -{ 0x01F4, 9}, { 0x0233, 10}, { 0x01E0, 11}, { 0x012A, 12}, { 0x03DD, 12}, { 0x050A, 13}, -{ 0x1F29, 13}, { 0x0A42, 14}, { 0x1272, 15}, { 0x1737, 15}, { 0x0003, 5}, { 0x0011, 7}, -{ 0x00C4, 8}, { 0x004B, 10}, { 0x00B4, 11}, { 0x07D4, 11}, { 0x0345, 12}, { 0x02D7, 13}, -{ 0x07BF, 13}, { 0x0938, 14}, { 0x0BBB, 14}, { 0x095E, 15}, { 0x0013, 5}, { 0x0078, 7}, -{ 0x0069, 9}, { 0x0232, 10}, { 0x0461, 11}, { 0x03EC, 12}, { 0x0520, 13}, { 0x1F2A, 13}, -{ 0x3E50, 14}, { 0x3E51, 14}, { 0x1486, 15}, { 0x000C, 6}, { 0x0024, 9}, { 0x0094, 11}, -{ 0x08C0, 12}, { 0x0F09, 14}, { 0x1EF0, 15}, { 0x003D, 6}, { 0x0053, 9}, { 0x01A0, 11}, -{ 0x02D6, 13}, { 0x0F08, 14}, { 0x0013, 7}, { 0x007C, 9}, { 0x07C1, 11}, { 0x04AC, 14}, -{ 0x001B, 7}, { 0x00A0, 10}, { 0x0344, 12}, { 0x0F79, 14}, { 0x0079, 7}, { 0x03E1, 10}, -{ 0x02D4, 13}, { 0x2306, 14}, { 0x0021, 8}, { 0x023C, 10}, { 0x0FAE, 12}, { 0x23DE, 14}, -{ 0x0035, 8}, { 0x0175, 11}, { 0x07B3, 13}, { 0x00C5, 8}, { 0x0174, 11}, { 0x0785, 13}, -{ 0x0048, 9}, { 0x01A3, 11}, { 0x049E, 13}, { 0x002C, 9}, { 0x00FA, 10}, { 0x07D6, 11}, -{ 0x0092, 10}, { 0x05CC, 13}, { 0x1EF1, 15}, { 0x00A3, 10}, { 0x03ED, 12}, { 0x093E, 14}, -{ 0x01E2, 11}, { 0x1273, 15}, { 0x07C4, 11}, { 0x1487, 15}, { 0x0291, 12}, { 0x0293, 12}, -{ 0x0F8A, 12}, { 0x0509, 13}, { 0x0508, 13}, { 0x078D, 13}, { 0x07BE, 13}, { 0x078C, 13}, -{ 0x04AE, 14}, { 0x0BBA, 14}, { 0x2307, 14}, { 0x0B9A, 14}, { 0x1736, 15}, { 0x000E, 4}, -{ 0x0045, 7}, { 0x01F3, 9}, { 0x047A, 11}, { 0x05DC, 13}, { 0x23DF, 14}, { 0x0019, 5}, -{ 0x0028, 9}, { 0x0176, 11}, { 0x049D, 13}, { 0x23DD, 14}, { 0x0030, 6}, { 0x00A2, 10}, -{ 0x02EF, 12}, { 0x05B8, 14}, { 0x003F, 6}, { 0x00A5, 10}, { 0x03DB, 12}, { 0x093F, 14}, -{ 0x0044, 7}, { 0x07CB, 11}, { 0x095F, 15}, { 0x0063, 7}, { 0x03C3, 12}, { 0x0015, 8}, -{ 0x08F6, 12}, { 0x0017, 8}, { 0x0498, 13}, { 0x002C, 8}, { 0x07B2, 13}, { 0x002F, 8}, -{ 0x1F54, 13}, { 0x008D, 8}, { 0x07BD, 13}, { 0x008E, 8}, { 0x1182, 13}, { 0x00FB, 8}, -{ 0x050B, 13}, { 0x002D, 8}, { 0x07C0, 11}, { 0x0079, 9}, { 0x1F5F, 13}, { 0x007A, 9}, -{ 0x1F56, 13}, { 0x0231, 10}, { 0x03E4, 10}, { 0x01A1, 11}, { 0x0143, 11}, { 0x01F7, 11}, -{ 0x016F, 12}, { 0x0292, 12}, { 0x02E7, 12}, { 0x016C, 12}, { 0x016D, 12}, { 0x03DC, 12}, -{ 0x0F8B, 12}, { 0x0499, 13}, { 0x03D8, 12}, { 0x078E, 13}, { 0x02D5, 13}, { 0x1F5E, 13}, -{ 0x1F2B, 13}, { 0x078F, 13}, { 0x04AD, 14}, { 0x3EAF, 14}, { 0x23DC, 14}, { 0x004A, 9} -}, -{ -{ 0x0000, 3}, { 0x0003, 4}, { 0x000B, 5}, { 0x0014, 6}, { 0x003F, 6}, { 0x005D, 7}, -{ 0x00A2, 8}, { 0x00AC, 9}, { 0x016E, 9}, { 0x020A, 10}, { 0x02E2, 10}, { 0x0432, 11}, -{ 0x05C9, 11}, { 0x0827, 12}, { 0x0B54, 12}, { 0x04E6, 13}, { 0x105F, 13}, { 0x172A, 13}, -{ 0x20B2, 14}, { 0x2D4E, 14}, { 0x39F0, 14}, { 0x4175, 15}, { 0x5A9E, 15}, { 0x0004, 4}, -{ 0x001E, 5}, { 0x0042, 7}, { 0x00B6, 8}, { 0x0173, 9}, { 0x0395, 10}, { 0x072E, 11}, -{ 0x0B94, 12}, { 0x16A4, 13}, { 0x20B3, 14}, { 0x2E45, 14}, { 0x0005, 5}, { 0x0040, 7}, -{ 0x0049, 9}, { 0x028F, 10}, { 0x05CB, 11}, { 0x048A, 13}, { 0x09DD, 14}, { 0x73E2, 15}, -{ 0x0018, 5}, { 0x0025, 8}, { 0x008A, 10}, { 0x051B, 11}, { 0x0E5F, 12}, { 0x09C9, 14}, -{ 0x139C, 15}, { 0x0029, 6}, { 0x004F, 9}, { 0x0412, 11}, { 0x048D, 13}, { 0x2E41, 14}, -{ 0x0038, 6}, { 0x010E, 9}, { 0x05A8, 11}, { 0x105C, 13}, { 0x39F2, 14}, { 0x0058, 7}, -{ 0x021F, 10}, { 0x0E7E, 12}, { 0x39FF, 14}, { 0x0023, 8}, { 0x02E3, 10}, { 0x04E5, 13}, -{ 0x2E40, 14}, { 0x00A1, 8}, { 0x05BE, 11}, { 0x09C8, 14}, { 0x0083, 8}, { 0x013A, 11}, -{ 0x1721, 13}, { 0x0044, 9}, { 0x0276, 12}, { 0x39F6, 14}, { 0x008B, 10}, { 0x04EF, 13}, -{ 0x5A9B, 15}, { 0x0208, 10}, { 0x1CFE, 13}, { 0x0399, 10}, { 0x1CB4, 13}, { 0x039E, 10}, -{ 0x39F3, 14}, { 0x05AB, 11}, { 0x73E3, 15}, { 0x0737, 11}, { 0x5A9F, 15}, { 0x082D, 12}, -{ 0x0E69, 12}, { 0x0E68, 12}, { 0x0433, 11}, { 0x0B7B, 12}, { 0x2DF8, 14}, { 0x2E56, 14}, -{ 0x2E57, 14}, { 0x39F7, 14}, { 0x51A5, 15}, { 0x0003, 3}, { 0x002A, 6}, { 0x00E4, 8}, -{ 0x028E, 10}, { 0x0735, 11}, { 0x1058, 13}, { 0x1CFA, 13}, { 0x2DF9, 14}, { 0x4174, 15}, -{ 0x0009, 4}, { 0x0054, 8}, { 0x0398, 10}, { 0x048B, 13}, { 0x139D, 15}, { 0x000D, 4}, -{ 0x00AD, 9}, { 0x0826, 12}, { 0x2D4C, 14}, { 0x0011, 5}, { 0x016B, 9}, { 0x0B7F, 12}, -{ 0x51A4, 15}, { 0x0019, 5}, { 0x021B, 10}, { 0x16FD, 13}, { 0x001D, 5}, { 0x0394, 10}, -{ 0x28D3, 14}, { 0x002B, 6}, { 0x05BC, 11}, { 0x5A9A, 15}, { 0x002F, 6}, { 0x0247, 12}, -{ 0x0010, 7}, { 0x0A35, 12}, { 0x003E, 6}, { 0x0B7A, 12}, { 0x0059, 7}, { 0x105E, 13}, -{ 0x0026, 8}, { 0x09CF, 14}, { 0x0055, 8}, { 0x1CB5, 13}, { 0x0057, 8}, { 0x0E5B, 12}, -{ 0x00A0, 8}, { 0x1468, 13}, { 0x0170, 9}, { 0x0090, 10}, { 0x01CE, 9}, { 0x021A, 10}, -{ 0x0218, 10}, { 0x0168, 9}, { 0x021E, 10}, { 0x0244, 12}, { 0x0736, 11}, { 0x0138, 11}, -{ 0x0519, 11}, { 0x0E5E, 12}, { 0x072C, 11}, { 0x0B55, 12}, { 0x09DC, 14}, { 0x20BB, 14}, -{ 0x048C, 13}, { 0x1723, 13}, { 0x2E44, 14}, { 0x16A5, 13}, { 0x0518, 11}, { 0x39FE, 14}, -{ 0x0169, 9} -}, -{ -{ 0x0001, 2}, { 0x0006, 3}, { 0x000F, 4}, { 0x0016, 5}, { 0x0020, 6}, { 0x0018, 7}, -{ 0x0008, 8}, { 0x009A, 8}, { 0x0056, 9}, { 0x013E, 9}, { 0x00F0, 10}, { 0x03A5, 10}, -{ 0x0077, 11}, { 0x01EF, 11}, { 0x009A, 12}, { 0x005D, 13}, { 0x0001, 4}, { 0x0011, 5}, -{ 0x0002, 7}, { 0x000B, 8}, { 0x0012, 9}, { 0x01D6, 9}, { 0x027E, 10}, { 0x0191, 11}, -{ 0x00EA, 12}, { 0x03DC, 12}, { 0x013B, 13}, { 0x0004, 5}, { 0x0014, 7}, { 0x009E, 8}, -{ 0x0009, 10}, { 0x01AC, 11}, { 0x01E2, 11}, { 0x03CA, 12}, { 0x005F, 13}, { 0x0017, 5}, -{ 0x004E, 7}, { 0x005E, 9}, { 0x00F3, 10}, { 0x01AD, 11}, { 0x00EC, 12}, { 0x05F0, 13}, -{ 0x000E, 6}, { 0x00E1, 8}, { 0x03A4, 10}, { 0x009C, 12}, { 0x013D, 13}, { 0x003B, 6}, -{ 0x001C, 9}, { 0x0014, 11}, { 0x09BE, 12}, { 0x0006, 7}, { 0x007A, 9}, { 0x0190, 11}, -{ 0x0137, 13}, { 0x001B, 7}, { 0x0008, 10}, { 0x075C, 11}, { 0x0071, 7}, { 0x00D7, 10}, -{ 0x09BF, 12}, { 0x0007, 8}, { 0x00AF, 10}, { 0x04CC, 11}, { 0x0034, 8}, { 0x0265, 10}, -{ 0x009F, 12}, { 0x00E0, 8}, { 0x0016, 11}, { 0x0327, 12}, { 0x0015, 9}, { 0x017D, 11}, -{ 0x0EBB, 12}, { 0x0014, 9}, { 0x00F6, 10}, { 0x01E4, 11}, { 0x00CB, 10}, { 0x099D, 12}, -{ 0x00CA, 10}, { 0x02FC, 12}, { 0x017F, 11}, { 0x04CD, 11}, { 0x02FD, 12}, { 0x04FE, 11}, -{ 0x013A, 13}, { 0x000A, 4}, { 0x0042, 7}, { 0x01D3, 9}, { 0x04DD, 11}, { 0x0012, 5}, -{ 0x00E8, 8}, { 0x004C, 11}, { 0x0136, 13}, { 0x0039, 6}, { 0x0264, 10}, { 0x0EBA, 12}, -{ 0x0000, 7}, { 0x00AE, 10}, { 0x099C, 12}, { 0x001F, 7}, { 0x04DE, 11}, { 0x0043, 7}, -{ 0x04DC, 11}, { 0x0003, 8}, { 0x03CB, 12}, { 0x0006, 8}, { 0x099E, 12}, { 0x002A, 8}, -{ 0x05F1, 13}, { 0x000F, 8}, { 0x09FE, 12}, { 0x0033, 8}, { 0x09FF, 12}, { 0x0098, 8}, -{ 0x099F, 12}, { 0x00EA, 8}, { 0x013C, 13}, { 0x002E, 8}, { 0x0192, 11}, { 0x0136, 9}, -{ 0x006A, 9}, { 0x0015, 11}, { 0x03AF, 10}, { 0x01E3, 11}, { 0x0074, 11}, { 0x00EB, 12}, -{ 0x02F9, 12}, { 0x005C, 13}, { 0x00ED, 12}, { 0x03DD, 12}, { 0x0326, 12}, { 0x005E, 13}, -{ 0x0016, 7} -}, -{ -{ 0x0004, 3}, { 0x0014, 5}, { 0x0017, 7}, { 0x007F, 8}, { 0x0154, 9}, { 0x01F2, 10}, -{ 0x00BF, 11}, { 0x0065, 12}, { 0x0AAA, 12}, { 0x0630, 13}, { 0x1597, 13}, { 0x03B7, 14}, -{ 0x2B22, 14}, { 0x0BE6, 15}, { 0x000B, 4}, { 0x0037, 7}, { 0x0062, 9}, { 0x0007, 11}, -{ 0x0166, 12}, { 0x00CE, 13}, { 0x1590, 13}, { 0x05F6, 14}, { 0x0BE7, 15}, { 0x0007, 5}, -{ 0x006D, 8}, { 0x0003, 11}, { 0x031F, 12}, { 0x05F2, 14}, { 0x0002, 6}, { 0x0061, 9}, -{ 0x0055, 12}, { 0x01DF, 14}, { 0x001A, 6}, { 0x001E, 10}, { 0x0AC9, 12}, { 0x2B23, 14}, -{ 0x001E, 6}, { 0x001F, 10}, { 0x0AC3, 12}, { 0x2B2B, 14}, { 0x0006, 7}, { 0x0004, 11}, -{ 0x02F8, 13}, { 0x0019, 7}, { 0x0006, 11}, { 0x063D, 13}, { 0x0057, 7}, { 0x0182, 11}, -{ 0x2AA2, 14}, { 0x0004, 8}, { 0x0180, 11}, { 0x059C, 14}, { 0x007D, 8}, { 0x0164, 12}, -{ 0x076D, 15}, { 0x0002, 9}, { 0x018D, 11}, { 0x1581, 13}, { 0x00AD, 8}, { 0x0060, 12}, -{ 0x0C67, 14}, { 0x001C, 9}, { 0x00EE, 13}, { 0x0003, 9}, { 0x02CF, 13}, { 0x00D9, 9}, -{ 0x1580, 13}, { 0x0002, 11}, { 0x0183, 11}, { 0x0057, 12}, { 0x0061, 12}, { 0x0031, 11}, -{ 0x0066, 12}, { 0x0631, 13}, { 0x0632, 13}, { 0x00AC, 13}, { 0x031D, 12}, { 0x0076, 12}, -{ 0x003A, 11}, { 0x0165, 12}, { 0x0C66, 14}, { 0x0003, 2}, { 0x0054, 7}, { 0x02AB, 10}, -{ 0x0016, 13}, { 0x05F7, 14}, { 0x0005, 4}, { 0x00F8, 9}, { 0x0AA9, 12}, { 0x005F, 15}, -{ 0x0004, 4}, { 0x001C, 10}, { 0x1550, 13}, { 0x0004, 5}, { 0x0077, 11}, { 0x076C, 15}, -{ 0x000E, 5}, { 0x000A, 12}, { 0x000C, 5}, { 0x0562, 11}, { 0x0004, 6}, { 0x031C, 12}, -{ 0x0006, 6}, { 0x00C8, 13}, { 0x000D, 6}, { 0x01DA, 13}, { 0x0007, 6}, { 0x00C9, 13}, -{ 0x0001, 7}, { 0x002E, 14}, { 0x0014, 7}, { 0x1596, 13}, { 0x000A, 7}, { 0x0AC2, 12}, -{ 0x0016, 7}, { 0x015B, 14}, { 0x0015, 7}, { 0x015A, 14}, { 0x000F, 8}, { 0x005E, 15}, -{ 0x007E, 8}, { 0x00AB, 8}, { 0x002D, 9}, { 0x00D8, 9}, { 0x000B, 9}, { 0x0014, 10}, -{ 0x02B3, 10}, { 0x01F3, 10}, { 0x003A, 10}, { 0x0000, 10}, { 0x0058, 10}, { 0x002E, 9}, -{ 0x005E, 10}, { 0x0563, 11}, { 0x00EC, 12}, { 0x0054, 12}, { 0x0AC1, 12}, { 0x1556, 13}, -{ 0x02FA, 13}, { 0x0181, 11}, { 0x1557, 13}, { 0x059D, 14}, { 0x2AA3, 14}, { 0x2B2A, 14}, -{ 0x01DE, 14}, { 0x063C, 13}, { 0x00CF, 13}, { 0x1594, 13}, { 0x000D, 9} -}, -{ -{ 0x0002, 2}, { 0x0006, 3}, { 0x000F, 4}, { 0x000D, 5}, { 0x000C, 5}, { 0x0015, 6}, -{ 0x0013, 6}, { 0x0012, 6}, { 0x0017, 7}, { 0x001F, 8}, { 0x001E, 8}, { 0x001D, 8}, -{ 0x0025, 9}, { 0x0024, 9}, { 0x0023, 9}, { 0x0021, 9}, { 0x0021, 10}, { 0x0020, 10}, -{ 0x000F, 10}, { 0x000E, 10}, { 0x0007, 11}, { 0x0006, 11}, { 0x0020, 11}, { 0x0021, 11}, -{ 0x0050, 12}, { 0x0051, 12}, { 0x0052, 12}, { 0x000E, 4}, { 0x0014, 6}, { 0x0016, 7}, -{ 0x001C, 8}, { 0x0020, 9}, { 0x001F, 9}, { 0x000D, 10}, { 0x0022, 11}, { 0x0053, 12}, -{ 0x0055, 12}, { 0x000B, 5}, { 0x0015, 7}, { 0x001E, 9}, { 0x000C, 10}, { 0x0056, 12}, -{ 0x0011, 6}, { 0x001B, 8}, { 0x001D, 9}, { 0x000B, 10}, { 0x0010, 6}, { 0x0022, 9}, -{ 0x000A, 10}, { 0x000D, 6}, { 0x001C, 9}, { 0x0008, 10}, { 0x0012, 7}, { 0x001B, 9}, -{ 0x0054, 12}, { 0x0014, 7}, { 0x001A, 9}, { 0x0057, 12}, { 0x0019, 8}, { 0x0009, 10}, -{ 0x0018, 8}, { 0x0023, 11}, { 0x0017, 8}, { 0x0019, 9}, { 0x0018, 9}, { 0x0007, 10}, -{ 0x0058, 12}, { 0x0007, 4}, { 0x000C, 6}, { 0x0016, 8}, { 0x0017, 9}, { 0x0006, 10}, -{ 0x0005, 11}, { 0x0004, 11}, { 0x0059, 12}, { 0x000F, 6}, { 0x0016, 9}, { 0x0005, 10}, -{ 0x000E, 6}, { 0x0004, 10}, { 0x0011, 7}, { 0x0024, 11}, { 0x0010, 7}, { 0x0025, 11}, -{ 0x0013, 7}, { 0x005A, 12}, { 0x0015, 8}, { 0x005B, 12}, { 0x0014, 8}, { 0x0013, 8}, -{ 0x001A, 8}, { 0x0015, 9}, { 0x0014, 9}, { 0x0013, 9}, { 0x0012, 9}, { 0x0011, 9}, -{ 0x0026, 11}, { 0x0027, 11}, { 0x005C, 12}, { 0x005D, 12}, { 0x005E, 12}, { 0x005F, 12}, -{ 0x0003, 7} -}, -{ -{ 0x0002, 2}, { 0x000F, 4}, { 0x0015, 6}, { 0x0017, 7}, { 0x001F, 8}, { 0x0025, 9}, -{ 0x0024, 9}, { 0x0021, 10}, { 0x0020, 10}, { 0x0007, 11}, { 0x0006, 11}, { 0x0020, 11}, -{ 0x0006, 3}, { 0x0014, 6}, { 0x001E, 8}, { 0x000F, 10}, { 0x0021, 11}, { 0x0050, 12}, -{ 0x000E, 4}, { 0x001D, 8}, { 0x000E, 10}, { 0x0051, 12}, { 0x000D, 5}, { 0x0023, 9}, -{ 0x000D, 10}, { 0x000C, 5}, { 0x0022, 9}, { 0x0052, 12}, { 0x000B, 5}, { 0x000C, 10}, -{ 0x0053, 12}, { 0x0013, 6}, { 0x000B, 10}, { 0x0054, 12}, { 0x0012, 6}, { 0x000A, 10}, -{ 0x0011, 6}, { 0x0009, 10}, { 0x0010, 6}, { 0x0008, 10}, { 0x0016, 7}, { 0x0055, 12}, -{ 0x0015, 7}, { 0x0014, 7}, { 0x001C, 8}, { 0x001B, 8}, { 0x0021, 9}, { 0x0020, 9}, -{ 0x001F, 9}, { 0x001E, 9}, { 0x001D, 9}, { 0x001C, 9}, { 0x001B, 9}, { 0x001A, 9}, -{ 0x0022, 11}, { 0x0023, 11}, { 0x0056, 12}, { 0x0057, 12}, { 0x0007, 4}, { 0x0019, 9}, -{ 0x0005, 11}, { 0x000F, 6}, { 0x0004, 11}, { 0x000E, 6}, { 0x000D, 6}, { 0x000C, 6}, -{ 0x0013, 7}, { 0x0012, 7}, { 0x0011, 7}, { 0x0010, 7}, { 0x001A, 8}, { 0x0019, 8}, -{ 0x0018, 8}, { 0x0017, 8}, { 0x0016, 8}, { 0x0015, 8}, { 0x0014, 8}, { 0x0013, 8}, -{ 0x0018, 9}, { 0x0017, 9}, { 0x0016, 9}, { 0x0015, 9}, { 0x0014, 9}, { 0x0013, 9}, -{ 0x0012, 9}, { 0x0011, 9}, { 0x0007, 10}, { 0x0006, 10}, { 0x0005, 10}, { 0x0004, 10}, -{ 0x0024, 11}, { 0x0025, 11}, { 0x0026, 11}, { 0x0027, 11}, { 0x0058, 12}, { 0x0059, 12}, -{ 0x005A, 12}, { 0x005B, 12}, { 0x005C, 12}, { 0x005D, 12}, { 0x005E, 12}, { 0x005F, 12}, -{ 0x0003, 7} -}, -{ -{ 0x0000, 2}, { 0x0003, 3}, { 0x000D, 4}, { 0x0005, 4}, { 0x001C, 5}, { 0x0016, 5}, -{ 0x003F, 6}, { 0x003A, 6}, { 0x002E, 6}, { 0x0022, 6}, { 0x007B, 7}, { 0x0067, 7}, -{ 0x005F, 7}, { 0x0047, 7}, { 0x0026, 7}, { 0x00EF, 8}, { 0x00CD, 8}, { 0x00C1, 8}, -{ 0x00A9, 8}, { 0x004F, 8}, { 0x01F2, 9}, { 0x01DD, 9}, { 0x0199, 9}, { 0x0185, 9}, -{ 0x015D, 9}, { 0x011B, 9}, { 0x03EF, 10}, { 0x03E1, 10}, { 0x03C8, 10}, { 0x0331, 10}, -{ 0x0303, 10}, { 0x02F1, 10}, { 0x02A0, 10}, { 0x0233, 10}, { 0x0126, 10}, { 0x07C0, 11}, -{ 0x076F, 11}, { 0x076C, 11}, { 0x0661, 11}, { 0x0604, 11}, { 0x0572, 11}, { 0x0551, 11}, -{ 0x046A, 11}, { 0x0274, 11}, { 0x0F27, 12}, { 0x0F24, 12}, { 0x0EDB, 12}, { 0x0C8E, 12}, -{ 0x0C0B, 12}, { 0x0C0A, 12}, { 0x0AE3, 12}, { 0x08D6, 12}, { 0x0490, 12}, { 0x0495, 12}, -{ 0x1F19, 13}, { 0x1DB5, 13}, { 0x0009, 4}, { 0x0010, 5}, { 0x0029, 6}, { 0x0062, 7}, -{ 0x00F3, 8}, { 0x00AD, 8}, { 0x01E5, 9}, { 0x0179, 9}, { 0x009C, 9}, { 0x03B1, 10}, -{ 0x02AE, 10}, { 0x0127, 10}, { 0x076E, 11}, { 0x0570, 11}, { 0x0275, 11}, { 0x0F25, 12}, -{ 0x0EC0, 12}, { 0x0AA0, 12}, { 0x08D7, 12}, { 0x1E4C, 13}, { 0x0008, 5}, { 0x0063, 7}, -{ 0x00AF, 8}, { 0x017B, 9}, { 0x03B3, 10}, { 0x07DD, 11}, { 0x0640, 11}, { 0x0F8D, 12}, -{ 0x0BC1, 12}, { 0x0491, 12}, { 0x0028, 6}, { 0x00C3, 8}, { 0x0151, 9}, { 0x02A1, 10}, -{ 0x0573, 11}, { 0x0EC3, 12}, { 0x1F35, 13}, { 0x0065, 7}, { 0x01DA, 9}, { 0x02AF, 10}, -{ 0x0277, 11}, { 0x08C9, 12}, { 0x1781, 13}, { 0x0025, 7}, { 0x0118, 9}, { 0x0646, 11}, -{ 0x0AA6, 12}, { 0x1780, 13}, { 0x00C9, 8}, { 0x0321, 10}, { 0x0F9B, 12}, { 0x191E, 13}, -{ 0x0048, 8}, { 0x07CC, 11}, { 0x0AA1, 12}, { 0x0180, 9}, { 0x0465, 11}, { 0x1905, 13}, -{ 0x03E2, 10}, { 0x0EC1, 12}, { 0x3C9B, 14}, { 0x02F4, 10}, { 0x08C8, 12}, { 0x07C1, 11}, -{ 0x0928, 13}, { 0x05E1, 11}, { 0x320D, 14}, { 0x0EC2, 12}, { 0x6418, 15}, { 0x1F34, 13}, -{ 0x0078, 7}, { 0x0155, 9}, { 0x0552, 11}, { 0x191F, 13}, { 0x00FA, 8}, { 0x07DC, 11}, -{ 0x1907, 13}, { 0x00AC, 8}, { 0x0249, 11}, { 0x13B1, 14}, { 0x01F6, 9}, { 0x0AE2, 12}, -{ 0x01DC, 9}, { 0x04ED, 12}, { 0x0184, 9}, { 0x1904, 13}, { 0x0156, 9}, { 0x09D9, 13}, -{ 0x03E7, 10}, { 0x0929, 13}, { 0x03B2, 10}, { 0x3B68, 14}, { 0x02F5, 10}, { 0x13B0, 14}, -{ 0x0322, 10}, { 0x3B69, 14}, { 0x0234, 10}, { 0x7935, 15}, { 0x07C7, 11}, { 0xC833, 16}, -{ 0x0660, 11}, { 0x7934, 15}, { 0x024B, 11}, { 0xC832, 16}, { 0x0AA7, 12}, { 0x1F18, 13}, -{ 0x007A, 7} -}, -{ -{ 0x0002, 2}, { 0x0000, 3}, { 0x001E, 5}, { 0x0004, 5}, { 0x0012, 6}, { 0x0070, 7}, -{ 0x001A, 7}, { 0x005F, 8}, { 0x0047, 8}, { 0x01D3, 9}, { 0x00B5, 9}, { 0x0057, 9}, -{ 0x03B5, 10}, { 0x016D, 10}, { 0x0162, 10}, { 0x07CE, 11}, { 0x0719, 11}, { 0x0691, 11}, -{ 0x02C6, 11}, { 0x0156, 11}, { 0x0F92, 12}, { 0x0D2E, 12}, { 0x0D20, 12}, { 0x059E, 12}, -{ 0x0468, 12}, { 0x02A6, 12}, { 0x1DA2, 13}, { 0x1C60, 13}, { 0x1A43, 13}, { 0x0B1D, 13}, -{ 0x08C0, 13}, { 0x055D, 13}, { 0x0003, 3}, { 0x000A, 5}, { 0x0077, 7}, { 0x00E5, 8}, -{ 0x01D9, 9}, { 0x03E5, 10}, { 0x0166, 10}, { 0x0694, 11}, { 0x0152, 11}, { 0x059F, 12}, -{ 0x1F3C, 13}, { 0x1A4B, 13}, { 0x055E, 13}, { 0x000C, 4}, { 0x007D, 7}, { 0x0044, 8}, -{ 0x03E0, 10}, { 0x0769, 11}, { 0x0E31, 12}, { 0x1F26, 13}, { 0x055C, 13}, { 0x001B, 5}, -{ 0x00E2, 8}, { 0x03A5, 10}, { 0x02C9, 11}, { 0x1F23, 13}, { 0x3B47, 14}, { 0x0007, 5}, -{ 0x01D8, 9}, { 0x02D8, 11}, { 0x1F27, 13}, { 0x3494, 14}, { 0x0035, 6}, { 0x03E1, 10}, -{ 0x059C, 12}, { 0x38C3, 14}, { 0x000C, 6}, { 0x0165, 10}, { 0x1D23, 13}, { 0x1638, 14}, -{ 0x0068, 7}, { 0x0693, 11}, { 0x3A45, 14}, { 0x0020, 7}, { 0x0F90, 12}, { 0x7CF6, 15}, -{ 0x00E8, 8}, { 0x058F, 12}, { 0x2CEF, 15}, { 0x0045, 8}, { 0x0B3A, 13}, { 0x01F1, 9}, -{ 0x3B46, 14}, { 0x01A7, 9}, { 0x1676, 14}, { 0x0056, 9}, { 0x692A, 15}, { 0x038D, 10}, -{ 0xE309, 16}, { 0x00AA, 10}, { 0x1C611, 17}, { 0x02DF, 11}, { 0xB3B9, 17}, { 0x02C8, 11}, -{ 0x38C20, 18}, { 0x01B0, 11}, { 0x16390, 18}, { 0x0F9F, 12}, { 0x16771, 18}, { 0x0ED0, 12}, -{ 0x71843, 19}, { 0x0D2A, 12}, { 0xF9E8C, 20}, { 0x0461, 12}, { 0xF9E8E, 20}, { 0x0B67, 13}, -{ 0x055F, 13}, { 0x003F, 6}, { 0x006D, 9}, { 0x0E90, 12}, { 0x054E, 13}, { 0x0013, 6}, -{ 0x0119, 10}, { 0x0B66, 13}, { 0x000B, 6}, { 0x0235, 11}, { 0x7CF5, 15}, { 0x0075, 7}, -{ 0x0D24, 12}, { 0xF9E9, 16}, { 0x002E, 7}, { 0x1F22, 13}, { 0x0021, 7}, { 0x054F, 13}, -{ 0x0014, 7}, { 0x3A44, 14}, { 0x00E4, 8}, { 0x7CF7, 15}, { 0x005E, 8}, { 0x7185, 15}, -{ 0x0037, 8}, { 0x2C73, 15}, { 0x01DB, 9}, { 0x59DD, 16}, { 0x01C7, 9}, { 0x692B, 15}, -{ 0x01A6, 9}, { 0x58E5, 16}, { 0x00B4, 9}, { 0x1F3D0, 17}, { 0x00B0, 9}, { 0xB1C9, 17}, -{ 0x03E6, 10}, { 0x16770, 18}, { 0x016E, 10}, { 0x3E7A2, 18}, { 0x011B, 10}, { 0xF9E8D, 20}, -{ 0x00D9, 10}, { 0xF9E8F, 20}, { 0x00A8, 10}, { 0x2C723, 19}, { 0x0749, 11}, { 0xE3084, 20}, -{ 0x0696, 11}, { 0x58E45, 20}, { 0x02DE, 11}, { 0xB1C88, 21}, { 0x0231, 11}, { 0x1C610A, 21}, -{ 0x01B1, 11}, { 0x71842D, 23}, { 0x0D2B, 12}, { 0x38C217, 22}, { 0x0D2F, 12}, { 0x163913, 22}, -{ 0x05B2, 12}, { 0x163912, 22}, { 0x0469, 12}, { 0x71842C, 23}, { 0x1A42, 13}, { 0x08C1, 13}, -{ 0x0073, 7} -} -}; - -static const uint16_t vlc_offs[] = { - 0, 520, 552, 616, 1128, 1160, 1224, 1740, 1772, 1836, 1900, 2436, - 2986, 3050, 3610, 4154, 4218, 4746, 5326, 5390, 5902, 6554, 7658, 8342, - 9304, 9988, 10630, 11234, 12174, 13006, 13560, 14232, 14786, 15432, 16350, 17522, - 20372, 21818, 22330, 22394, 23166, 23678, 23742, 24820, 25332, 25396, 26460, 26980, - 27048, 27592, 27600, 27608, 27616, 27624, 28224, 28258, 28290, 28802, 28834, 28866, - 29378, 29412, 29444, 29960, 29994, 30026, 30538, 30572, 30604, 31120, 31154, 31186, - 31714, 31746, 31778, 32306, 32340, 32372 -}; - -static av_cold void vc1_init_static(void) -{ - static VLCElem vlc_table[32372]; - - INIT_VLC_STATIC(&ff_vc1_norm2_vlc, VC1_NORM2_VLC_BITS, 4, - vc1_norm2_bits, 1, 1, - vc1_norm2_codes, 1, 1, 1 << VC1_NORM2_VLC_BITS); - INIT_VLC_STATIC(&ff_vc1_norm6_vlc, VC1_NORM6_VLC_BITS, 64, - vc1_norm6_bits, 1, 1, - vc1_norm6_codes, 2, 2, 556); - INIT_VLC_STATIC(&ff_vc1_imode_vlc, VC1_IMODE_VLC_BITS, 7, - vc1_imode_bits, 1, 1, - vc1_imode_codes, 1, 1, 1 << VC1_IMODE_VLC_BITS); - for (int i = 0; i < 3; i++) { - ff_vc1_ttmb_vlc[i].table = &vlc_table[vlc_offs[i * 3 + 0]]; - ff_vc1_ttmb_vlc[i].table_allocated = vlc_offs[i * 3 + 1] - vlc_offs[i * 3 + 0]; - init_vlc(&ff_vc1_ttmb_vlc[i], VC1_TTMB_VLC_BITS, 16, - vc1_ttmb_bits[i], 1, 1, - vc1_ttmb_codes[i], 2, 2, INIT_VLC_USE_NEW_STATIC); - ff_vc1_ttblk_vlc[i].table = &vlc_table[vlc_offs[i * 3 + 1]]; - ff_vc1_ttblk_vlc[i].table_allocated = vlc_offs[i * 3 + 2] - vlc_offs[i * 3 + 1]; - init_vlc(&ff_vc1_ttblk_vlc[i], VC1_TTBLK_VLC_BITS, 8, - vc1_ttblk_bits[i], 1, 1, - vc1_ttblk_codes[i], 1, 1, INIT_VLC_USE_NEW_STATIC); - ff_vc1_subblkpat_vlc[i].table = &vlc_table[vlc_offs[i * 3 + 2]]; - ff_vc1_subblkpat_vlc[i].table_allocated = vlc_offs[i * 3 + 3] - vlc_offs[i * 3 + 2]; - init_vlc(&ff_vc1_subblkpat_vlc[i], VC1_SUBBLKPAT_VLC_BITS, 15, - vc1_subblkpat_bits[i], 1, 1, - vc1_subblkpat_codes[i], 1, 1, INIT_VLC_USE_NEW_STATIC); - } - for (int i = 0; i < 4; i++) { - ff_vc1_4mv_block_pattern_vlc[i].table = &vlc_table[vlc_offs[i * 3 + 9]]; - ff_vc1_4mv_block_pattern_vlc[i].table_allocated = vlc_offs[i * 3 + 10] - vlc_offs[i * 3 + 9]; - init_vlc(&ff_vc1_4mv_block_pattern_vlc[i], VC1_4MV_BLOCK_PATTERN_VLC_BITS, 16, - vc1_4mv_block_pattern_bits[i], 1, 1, - vc1_4mv_block_pattern_codes[i], 1, 1, INIT_VLC_USE_NEW_STATIC); - ff_vc1_cbpcy_p_vlc[i].table = &vlc_table[vlc_offs[i * 3 + 10]]; - ff_vc1_cbpcy_p_vlc[i].table_allocated = vlc_offs[i * 3 + 11] - vlc_offs[i * 3 + 10]; - init_vlc(&ff_vc1_cbpcy_p_vlc[i], VC1_CBPCY_P_VLC_BITS, 64, - vc1_cbpcy_p_bits[i], 1, 1, - vc1_cbpcy_p_codes[i], 2, 2, INIT_VLC_USE_NEW_STATIC); - ff_vc1_mv_diff_vlc[i].table = &vlc_table[vlc_offs[i * 3 + 11]]; - ff_vc1_mv_diff_vlc[i].table_allocated = vlc_offs[i * 3 + 12] - vlc_offs[i * 3 + 11]; - init_vlc(&ff_vc1_mv_diff_vlc[i], VC1_MV_DIFF_VLC_BITS, 73, - vc1_mv_diff_bits[i], 1, 1, - vc1_mv_diff_codes[i], 2, 2, INIT_VLC_USE_NEW_STATIC); - } - for (int i = 0; i < 8; i++) { - ff_vc1_ac_coeff_table[i].table = &vlc_table[vlc_offs[i * 2 + 21]]; - ff_vc1_ac_coeff_table[i].table_allocated = vlc_offs[i * 2 + 22] - vlc_offs[i * 2 + 21]; - init_vlc(&ff_vc1_ac_coeff_table[i], AC_VLC_BITS, ff_vc1_ac_sizes[i], - &vc1_ac_tables[i][0][1], 8, 4, - &vc1_ac_tables[i][0][0], 8, 4, INIT_VLC_USE_NEW_STATIC); - /* initialize interlaced MVDATA tables (2-Ref) */ - ff_vc1_2ref_mvdata_vlc[i].table = &vlc_table[vlc_offs[i * 2 + 22]]; - ff_vc1_2ref_mvdata_vlc[i].table_allocated = vlc_offs[i * 2 + 23] - vlc_offs[i * 2 + 22]; - init_vlc(&ff_vc1_2ref_mvdata_vlc[i], VC1_2REF_MVDATA_VLC_BITS, 126, - vc1_2ref_mvdata_bits[i], 1, 1, - vc1_2ref_mvdata_codes[i], 4, 4, INIT_VLC_USE_NEW_STATIC); - } - for (int i = 0; i < 4; i++) { - /* initialize 4MV MBMODE VLC tables for interlaced frame P picture */ - ff_vc1_intfr_4mv_mbmode_vlc[i].table = &vlc_table[vlc_offs[i * 3 + 37]]; - ff_vc1_intfr_4mv_mbmode_vlc[i].table_allocated = vlc_offs[i * 3 + 38] - vlc_offs[i * 3 + 37]; - init_vlc(&ff_vc1_intfr_4mv_mbmode_vlc[i], VC1_INTFR_4MV_MBMODE_VLC_BITS, 15, - vc1_intfr_4mv_mbmode_bits[i], 1, 1, - vc1_intfr_4mv_mbmode_codes[i], 2, 2, INIT_VLC_USE_NEW_STATIC); - /* initialize NON-4MV MBMODE VLC tables for the same */ - ff_vc1_intfr_non4mv_mbmode_vlc[i].table = &vlc_table[vlc_offs[i * 3 + 38]]; - ff_vc1_intfr_non4mv_mbmode_vlc[i].table_allocated = vlc_offs[i * 3 + 39] - vlc_offs[i * 3 + 38]; - init_vlc(&ff_vc1_intfr_non4mv_mbmode_vlc[i], VC1_INTFR_NON4MV_MBMODE_VLC_BITS, 9, - vc1_intfr_non4mv_mbmode_bits[i], 1, 1, - vc1_intfr_non4mv_mbmode_codes[i], 1, 1, INIT_VLC_USE_NEW_STATIC); - /* initialize interlaced MVDATA tables (1-Ref) */ - ff_vc1_1ref_mvdata_vlc[i].table = &vlc_table[vlc_offs[i * 3 + 39]]; - ff_vc1_1ref_mvdata_vlc[i].table_allocated = vlc_offs[i * 3 + 40] - vlc_offs[i * 3 + 39]; - init_vlc(&ff_vc1_1ref_mvdata_vlc[i], VC1_1REF_MVDATA_VLC_BITS, 72, - vc1_1ref_mvdata_bits[i], 1, 1, - vc1_1ref_mvdata_codes[i], 4, 4, INIT_VLC_USE_NEW_STATIC); - } - for (int i = 0; i < 4; i++) { - /* Initialize 2MV Block pattern VLC tables */ - ff_vc1_2mv_block_pattern_vlc[i].table = &vlc_table[vlc_offs[i + 49]]; - ff_vc1_2mv_block_pattern_vlc[i].table_allocated = vlc_offs[i + 50] - vlc_offs[i + 49]; - init_vlc(&ff_vc1_2mv_block_pattern_vlc[i], VC1_2MV_BLOCK_PATTERN_VLC_BITS, 4, - vc1_2mv_block_pattern_bits[i], 1, 1, - vc1_2mv_block_pattern_codes[i], 1, 1, INIT_VLC_USE_NEW_STATIC); - } - for (int i = 0; i < 8; i++) { - /* Initialize interlaced CBPCY VLC tables (Table 124 - Table 131) */ - ff_vc1_icbpcy_vlc[i].table = &vlc_table[vlc_offs[i * 3 + 53]]; - ff_vc1_icbpcy_vlc[i].table_allocated = vlc_offs[i * 3 + 54] - vlc_offs[i * 3 + 53]; - init_vlc(&ff_vc1_icbpcy_vlc[i], VC1_ICBPCY_VLC_BITS, 63, - vc1_icbpcy_p_bits[i], 1, 1, - vc1_icbpcy_p_codes[i], 2, 2, INIT_VLC_USE_NEW_STATIC); - /* Initialize interlaced field picture MBMODE VLC tables */ - ff_vc1_if_mmv_mbmode_vlc[i].table = &vlc_table[vlc_offs[i * 3 + 54]]; - ff_vc1_if_mmv_mbmode_vlc[i].table_allocated = vlc_offs[i * 3 + 55] - vlc_offs[i * 3 + 54]; - init_vlc(&ff_vc1_if_mmv_mbmode_vlc[i], VC1_IF_MMV_MBMODE_VLC_BITS, 8, - vc1_if_mmv_mbmode_bits[i], 1, 1, - vc1_if_mmv_mbmode_codes[i], 1, 1, INIT_VLC_USE_NEW_STATIC); - ff_vc1_if_1mv_mbmode_vlc[i].table = &vlc_table[vlc_offs[i * 3 + 55]]; - ff_vc1_if_1mv_mbmode_vlc[i].table_allocated = vlc_offs[i * 3 + 56] - vlc_offs[i * 3 + 55]; - init_vlc(&ff_vc1_if_1mv_mbmode_vlc[i], VC1_IF_1MV_MBMODE_VLC_BITS, 6, - vc1_if_1mv_mbmode_bits[i], 1, 1, - vc1_if_1mv_mbmode_codes[i], 1, 1, INIT_VLC_USE_NEW_STATIC); - } -} - -/** - * Init VC-1 specific tables and VC1Context members - * @param v The VC1Context to initialize - * @return Status - */ -av_cold void ff_vc1_init_common(VC1Context *v) -{ - static AVOnce init_static_once = AV_ONCE_INIT; - - /* defaults */ - v->pq = -1; - v->mvrange = 0; /* 7.1.1.18, p80 */ - - ff_vc1dsp_init(&v->vc1dsp); - - /* VLC tables */ - ff_thread_once(&init_static_once, vc1_init_static); -} diff --git a/libavcodec/vc1_vlc_data.h b/libavcodec/vc1_vlc_data.h index 2063269a24..2cd227b182 100644 --- a/libavcodec/vc1_vlc_data.h +++ b/libavcodec/vc1_vlc_data.h @@ -835,6 +835,227 @@ static const uint8_t vc1_mv_diff_bits[4][73] = { } }; +static const uint32_t vc1_ac_tables[AC_MODES][186][2] = { +{ +{ 0x0001, 2}, { 0x0005, 3}, { 0x000D, 4}, { 0x0012, 5}, { 0x000E, 6}, { 0x0015, 7}, +{ 0x0013, 8}, { 0x003F, 8}, { 0x004B, 9}, { 0x011F, 9}, { 0x00B8, 10}, { 0x03E3, 10}, +{ 0x0172, 11}, { 0x024D, 12}, { 0x03DA, 12}, { 0x02DD, 13}, { 0x1F55, 13}, { 0x05B9, 14}, +{ 0x3EAE, 14}, { 0x0000, 4}, { 0x0010, 5}, { 0x0008, 7}, { 0x0020, 8}, { 0x0029, 9}, +{ 0x01F4, 9}, { 0x0233, 10}, { 0x01E0, 11}, { 0x012A, 12}, { 0x03DD, 12}, { 0x050A, 13}, +{ 0x1F29, 13}, { 0x0A42, 14}, { 0x1272, 15}, { 0x1737, 15}, { 0x0003, 5}, { 0x0011, 7}, +{ 0x00C4, 8}, { 0x004B, 10}, { 0x00B4, 11}, { 0x07D4, 11}, { 0x0345, 12}, { 0x02D7, 13}, +{ 0x07BF, 13}, { 0x0938, 14}, { 0x0BBB, 14}, { 0x095E, 15}, { 0x0013, 5}, { 0x0078, 7}, +{ 0x0069, 9}, { 0x0232, 10}, { 0x0461, 11}, { 0x03EC, 12}, { 0x0520, 13}, { 0x1F2A, 13}, +{ 0x3E50, 14}, { 0x3E51, 14}, { 0x1486, 15}, { 0x000C, 6}, { 0x0024, 9}, { 0x0094, 11}, +{ 0x08C0, 12}, { 0x0F09, 14}, { 0x1EF0, 15}, { 0x003D, 6}, { 0x0053, 9}, { 0x01A0, 11}, +{ 0x02D6, 13}, { 0x0F08, 14}, { 0x0013, 7}, { 0x007C, 9}, { 0x07C1, 11}, { 0x04AC, 14}, +{ 0x001B, 7}, { 0x00A0, 10}, { 0x0344, 12}, { 0x0F79, 14}, { 0x0079, 7}, { 0x03E1, 10}, +{ 0x02D4, 13}, { 0x2306, 14}, { 0x0021, 8}, { 0x023C, 10}, { 0x0FAE, 12}, { 0x23DE, 14}, +{ 0x0035, 8}, { 0x0175, 11}, { 0x07B3, 13}, { 0x00C5, 8}, { 0x0174, 11}, { 0x0785, 13}, +{ 0x0048, 9}, { 0x01A3, 11}, { 0x049E, 13}, { 0x002C, 9}, { 0x00FA, 10}, { 0x07D6, 11}, +{ 0x0092, 10}, { 0x05CC, 13}, { 0x1EF1, 15}, { 0x00A3, 10}, { 0x03ED, 12}, { 0x093E, 14}, +{ 0x01E2, 11}, { 0x1273, 15}, { 0x07C4, 11}, { 0x1487, 15}, { 0x0291, 12}, { 0x0293, 12}, +{ 0x0F8A, 12}, { 0x0509, 13}, { 0x0508, 13}, { 0x078D, 13}, { 0x07BE, 13}, { 0x078C, 13}, +{ 0x04AE, 14}, { 0x0BBA, 14}, { 0x2307, 14}, { 0x0B9A, 14}, { 0x1736, 15}, { 0x000E, 4}, +{ 0x0045, 7}, { 0x01F3, 9}, { 0x047A, 11}, { 0x05DC, 13}, { 0x23DF, 14}, { 0x0019, 5}, +{ 0x0028, 9}, { 0x0176, 11}, { 0x049D, 13}, { 0x23DD, 14}, { 0x0030, 6}, { 0x00A2, 10}, +{ 0x02EF, 12}, { 0x05B8, 14}, { 0x003F, 6}, { 0x00A5, 10}, { 0x03DB, 12}, { 0x093F, 14}, +{ 0x0044, 7}, { 0x07CB, 11}, { 0x095F, 15}, { 0x0063, 7}, { 0x03C3, 12}, { 0x0015, 8}, +{ 0x08F6, 12}, { 0x0017, 8}, { 0x0498, 13}, { 0x002C, 8}, { 0x07B2, 13}, { 0x002F, 8}, +{ 0x1F54, 13}, { 0x008D, 8}, { 0x07BD, 13}, { 0x008E, 8}, { 0x1182, 13}, { 0x00FB, 8}, +{ 0x050B, 13}, { 0x002D, 8}, { 0x07C0, 11}, { 0x0079, 9}, { 0x1F5F, 13}, { 0x007A, 9}, +{ 0x1F56, 13}, { 0x0231, 10}, { 0x03E4, 10}, { 0x01A1, 11}, { 0x0143, 11}, { 0x01F7, 11}, +{ 0x016F, 12}, { 0x0292, 12}, { 0x02E7, 12}, { 0x016C, 12}, { 0x016D, 12}, { 0x03DC, 12}, +{ 0x0F8B, 12}, { 0x0499, 13}, { 0x03D8, 12}, { 0x078E, 13}, { 0x02D5, 13}, { 0x1F5E, 13}, +{ 0x1F2B, 13}, { 0x078F, 13}, { 0x04AD, 14}, { 0x3EAF, 14}, { 0x23DC, 14}, { 0x004A, 9} +}, +{ +{ 0x0000, 3}, { 0x0003, 4}, { 0x000B, 5}, { 0x0014, 6}, { 0x003F, 6}, { 0x005D, 7}, +{ 0x00A2, 8}, { 0x00AC, 9}, { 0x016E, 9}, { 0x020A, 10}, { 0x02E2, 10}, { 0x0432, 11}, +{ 0x05C9, 11}, { 0x0827, 12}, { 0x0B54, 12}, { 0x04E6, 13}, { 0x105F, 13}, { 0x172A, 13}, +{ 0x20B2, 14}, { 0x2D4E, 14}, { 0x39F0, 14}, { 0x4175, 15}, { 0x5A9E, 15}, { 0x0004, 4}, +{ 0x001E, 5}, { 0x0042, 7}, { 0x00B6, 8}, { 0x0173, 9}, { 0x0395, 10}, { 0x072E, 11}, +{ 0x0B94, 12}, { 0x16A4, 13}, { 0x20B3, 14}, { 0x2E45, 14}, { 0x0005, 5}, { 0x0040, 7}, +{ 0x0049, 9}, { 0x028F, 10}, { 0x05CB, 11}, { 0x048A, 13}, { 0x09DD, 14}, { 0x73E2, 15}, +{ 0x0018, 5}, { 0x0025, 8}, { 0x008A, 10}, { 0x051B, 11}, { 0x0E5F, 12}, { 0x09C9, 14}, +{ 0x139C, 15}, { 0x0029, 6}, { 0x004F, 9}, { 0x0412, 11}, { 0x048D, 13}, { 0x2E41, 14}, +{ 0x0038, 6}, { 0x010E, 9}, { 0x05A8, 11}, { 0x105C, 13}, { 0x39F2, 14}, { 0x0058, 7}, +{ 0x021F, 10}, { 0x0E7E, 12}, { 0x39FF, 14}, { 0x0023, 8}, { 0x02E3, 10}, { 0x04E5, 13}, +{ 0x2E40, 14}, { 0x00A1, 8}, { 0x05BE, 11}, { 0x09C8, 14}, { 0x0083, 8}, { 0x013A, 11}, +{ 0x1721, 13}, { 0x0044, 9}, { 0x0276, 12}, { 0x39F6, 14}, { 0x008B, 10}, { 0x04EF, 13}, +{ 0x5A9B, 15}, { 0x0208, 10}, { 0x1CFE, 13}, { 0x0399, 10}, { 0x1CB4, 13}, { 0x039E, 10}, +{ 0x39F3, 14}, { 0x05AB, 11}, { 0x73E3, 15}, { 0x0737, 11}, { 0x5A9F, 15}, { 0x082D, 12}, +{ 0x0E69, 12}, { 0x0E68, 12}, { 0x0433, 11}, { 0x0B7B, 12}, { 0x2DF8, 14}, { 0x2E56, 14}, +{ 0x2E57, 14}, { 0x39F7, 14}, { 0x51A5, 15}, { 0x0003, 3}, { 0x002A, 6}, { 0x00E4, 8}, +{ 0x028E, 10}, { 0x0735, 11}, { 0x1058, 13}, { 0x1CFA, 13}, { 0x2DF9, 14}, { 0x4174, 15}, +{ 0x0009, 4}, { 0x0054, 8}, { 0x0398, 10}, { 0x048B, 13}, { 0x139D, 15}, { 0x000D, 4}, +{ 0x00AD, 9}, { 0x0826, 12}, { 0x2D4C, 14}, { 0x0011, 5}, { 0x016B, 9}, { 0x0B7F, 12}, +{ 0x51A4, 15}, { 0x0019, 5}, { 0x021B, 10}, { 0x16FD, 13}, { 0x001D, 5}, { 0x0394, 10}, +{ 0x28D3, 14}, { 0x002B, 6}, { 0x05BC, 11}, { 0x5A9A, 15}, { 0x002F, 6}, { 0x0247, 12}, +{ 0x0010, 7}, { 0x0A35, 12}, { 0x003E, 6}, { 0x0B7A, 12}, { 0x0059, 7}, { 0x105E, 13}, +{ 0x0026, 8}, { 0x09CF, 14}, { 0x0055, 8}, { 0x1CB5, 13}, { 0x0057, 8}, { 0x0E5B, 12}, +{ 0x00A0, 8}, { 0x1468, 13}, { 0x0170, 9}, { 0x0090, 10}, { 0x01CE, 9}, { 0x021A, 10}, +{ 0x0218, 10}, { 0x0168, 9}, { 0x021E, 10}, { 0x0244, 12}, { 0x0736, 11}, { 0x0138, 11}, +{ 0x0519, 11}, { 0x0E5E, 12}, { 0x072C, 11}, { 0x0B55, 12}, { 0x09DC, 14}, { 0x20BB, 14}, +{ 0x048C, 13}, { 0x1723, 13}, { 0x2E44, 14}, { 0x16A5, 13}, { 0x0518, 11}, { 0x39FE, 14}, +{ 0x0169, 9} +}, +{ +{ 0x0001, 2}, { 0x0006, 3}, { 0x000F, 4}, { 0x0016, 5}, { 0x0020, 6}, { 0x0018, 7}, +{ 0x0008, 8}, { 0x009A, 8}, { 0x0056, 9}, { 0x013E, 9}, { 0x00F0, 10}, { 0x03A5, 10}, +{ 0x0077, 11}, { 0x01EF, 11}, { 0x009A, 12}, { 0x005D, 13}, { 0x0001, 4}, { 0x0011, 5}, +{ 0x0002, 7}, { 0x000B, 8}, { 0x0012, 9}, { 0x01D6, 9}, { 0x027E, 10}, { 0x0191, 11}, +{ 0x00EA, 12}, { 0x03DC, 12}, { 0x013B, 13}, { 0x0004, 5}, { 0x0014, 7}, { 0x009E, 8}, +{ 0x0009, 10}, { 0x01AC, 11}, { 0x01E2, 11}, { 0x03CA, 12}, { 0x005F, 13}, { 0x0017, 5}, +{ 0x004E, 7}, { 0x005E, 9}, { 0x00F3, 10}, { 0x01AD, 11}, { 0x00EC, 12}, { 0x05F0, 13}, +{ 0x000E, 6}, { 0x00E1, 8}, { 0x03A4, 10}, { 0x009C, 12}, { 0x013D, 13}, { 0x003B, 6}, +{ 0x001C, 9}, { 0x0014, 11}, { 0x09BE, 12}, { 0x0006, 7}, { 0x007A, 9}, { 0x0190, 11}, +{ 0x0137, 13}, { 0x001B, 7}, { 0x0008, 10}, { 0x075C, 11}, { 0x0071, 7}, { 0x00D7, 10}, +{ 0x09BF, 12}, { 0x0007, 8}, { 0x00AF, 10}, { 0x04CC, 11}, { 0x0034, 8}, { 0x0265, 10}, +{ 0x009F, 12}, { 0x00E0, 8}, { 0x0016, 11}, { 0x0327, 12}, { 0x0015, 9}, { 0x017D, 11}, +{ 0x0EBB, 12}, { 0x0014, 9}, { 0x00F6, 10}, { 0x01E4, 11}, { 0x00CB, 10}, { 0x099D, 12}, +{ 0x00CA, 10}, { 0x02FC, 12}, { 0x017F, 11}, { 0x04CD, 11}, { 0x02FD, 12}, { 0x04FE, 11}, +{ 0x013A, 13}, { 0x000A, 4}, { 0x0042, 7}, { 0x01D3, 9}, { 0x04DD, 11}, { 0x0012, 5}, +{ 0x00E8, 8}, { 0x004C, 11}, { 0x0136, 13}, { 0x0039, 6}, { 0x0264, 10}, { 0x0EBA, 12}, +{ 0x0000, 7}, { 0x00AE, 10}, { 0x099C, 12}, { 0x001F, 7}, { 0x04DE, 11}, { 0x0043, 7}, +{ 0x04DC, 11}, { 0x0003, 8}, { 0x03CB, 12}, { 0x0006, 8}, { 0x099E, 12}, { 0x002A, 8}, +{ 0x05F1, 13}, { 0x000F, 8}, { 0x09FE, 12}, { 0x0033, 8}, { 0x09FF, 12}, { 0x0098, 8}, +{ 0x099F, 12}, { 0x00EA, 8}, { 0x013C, 13}, { 0x002E, 8}, { 0x0192, 11}, { 0x0136, 9}, +{ 0x006A, 9}, { 0x0015, 11}, { 0x03AF, 10}, { 0x01E3, 11}, { 0x0074, 11}, { 0x00EB, 12}, +{ 0x02F9, 12}, { 0x005C, 13}, { 0x00ED, 12}, { 0x03DD, 12}, { 0x0326, 12}, { 0x005E, 13}, +{ 0x0016, 7} +}, +{ +{ 0x0004, 3}, { 0x0014, 5}, { 0x0017, 7}, { 0x007F, 8}, { 0x0154, 9}, { 0x01F2, 10}, +{ 0x00BF, 11}, { 0x0065, 12}, { 0x0AAA, 12}, { 0x0630, 13}, { 0x1597, 13}, { 0x03B7, 14}, +{ 0x2B22, 14}, { 0x0BE6, 15}, { 0x000B, 4}, { 0x0037, 7}, { 0x0062, 9}, { 0x0007, 11}, +{ 0x0166, 12}, { 0x00CE, 13}, { 0x1590, 13}, { 0x05F6, 14}, { 0x0BE7, 15}, { 0x0007, 5}, +{ 0x006D, 8}, { 0x0003, 11}, { 0x031F, 12}, { 0x05F2, 14}, { 0x0002, 6}, { 0x0061, 9}, +{ 0x0055, 12}, { 0x01DF, 14}, { 0x001A, 6}, { 0x001E, 10}, { 0x0AC9, 12}, { 0x2B23, 14}, +{ 0x001E, 6}, { 0x001F, 10}, { 0x0AC3, 12}, { 0x2B2B, 14}, { 0x0006, 7}, { 0x0004, 11}, +{ 0x02F8, 13}, { 0x0019, 7}, { 0x0006, 11}, { 0x063D, 13}, { 0x0057, 7}, { 0x0182, 11}, +{ 0x2AA2, 14}, { 0x0004, 8}, { 0x0180, 11}, { 0x059C, 14}, { 0x007D, 8}, { 0x0164, 12}, +{ 0x076D, 15}, { 0x0002, 9}, { 0x018D, 11}, { 0x1581, 13}, { 0x00AD, 8}, { 0x0060, 12}, +{ 0x0C67, 14}, { 0x001C, 9}, { 0x00EE, 13}, { 0x0003, 9}, { 0x02CF, 13}, { 0x00D9, 9}, +{ 0x1580, 13}, { 0x0002, 11}, { 0x0183, 11}, { 0x0057, 12}, { 0x0061, 12}, { 0x0031, 11}, +{ 0x0066, 12}, { 0x0631, 13}, { 0x0632, 13}, { 0x00AC, 13}, { 0x031D, 12}, { 0x0076, 12}, +{ 0x003A, 11}, { 0x0165, 12}, { 0x0C66, 14}, { 0x0003, 2}, { 0x0054, 7}, { 0x02AB, 10}, +{ 0x0016, 13}, { 0x05F7, 14}, { 0x0005, 4}, { 0x00F8, 9}, { 0x0AA9, 12}, { 0x005F, 15}, +{ 0x0004, 4}, { 0x001C, 10}, { 0x1550, 13}, { 0x0004, 5}, { 0x0077, 11}, { 0x076C, 15}, +{ 0x000E, 5}, { 0x000A, 12}, { 0x000C, 5}, { 0x0562, 11}, { 0x0004, 6}, { 0x031C, 12}, +{ 0x0006, 6}, { 0x00C8, 13}, { 0x000D, 6}, { 0x01DA, 13}, { 0x0007, 6}, { 0x00C9, 13}, +{ 0x0001, 7}, { 0x002E, 14}, { 0x0014, 7}, { 0x1596, 13}, { 0x000A, 7}, { 0x0AC2, 12}, +{ 0x0016, 7}, { 0x015B, 14}, { 0x0015, 7}, { 0x015A, 14}, { 0x000F, 8}, { 0x005E, 15}, +{ 0x007E, 8}, { 0x00AB, 8}, { 0x002D, 9}, { 0x00D8, 9}, { 0x000B, 9}, { 0x0014, 10}, +{ 0x02B3, 10}, { 0x01F3, 10}, { 0x003A, 10}, { 0x0000, 10}, { 0x0058, 10}, { 0x002E, 9}, +{ 0x005E, 10}, { 0x0563, 11}, { 0x00EC, 12}, { 0x0054, 12}, { 0x0AC1, 12}, { 0x1556, 13}, +{ 0x02FA, 13}, { 0x0181, 11}, { 0x1557, 13}, { 0x059D, 14}, { 0x2AA3, 14}, { 0x2B2A, 14}, +{ 0x01DE, 14}, { 0x063C, 13}, { 0x00CF, 13}, { 0x1594, 13}, { 0x000D, 9} +}, +{ +{ 0x0002, 2}, { 0x0006, 3}, { 0x000F, 4}, { 0x000D, 5}, { 0x000C, 5}, { 0x0015, 6}, +{ 0x0013, 6}, { 0x0012, 6}, { 0x0017, 7}, { 0x001F, 8}, { 0x001E, 8}, { 0x001D, 8}, +{ 0x0025, 9}, { 0x0024, 9}, { 0x0023, 9}, { 0x0021, 9}, { 0x0021, 10}, { 0x0020, 10}, +{ 0x000F, 10}, { 0x000E, 10}, { 0x0007, 11}, { 0x0006, 11}, { 0x0020, 11}, { 0x0021, 11}, +{ 0x0050, 12}, { 0x0051, 12}, { 0x0052, 12}, { 0x000E, 4}, { 0x0014, 6}, { 0x0016, 7}, +{ 0x001C, 8}, { 0x0020, 9}, { 0x001F, 9}, { 0x000D, 10}, { 0x0022, 11}, { 0x0053, 12}, +{ 0x0055, 12}, { 0x000B, 5}, { 0x0015, 7}, { 0x001E, 9}, { 0x000C, 10}, { 0x0056, 12}, +{ 0x0011, 6}, { 0x001B, 8}, { 0x001D, 9}, { 0x000B, 10}, { 0x0010, 6}, { 0x0022, 9}, +{ 0x000A, 10}, { 0x000D, 6}, { 0x001C, 9}, { 0x0008, 10}, { 0x0012, 7}, { 0x001B, 9}, +{ 0x0054, 12}, { 0x0014, 7}, { 0x001A, 9}, { 0x0057, 12}, { 0x0019, 8}, { 0x0009, 10}, +{ 0x0018, 8}, { 0x0023, 11}, { 0x0017, 8}, { 0x0019, 9}, { 0x0018, 9}, { 0x0007, 10}, +{ 0x0058, 12}, { 0x0007, 4}, { 0x000C, 6}, { 0x0016, 8}, { 0x0017, 9}, { 0x0006, 10}, +{ 0x0005, 11}, { 0x0004, 11}, { 0x0059, 12}, { 0x000F, 6}, { 0x0016, 9}, { 0x0005, 10}, +{ 0x000E, 6}, { 0x0004, 10}, { 0x0011, 7}, { 0x0024, 11}, { 0x0010, 7}, { 0x0025, 11}, +{ 0x0013, 7}, { 0x005A, 12}, { 0x0015, 8}, { 0x005B, 12}, { 0x0014, 8}, { 0x0013, 8}, +{ 0x001A, 8}, { 0x0015, 9}, { 0x0014, 9}, { 0x0013, 9}, { 0x0012, 9}, { 0x0011, 9}, +{ 0x0026, 11}, { 0x0027, 11}, { 0x005C, 12}, { 0x005D, 12}, { 0x005E, 12}, { 0x005F, 12}, +{ 0x0003, 7} +}, +{ +{ 0x0002, 2}, { 0x000F, 4}, { 0x0015, 6}, { 0x0017, 7}, { 0x001F, 8}, { 0x0025, 9}, +{ 0x0024, 9}, { 0x0021, 10}, { 0x0020, 10}, { 0x0007, 11}, { 0x0006, 11}, { 0x0020, 11}, +{ 0x0006, 3}, { 0x0014, 6}, { 0x001E, 8}, { 0x000F, 10}, { 0x0021, 11}, { 0x0050, 12}, +{ 0x000E, 4}, { 0x001D, 8}, { 0x000E, 10}, { 0x0051, 12}, { 0x000D, 5}, { 0x0023, 9}, +{ 0x000D, 10}, { 0x000C, 5}, { 0x0022, 9}, { 0x0052, 12}, { 0x000B, 5}, { 0x000C, 10}, +{ 0x0053, 12}, { 0x0013, 6}, { 0x000B, 10}, { 0x0054, 12}, { 0x0012, 6}, { 0x000A, 10}, +{ 0x0011, 6}, { 0x0009, 10}, { 0x0010, 6}, { 0x0008, 10}, { 0x0016, 7}, { 0x0055, 12}, +{ 0x0015, 7}, { 0x0014, 7}, { 0x001C, 8}, { 0x001B, 8}, { 0x0021, 9}, { 0x0020, 9}, +{ 0x001F, 9}, { 0x001E, 9}, { 0x001D, 9}, { 0x001C, 9}, { 0x001B, 9}, { 0x001A, 9}, +{ 0x0022, 11}, { 0x0023, 11}, { 0x0056, 12}, { 0x0057, 12}, { 0x0007, 4}, { 0x0019, 9}, +{ 0x0005, 11}, { 0x000F, 6}, { 0x0004, 11}, { 0x000E, 6}, { 0x000D, 6}, { 0x000C, 6}, +{ 0x0013, 7}, { 0x0012, 7}, { 0x0011, 7}, { 0x0010, 7}, { 0x001A, 8}, { 0x0019, 8}, +{ 0x0018, 8}, { 0x0017, 8}, { 0x0016, 8}, { 0x0015, 8}, { 0x0014, 8}, { 0x0013, 8}, +{ 0x0018, 9}, { 0x0017, 9}, { 0x0016, 9}, { 0x0015, 9}, { 0x0014, 9}, { 0x0013, 9}, +{ 0x0012, 9}, { 0x0011, 9}, { 0x0007, 10}, { 0x0006, 10}, { 0x0005, 10}, { 0x0004, 10}, +{ 0x0024, 11}, { 0x0025, 11}, { 0x0026, 11}, { 0x0027, 11}, { 0x0058, 12}, { 0x0059, 12}, +{ 0x005A, 12}, { 0x005B, 12}, { 0x005C, 12}, { 0x005D, 12}, { 0x005E, 12}, { 0x005F, 12}, +{ 0x0003, 7} +}, +{ +{ 0x0000, 2}, { 0x0003, 3}, { 0x000D, 4}, { 0x0005, 4}, { 0x001C, 5}, { 0x0016, 5}, +{ 0x003F, 6}, { 0x003A, 6}, { 0x002E, 6}, { 0x0022, 6}, { 0x007B, 7}, { 0x0067, 7}, +{ 0x005F, 7}, { 0x0047, 7}, { 0x0026, 7}, { 0x00EF, 8}, { 0x00CD, 8}, { 0x00C1, 8}, +{ 0x00A9, 8}, { 0x004F, 8}, { 0x01F2, 9}, { 0x01DD, 9}, { 0x0199, 9}, { 0x0185, 9}, +{ 0x015D, 9}, { 0x011B, 9}, { 0x03EF, 10}, { 0x03E1, 10}, { 0x03C8, 10}, { 0x0331, 10}, +{ 0x0303, 10}, { 0x02F1, 10}, { 0x02A0, 10}, { 0x0233, 10}, { 0x0126, 10}, { 0x07C0, 11}, +{ 0x076F, 11}, { 0x076C, 11}, { 0x0661, 11}, { 0x0604, 11}, { 0x0572, 11}, { 0x0551, 11}, +{ 0x046A, 11}, { 0x0274, 11}, { 0x0F27, 12}, { 0x0F24, 12}, { 0x0EDB, 12}, { 0x0C8E, 12}, +{ 0x0C0B, 12}, { 0x0C0A, 12}, { 0x0AE3, 12}, { 0x08D6, 12}, { 0x0490, 12}, { 0x0495, 12}, +{ 0x1F19, 13}, { 0x1DB5, 13}, { 0x0009, 4}, { 0x0010, 5}, { 0x0029, 6}, { 0x0062, 7}, +{ 0x00F3, 8}, { 0x00AD, 8}, { 0x01E5, 9}, { 0x0179, 9}, { 0x009C, 9}, { 0x03B1, 10}, +{ 0x02AE, 10}, { 0x0127, 10}, { 0x076E, 11}, { 0x0570, 11}, { 0x0275, 11}, { 0x0F25, 12}, +{ 0x0EC0, 12}, { 0x0AA0, 12}, { 0x08D7, 12}, { 0x1E4C, 13}, { 0x0008, 5}, { 0x0063, 7}, +{ 0x00AF, 8}, { 0x017B, 9}, { 0x03B3, 10}, { 0x07DD, 11}, { 0x0640, 11}, { 0x0F8D, 12}, +{ 0x0BC1, 12}, { 0x0491, 12}, { 0x0028, 6}, { 0x00C3, 8}, { 0x0151, 9}, { 0x02A1, 10}, +{ 0x0573, 11}, { 0x0EC3, 12}, { 0x1F35, 13}, { 0x0065, 7}, { 0x01DA, 9}, { 0x02AF, 10}, +{ 0x0277, 11}, { 0x08C9, 12}, { 0x1781, 13}, { 0x0025, 7}, { 0x0118, 9}, { 0x0646, 11}, +{ 0x0AA6, 12}, { 0x1780, 13}, { 0x00C9, 8}, { 0x0321, 10}, { 0x0F9B, 12}, { 0x191E, 13}, +{ 0x0048, 8}, { 0x07CC, 11}, { 0x0AA1, 12}, { 0x0180, 9}, { 0x0465, 11}, { 0x1905, 13}, +{ 0x03E2, 10}, { 0x0EC1, 12}, { 0x3C9B, 14}, { 0x02F4, 10}, { 0x08C8, 12}, { 0x07C1, 11}, +{ 0x0928, 13}, { 0x05E1, 11}, { 0x320D, 14}, { 0x0EC2, 12}, { 0x6418, 15}, { 0x1F34, 13}, +{ 0x0078, 7}, { 0x0155, 9}, { 0x0552, 11}, { 0x191F, 13}, { 0x00FA, 8}, { 0x07DC, 11}, +{ 0x1907, 13}, { 0x00AC, 8}, { 0x0249, 11}, { 0x13B1, 14}, { 0x01F6, 9}, { 0x0AE2, 12}, +{ 0x01DC, 9}, { 0x04ED, 12}, { 0x0184, 9}, { 0x1904, 13}, { 0x0156, 9}, { 0x09D9, 13}, +{ 0x03E7, 10}, { 0x0929, 13}, { 0x03B2, 10}, { 0x3B68, 14}, { 0x02F5, 10}, { 0x13B0, 14}, +{ 0x0322, 10}, { 0x3B69, 14}, { 0x0234, 10}, { 0x7935, 15}, { 0x07C7, 11}, { 0xC833, 16}, +{ 0x0660, 11}, { 0x7934, 15}, { 0x024B, 11}, { 0xC832, 16}, { 0x0AA7, 12}, { 0x1F18, 13}, +{ 0x007A, 7} +}, +{ +{ 0x0002, 2}, { 0x0000, 3}, { 0x001E, 5}, { 0x0004, 5}, { 0x0012, 6}, { 0x0070, 7}, +{ 0x001A, 7}, { 0x005F, 8}, { 0x0047, 8}, { 0x01D3, 9}, { 0x00B5, 9}, { 0x0057, 9}, +{ 0x03B5, 10}, { 0x016D, 10}, { 0x0162, 10}, { 0x07CE, 11}, { 0x0719, 11}, { 0x0691, 11}, +{ 0x02C6, 11}, { 0x0156, 11}, { 0x0F92, 12}, { 0x0D2E, 12}, { 0x0D20, 12}, { 0x059E, 12}, +{ 0x0468, 12}, { 0x02A6, 12}, { 0x1DA2, 13}, { 0x1C60, 13}, { 0x1A43, 13}, { 0x0B1D, 13}, +{ 0x08C0, 13}, { 0x055D, 13}, { 0x0003, 3}, { 0x000A, 5}, { 0x0077, 7}, { 0x00E5, 8}, +{ 0x01D9, 9}, { 0x03E5, 10}, { 0x0166, 10}, { 0x0694, 11}, { 0x0152, 11}, { 0x059F, 12}, +{ 0x1F3C, 13}, { 0x1A4B, 13}, { 0x055E, 13}, { 0x000C, 4}, { 0x007D, 7}, { 0x0044, 8}, +{ 0x03E0, 10}, { 0x0769, 11}, { 0x0E31, 12}, { 0x1F26, 13}, { 0x055C, 13}, { 0x001B, 5}, +{ 0x00E2, 8}, { 0x03A5, 10}, { 0x02C9, 11}, { 0x1F23, 13}, { 0x3B47, 14}, { 0x0007, 5}, +{ 0x01D8, 9}, { 0x02D8, 11}, { 0x1F27, 13}, { 0x3494, 14}, { 0x0035, 6}, { 0x03E1, 10}, +{ 0x059C, 12}, { 0x38C3, 14}, { 0x000C, 6}, { 0x0165, 10}, { 0x1D23, 13}, { 0x1638, 14}, +{ 0x0068, 7}, { 0x0693, 11}, { 0x3A45, 14}, { 0x0020, 7}, { 0x0F90, 12}, { 0x7CF6, 15}, +{ 0x00E8, 8}, { 0x058F, 12}, { 0x2CEF, 15}, { 0x0045, 8}, { 0x0B3A, 13}, { 0x01F1, 9}, +{ 0x3B46, 14}, { 0x01A7, 9}, { 0x1676, 14}, { 0x0056, 9}, { 0x692A, 15}, { 0x038D, 10}, +{ 0xE309, 16}, { 0x00AA, 10}, { 0x1C611, 17}, { 0x02DF, 11}, { 0xB3B9, 17}, { 0x02C8, 11}, +{ 0x38C20, 18}, { 0x01B0, 11}, { 0x16390, 18}, { 0x0F9F, 12}, { 0x16771, 18}, { 0x0ED0, 12}, +{ 0x71843, 19}, { 0x0D2A, 12}, { 0xF9E8C, 20}, { 0x0461, 12}, { 0xF9E8E, 20}, { 0x0B67, 13}, +{ 0x055F, 13}, { 0x003F, 6}, { 0x006D, 9}, { 0x0E90, 12}, { 0x054E, 13}, { 0x0013, 6}, +{ 0x0119, 10}, { 0x0B66, 13}, { 0x000B, 6}, { 0x0235, 11}, { 0x7CF5, 15}, { 0x0075, 7}, +{ 0x0D24, 12}, { 0xF9E9, 16}, { 0x002E, 7}, { 0x1F22, 13}, { 0x0021, 7}, { 0x054F, 13}, +{ 0x0014, 7}, { 0x3A44, 14}, { 0x00E4, 8}, { 0x7CF7, 15}, { 0x005E, 8}, { 0x7185, 15}, +{ 0x0037, 8}, { 0x2C73, 15}, { 0x01DB, 9}, { 0x59DD, 16}, { 0x01C7, 9}, { 0x692B, 15}, +{ 0x01A6, 9}, { 0x58E5, 16}, { 0x00B4, 9}, { 0x1F3D0, 17}, { 0x00B0, 9}, { 0xB1C9, 17}, +{ 0x03E6, 10}, { 0x16770, 18}, { 0x016E, 10}, { 0x3E7A2, 18}, { 0x011B, 10}, { 0xF9E8D, 20}, +{ 0x00D9, 10}, { 0xF9E8F, 20}, { 0x00A8, 10}, { 0x2C723, 19}, { 0x0749, 11}, { 0xE3084, 20}, +{ 0x0696, 11}, { 0x58E45, 20}, { 0x02DE, 11}, { 0xB1C88, 21}, { 0x0231, 11}, { 0x1C610A, 21}, +{ 0x01B1, 11}, { 0x71842D, 23}, { 0x0D2B, 12}, { 0x38C217, 22}, { 0x0D2F, 12}, { 0x163913, 22}, +{ 0x05B2, 12}, { 0x163912, 22}, { 0x0469, 12}, { 0x71842C, 23}, { 0x1A42, 13}, { 0x08C1, 13}, +{ 0x0073, 7} +} +}; + const int ff_vc1_ac_sizes[AC_MODES] = { 186, 169, 133, 149, 103, 103, 163, 175 }; diff --git a/libavcodec/vc1dec.c b/libavcodec/vc1dec.c index 2cb39430f5..b74956c6a3 100644 --- a/libavcodec/vc1dec.c +++ b/libavcodec/vc1dec.c @@ -43,7 +43,10 @@ #include "simple_idct.h" #include "vc1.h" #include "vc1data.h" +#include "vc1_vlc_data.h" +#include "libavutil/attributes.h" #include "libavutil/avassert.h" +#include "libavutil/thread.h" #if CONFIG_WMV3IMAGE_DECODER || CONFIG_VC1IMAGE_DECODER @@ -420,6 +423,144 @@ av_cold void ff_vc1_init_transposed_scantables(VC1Context *v) v->top_blk_sh = 3; } +static const uint16_t vlc_offs[] = { + 0, 520, 552, 616, 1128, 1160, 1224, 1740, 1772, 1836, 1900, 2436, + 2986, 3050, 3610, 4154, 4218, 4746, 5326, 5390, 5902, 6554, 7658, 8342, + 9304, 9988, 10630, 11234, 12174, 13006, 13560, 14232, 14786, 15432, 16350, 17522, + 20372, 21818, 22330, 22394, 23166, 23678, 23742, 24820, 25332, 25396, 26460, 26980, + 27048, 27592, 27600, 27608, 27616, 27624, 28224, 28258, 28290, 28802, 28834, 28866, + 29378, 29412, 29444, 29960, 29994, 30026, 30538, 30572, 30604, 31120, 31154, 31186, + 31714, 31746, 31778, 32306, 32340, 32372 +}; + +static av_cold void vc1_init_static(void) +{ + static VLCElem vlc_table[32372]; + + INIT_VLC_STATIC(&ff_vc1_norm2_vlc, VC1_NORM2_VLC_BITS, 4, + vc1_norm2_bits, 1, 1, + vc1_norm2_codes, 1, 1, 1 << VC1_NORM2_VLC_BITS); + INIT_VLC_STATIC(&ff_vc1_norm6_vlc, VC1_NORM6_VLC_BITS, 64, + vc1_norm6_bits, 1, 1, + vc1_norm6_codes, 2, 2, 556); + INIT_VLC_STATIC(&ff_vc1_imode_vlc, VC1_IMODE_VLC_BITS, 7, + vc1_imode_bits, 1, 1, + vc1_imode_codes, 1, 1, 1 << VC1_IMODE_VLC_BITS); + for (int i = 0; i < 3; i++) { + ff_vc1_ttmb_vlc[i].table = &vlc_table[vlc_offs[i * 3 + 0]]; + ff_vc1_ttmb_vlc[i].table_allocated = vlc_offs[i * 3 + 1] - vlc_offs[i * 3 + 0]; + init_vlc(&ff_vc1_ttmb_vlc[i], VC1_TTMB_VLC_BITS, 16, + vc1_ttmb_bits[i], 1, 1, + vc1_ttmb_codes[i], 2, 2, INIT_VLC_USE_NEW_STATIC); + ff_vc1_ttblk_vlc[i].table = &vlc_table[vlc_offs[i * 3 + 1]]; + ff_vc1_ttblk_vlc[i].table_allocated = vlc_offs[i * 3 + 2] - vlc_offs[i * 3 + 1]; + init_vlc(&ff_vc1_ttblk_vlc[i], VC1_TTBLK_VLC_BITS, 8, + vc1_ttblk_bits[i], 1, 1, + vc1_ttblk_codes[i], 1, 1, INIT_VLC_USE_NEW_STATIC); + ff_vc1_subblkpat_vlc[i].table = &vlc_table[vlc_offs[i * 3 + 2]]; + ff_vc1_subblkpat_vlc[i].table_allocated = vlc_offs[i * 3 + 3] - vlc_offs[i * 3 + 2]; + init_vlc(&ff_vc1_subblkpat_vlc[i], VC1_SUBBLKPAT_VLC_BITS, 15, + vc1_subblkpat_bits[i], 1, 1, + vc1_subblkpat_codes[i], 1, 1, INIT_VLC_USE_NEW_STATIC); + } + for (int i = 0; i < 4; i++) { + ff_vc1_4mv_block_pattern_vlc[i].table = &vlc_table[vlc_offs[i * 3 + 9]]; + ff_vc1_4mv_block_pattern_vlc[i].table_allocated = vlc_offs[i * 3 + 10] - vlc_offs[i * 3 + 9]; + init_vlc(&ff_vc1_4mv_block_pattern_vlc[i], VC1_4MV_BLOCK_PATTERN_VLC_BITS, 16, + vc1_4mv_block_pattern_bits[i], 1, 1, + vc1_4mv_block_pattern_codes[i], 1, 1, INIT_VLC_USE_NEW_STATIC); + ff_vc1_cbpcy_p_vlc[i].table = &vlc_table[vlc_offs[i * 3 + 10]]; + ff_vc1_cbpcy_p_vlc[i].table_allocated = vlc_offs[i * 3 + 11] - vlc_offs[i * 3 + 10]; + init_vlc(&ff_vc1_cbpcy_p_vlc[i], VC1_CBPCY_P_VLC_BITS, 64, + vc1_cbpcy_p_bits[i], 1, 1, + vc1_cbpcy_p_codes[i], 2, 2, INIT_VLC_USE_NEW_STATIC); + ff_vc1_mv_diff_vlc[i].table = &vlc_table[vlc_offs[i * 3 + 11]]; + ff_vc1_mv_diff_vlc[i].table_allocated = vlc_offs[i * 3 + 12] - vlc_offs[i * 3 + 11]; + init_vlc(&ff_vc1_mv_diff_vlc[i], VC1_MV_DIFF_VLC_BITS, 73, + vc1_mv_diff_bits[i], 1, 1, + vc1_mv_diff_codes[i], 2, 2, INIT_VLC_USE_NEW_STATIC); + } + for (int i = 0; i < 8; i++) { + ff_vc1_ac_coeff_table[i].table = &vlc_table[vlc_offs[i * 2 + 21]]; + ff_vc1_ac_coeff_table[i].table_allocated = vlc_offs[i * 2 + 22] - vlc_offs[i * 2 + 21]; + init_vlc(&ff_vc1_ac_coeff_table[i], AC_VLC_BITS, ff_vc1_ac_sizes[i], + &vc1_ac_tables[i][0][1], 8, 4, + &vc1_ac_tables[i][0][0], 8, 4, INIT_VLC_USE_NEW_STATIC); + /* initialize interlaced MVDATA tables (2-Ref) */ + ff_vc1_2ref_mvdata_vlc[i].table = &vlc_table[vlc_offs[i * 2 + 22]]; + ff_vc1_2ref_mvdata_vlc[i].table_allocated = vlc_offs[i * 2 + 23] - vlc_offs[i * 2 + 22]; + init_vlc(&ff_vc1_2ref_mvdata_vlc[i], VC1_2REF_MVDATA_VLC_BITS, 126, + vc1_2ref_mvdata_bits[i], 1, 1, + vc1_2ref_mvdata_codes[i], 4, 4, INIT_VLC_USE_NEW_STATIC); + } + for (int i = 0; i < 4; i++) { + /* initialize 4MV MBMODE VLC tables for interlaced frame P picture */ + ff_vc1_intfr_4mv_mbmode_vlc[i].table = &vlc_table[vlc_offs[i * 3 + 37]]; + ff_vc1_intfr_4mv_mbmode_vlc[i].table_allocated = vlc_offs[i * 3 + 38] - vlc_offs[i * 3 + 37]; + init_vlc(&ff_vc1_intfr_4mv_mbmode_vlc[i], VC1_INTFR_4MV_MBMODE_VLC_BITS, 15, + vc1_intfr_4mv_mbmode_bits[i], 1, 1, + vc1_intfr_4mv_mbmode_codes[i], 2, 2, INIT_VLC_USE_NEW_STATIC); + /* initialize NON-4MV MBMODE VLC tables for the same */ + ff_vc1_intfr_non4mv_mbmode_vlc[i].table = &vlc_table[vlc_offs[i * 3 + 38]]; + ff_vc1_intfr_non4mv_mbmode_vlc[i].table_allocated = vlc_offs[i * 3 + 39] - vlc_offs[i * 3 + 38]; + init_vlc(&ff_vc1_intfr_non4mv_mbmode_vlc[i], VC1_INTFR_NON4MV_MBMODE_VLC_BITS, 9, + vc1_intfr_non4mv_mbmode_bits[i], 1, 1, + vc1_intfr_non4mv_mbmode_codes[i], 1, 1, INIT_VLC_USE_NEW_STATIC); + /* initialize interlaced MVDATA tables (1-Ref) */ + ff_vc1_1ref_mvdata_vlc[i].table = &vlc_table[vlc_offs[i * 3 + 39]]; + ff_vc1_1ref_mvdata_vlc[i].table_allocated = vlc_offs[i * 3 + 40] - vlc_offs[i * 3 + 39]; + init_vlc(&ff_vc1_1ref_mvdata_vlc[i], VC1_1REF_MVDATA_VLC_BITS, 72, + vc1_1ref_mvdata_bits[i], 1, 1, + vc1_1ref_mvdata_codes[i], 4, 4, INIT_VLC_USE_NEW_STATIC); + } + for (int i = 0; i < 4; i++) { + /* Initialize 2MV Block pattern VLC tables */ + ff_vc1_2mv_block_pattern_vlc[i].table = &vlc_table[vlc_offs[i + 49]]; + ff_vc1_2mv_block_pattern_vlc[i].table_allocated = vlc_offs[i + 50] - vlc_offs[i + 49]; + init_vlc(&ff_vc1_2mv_block_pattern_vlc[i], VC1_2MV_BLOCK_PATTERN_VLC_BITS, 4, + vc1_2mv_block_pattern_bits[i], 1, 1, + vc1_2mv_block_pattern_codes[i], 1, 1, INIT_VLC_USE_NEW_STATIC); + } + for (int i = 0; i < 8; i++) { + /* Initialize interlaced CBPCY VLC tables (Table 124 - Table 131) */ + ff_vc1_icbpcy_vlc[i].table = &vlc_table[vlc_offs[i * 3 + 53]]; + ff_vc1_icbpcy_vlc[i].table_allocated = vlc_offs[i * 3 + 54] - vlc_offs[i * 3 + 53]; + init_vlc(&ff_vc1_icbpcy_vlc[i], VC1_ICBPCY_VLC_BITS, 63, + vc1_icbpcy_p_bits[i], 1, 1, + vc1_icbpcy_p_codes[i], 2, 2, INIT_VLC_USE_NEW_STATIC); + /* Initialize interlaced field picture MBMODE VLC tables */ + ff_vc1_if_mmv_mbmode_vlc[i].table = &vlc_table[vlc_offs[i * 3 + 54]]; + ff_vc1_if_mmv_mbmode_vlc[i].table_allocated = vlc_offs[i * 3 + 55] - vlc_offs[i * 3 + 54]; + init_vlc(&ff_vc1_if_mmv_mbmode_vlc[i], VC1_IF_MMV_MBMODE_VLC_BITS, 8, + vc1_if_mmv_mbmode_bits[i], 1, 1, + vc1_if_mmv_mbmode_codes[i], 1, 1, INIT_VLC_USE_NEW_STATIC); + ff_vc1_if_1mv_mbmode_vlc[i].table = &vlc_table[vlc_offs[i * 3 + 55]]; + ff_vc1_if_1mv_mbmode_vlc[i].table_allocated = vlc_offs[i * 3 + 56] - vlc_offs[i * 3 + 55]; + init_vlc(&ff_vc1_if_1mv_mbmode_vlc[i], VC1_IF_1MV_MBMODE_VLC_BITS, 6, + vc1_if_1mv_mbmode_bits[i], 1, 1, + vc1_if_1mv_mbmode_codes[i], 1, 1, INIT_VLC_USE_NEW_STATIC); + } +} + +/** + * Init VC-1 specific tables and VC1Context members + * @param v The VC1Context to initialize + * @return Status + */ +av_cold void ff_vc1_init_common(VC1Context *v) +{ + static AVOnce init_static_once = AV_ONCE_INIT; + + /* defaults */ + v->pq = -1; + v->mvrange = 0; /* 7.1.1.18, p80 */ + + ff_vc1dsp_init(&v->vc1dsp); + + /* VLC tables */ + ff_thread_once(&init_static_once, vc1_init_static); +} + /** Initialize a VC1/WMV3 decoder * @todo TODO: Handle VC-1 IDUs (Transport level?) * @todo TODO: Decipher remaining bits in extra_data From patchwork Sun Oct 30 23:56: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: 39064 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:8e01:b0:a3:a294:714c with SMTP id y1csp607566pzj; Sun, 30 Oct 2022 16:58:04 -0700 (PDT) X-Google-Smtp-Source: AMsMyM6WjBbbH5kNrKt8eHr+P/gaBBr5txTDhfM+Xt/TqYwsGmKPsPFJladvh1ERjllUTOjhEXfO X-Received: by 2002:a17:906:478d:b0:7a3:cf5e:9027 with SMTP id cw13-20020a170906478d00b007a3cf5e9027mr10573226ejc.718.1667174284171; Sun, 30 Oct 2022 16:58:04 -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 qf21-20020a1709077f1500b00732fa13e848si6999805ejc.597.2022.10.30.16.58.03; Sun, 30 Oct 2022 16:58:04 -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=SITKkpUt; 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 3EE5868BDCC; Mon, 31 Oct 2022 01:57:10 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-oln040092074015.outbound.protection.outlook.com [40.92.74.15]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 106EC68BD8D for ; Mon, 31 Oct 2022 01:57:07 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PwAIlJTXiSy68dpoWrHH8XFd2z4Tn1MB/3sWlI+ufFjOwZlrqCwkZlTi2VOPE6olMNJdYneiufXw9vuBtQJy+7Wu2VMe4cchevyEPGUipPfFGuuZvRYYhc7Apg7bcMi8vSYmpMYy/0tcPdFGldiod5YipokpjkdlkYWa15Uo//3BikeGDm6wNgYNmB1s6MTb1h6VcZrtnOH+wHid1GXkhzPkKHprSt54UemfkHPJH0mywPvfCeEE5ozcwA9NM+RBuIRsea4zQVvI6bsBy/+l8ICHDmag16wN9xrUYDzKD7fv7/yRrFeiwPqz0+SM27zcQTo+jNSBMP68P5xF9hMQXA== 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=PeOeqauOJeGtwzJy1N+6Ch59Dq7wF2DCRAH0+bibVHg=; b=BdsTqd1wfZ1reOrhV22degrQjdD5tisAINorDajixPwsZeJpECz1brelVyjqwvoC0xhM82ksljHDyHeVxgI4V177Xp8rWsP0tvmeTA885Kvj6C7drwLecV+EUAXlg6xnnBiGZaVjLMzgu7l/osEYT8IF+30lIuo8q4gg15AWxvOAwLIDJB9ohysi7Ll1apZCeS+twRUwzCkedqiRnKNSjMeMxi8nCyO+Dhokbgmnsw+wO+N55UTak+S7VRTZfv4FYTxXyThCS46HoAxU5WewD6Sw8s3U+tGir68eHE0bavPCjkobIphuiJ8FSHD//xJKTA1+gOhOfSfp3NkShHz66g== 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=PeOeqauOJeGtwzJy1N+6Ch59Dq7wF2DCRAH0+bibVHg=; b=SITKkpUtZS8aBdbCCqde0/yO0TF74+32am087m5CD99LD8gHUTqtGjDF0D8U5rvdGGL/q0E2SgXUV7/qtiRAcHxAxj3eE534f46LU8vlTaKWNKAm/WoH7cetyBasyofnuPyJFJSdXpo+ssg9Yh6MOIcBHqj1/8xoqTPx7D4r8IwU02coSuCD9XaCxMSbUL1RvSChMiOrbLN31o41jzFw9XvrKiZH87cVDys58y4jJOhcuRPJEW6ojpx9jzfv8kOyA0qo0LKZzGrWx3wQ8DscVnDiRKgheYKLKDKujSwXY7GA9gZ7Wo6seWzjKdHWvGpM3ggBjD+jeHMW9bqWfuhjsw== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by GV1P250MB0857.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:97::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.19; Sun, 30 Oct 2022 23:57:00 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::739a:8740:19c5:925c]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::739a:8740:19c5:925c%5]) with mapi id 15.20.5769.019; Sun, 30 Oct 2022 23:57:00 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 31 Oct 2022 00:56:24 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [Gha182BPiZRjA4dltC/9AKPSTL//XYkE8RLBwnfS/d8=] X-ClientProxiedBy: FR0P281CA0146.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:96::20) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20221030235631.11750-11-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|GV1P250MB0857:EE_ X-MS-Office365-Filtering-Correlation-Id: e6a48d13-4c51-447b-a717-08dabad26f50 X-MS-Exchange-SLBlob-MailProps: AZnQBsB9XmqZLd1X3toBDX9YZ7dpDxvLn/mJCoMcot/+onqDE8JgHA0buXBpFQwXUC4P4MDf7nOxI9QO7aok3qvO7FhimrMWhQOTFAOfYmnmyZuZyAquiwO+tJyGD7wMIY5laG4w8gtvrAfFMRzUCEYxSD+GrkCxEMYAywQaBw2oEnpfK+iDoFsAGdwrxPu4lc/07nQv8pmR1MvVjy0awDuJUXPmHeA6v1/hQYM71DaJiy1Stp3JVoU5iBOMS/COSX6pJ1R9u1JNXkT7CxSU+G86CrHY3tbyubEWmYhDqXDGTt20BhFfRJWEskKPx1cIi6BXi6RQoVsYwKUeMePjzqtRTlzUXTd3coi92/669kBd1/Er20XBM9H0eIIp6LPqarYN6JM4gnTwJ0ZoT5eYbnPCmVCohuhUsxgtqDN29dhweNpE/IVog1qTOOJJi0cfFX8MxxqnK+ybzQfT58KKpjkv/8CQbTEgxjd/+Mq5uZ2zKKCCNIVIXv5Lx5gTHLbHVZVHaJNSdqFawYFFc/wEn0PXABZZF77QbhLehdq5hI8lobElamRIC4WTf4JBVPdzRz6rWgRUiZ80TwLCIJnZynmESrqz7tQvs9q9/+UC0lch0IxhamoR2pnoSU+P4Nlww96QML6xqOrxpcVI92d2Dhuz6QcmMJaArhS90V3ArzxJ2xJJu0bLpw9+ic+yrMTXFhevwHvabGFWu++PQIk7J5A7ZbEKzrSnw8BaWO3c/h1cjLMPg3riScBXWZlbRTvr+8LZGCqxW1E= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: f5xK4TPhwstKLqba9mkXnt0GvGcMDmuwqK4peoE112qFCu0cQAfcWgXqswllg4vSrgeiLpL7o+KAK3WvaAfnBs7x/ESMG3rViKhDFqTrWZbMqkJwjSUF/mYIIlgAnVb5nNLyogwPAWrrjeL0GP5r0OJq6yVvkeQLUNIE9sdv2IFm7tXRc9YWa8kPfo6+iNGX6vhK/oN8nrLJry8Q7YGVPOxDXbZrCWrvgE5z3BYIW3ofPyGHg0eiYBzT536uLKY/6ZNRBtXENH9JPQWSLge+F0LSzPAv4fmofL4pLkD1TuoKaCrUQWr1accCq8bDwrmVMcyCiHiwzBSZ5NrjrUCkysinZ1GD7eiYIR79UY1rQXGUMhZtvC7sW3lqdB+ul7dFJoyx2HyBdRy8ioMFue0j4Qol721I0cIyTzCfx+LgwHXjfVN2Hth0i5I8grpEuyYxB95HhgxcYNs5OYkMCBMCcMBEwm0L7906NiM4KsaMai6LhthZBqmrTndUipFJKjtz4AXa7nFviiaJjNJy2fjBdN5gKC67+ha0110XF2we3t9NoSyNAK17kzFxV8IszkBDMnCEIR4bAxMU5/GULNmJDo1EoFRTuZdgkkHkonXWdI+jXEfKwvRnW7uhFu40PNJf/nwvaLdVEcfBiud1ZTIFWCAy98zTbA5U9/5Yr4A8urQlGrM44FrSd4XFzweVvS8d X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: QPELZ7Yjr//ziCIJ1JLcKdTwIWPQHXh72iX4C5ggZKigmmhq+HnDrpOyZZslbwHfjrcWbfEE4lKc5rXsEh2IQWscExIysnrhOJy8uW0gC0bKT9TkeOtWgZopJjcJYfxtWlgRXJ/sO+Ad4Jr3pFlfXFw4cYafg/wGpAGk8IaMliyE3MlcF2KFm5C+OanErDYHf50MN3jjxRrx4YzgQCjd/kztVjN8U4hwuRuOXT2tvFM46oTXfTpLORu8SId1AbIwYDK77zfUgC1Rx6hNgulX8cAf5XJD10uDe2muc1yzzTZbvmXHvjNQgOGqTNlLPdMhqxJbxli2oK6Lrr3H0JNrmaQavXa6YczDm/uuLTpOagmyzc5NYlBCqAoXzlwRm6yS70ET9GeupCcSz73GhxY5xkM629kGsOLKrt1poK5vI3LNtjvb+lI5yKiGFmVzUf3FY+VUvVL45fACkAmugmDrY8drX+5ityMDSF0awpJHCFNLMRzdAPlERlp4i92gSz1SB4jZjKW6bGu6/fjGQ/bkY/JCY4byIOhYh4TorilQv+ElUxGTSW2q0E+rL6Os+dmrIw/t/xxDWG1yVlubgjMTg1fkQNBG4u68zowj98Zy1oRdToLIdacjevYr8VgYBc3a2lpitx3DTz4c8t0lL0sfM5hlfnOxXYNrbkKh7cU9nwGy7p8w1PRtl1TAZp+Rt6GN5CdjIpScRwsvE/X9JFdI22YEwEV7MRGqEKwnCaA522XKT7Hk1Zprih6nDppPbjEXRwZKUYR3MoCncPRdUBYrtk1OXD/Pm0CrL+5yMwr19UHgEesENSDdo9kDFQnBrrbKKOgdKNKLcLvYJnxDz1NjqMTUgYp0/+HV/aJg0FZHWBEc6PkZjW1bz3tqWP5+AK/L1bdO7ovB02pNVN0fYg0WgEYAdXGTq/HPBizyoXFuyreExWThSHUA5NnxTwlQVzBea2Tuwj1h0WKdL3HW7CXEbApc9Z2kv17+S4caUwpkVq5ZWHqAa02D0zT5e+5pyX5Q+hax+10mZkktJpUkZXk55tfr0kkW8L03ifO20s6SYCtr5ReRYNoJVhw7M3PQp+J6qgnTO+yxq7JxbLozdgErhj2Qlg4CHi5gmyKquiiXsIi5YpiCFIx67fYG3IquHMxKxdUoRWLSyAvDOnaFbuXNp67qyYxGmEi7UBdAlr7d+pTN5qW6BaXnQolkbGsGpPWufG8tnZljQDJIcpmBRbCd89O+M4kqGGeLnHBILCbqiqElf7P4BzM6aHiVFmYAjzSzriKILmeHgGfRYe6j0uGOP7yU53UKTbmXC86UoZXP4dh8Uigj5s7Zx/Nt3FB9zeyC X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e6a48d13-4c51-447b-a717-08dabad26f50 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Oct 2022 23:57:00.1676 (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: GV1P250MB0857 Subject: [FFmpeg-devel] [PATCH 12/19] avcodec/vc1_block: Don't duplicate #defines 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: ouEasS3GMR5F VC1 shares some VLCs with MSMPEG-4, but vc1_block.c simply duplicates the defines instead of including the appropriate headers; furthermore, use a proper prefix for these defines: DC_VLC_BITS is also used by other codecs. Signed-off-by: Andreas Rheinhardt --- libavcodec/msmpeg4data.h | 2 ++ libavcodec/msmpeg4dec.c | 27 ++++++++++++++------------- libavcodec/msmpeg4dec.h | 1 - libavcodec/vc1_block.c | 27 ++++++++++++++++----------- libavcodec/wmv2dec.c | 3 ++- 5 files changed, 34 insertions(+), 26 deletions(-) diff --git a/libavcodec/msmpeg4data.h b/libavcodec/msmpeg4data.h index b2b5bade4d..4f904d7610 100644 --- a/libavcodec/msmpeg4data.h +++ b/libavcodec/msmpeg4data.h @@ -48,7 +48,9 @@ typedef struct MVTable { } MVTable; FF_VISIBILITY_PUSH_HIDDEN +#define MSMP4_MB_INTRA_VLC_BITS 9 extern VLC ff_msmp4_mb_i_vlc; +#define MSMP4_DC_VLC_BITS 9 extern VLC ff_msmp4_dc_luma_vlc[2]; extern VLC ff_msmp4_dc_chroma_vlc[2]; diff --git a/libavcodec/msmpeg4dec.c b/libavcodec/msmpeg4dec.c index bc554ed2eb..a7ba53f68e 100644 --- a/libavcodec/msmpeg4dec.c +++ b/libavcodec/msmpeg4dec.c @@ -37,7 +37,6 @@ #include "mpeg4videodec.h" #include "msmpeg4data.h" -#define DC_VLC_BITS 9 #define V2_INTRA_CBPC_VLC_BITS 3 #define V2_MB_TYPE_VLC_BITS 7 #define MV_VLC_BITS 9 @@ -237,7 +236,7 @@ static int msmpeg4v34_decode_mb(MpegEncContext *s, int16_t block[6][64]) cbp = code & 0x3f; } else { s->mb_intra = 1; - code = get_vlc2(&s->gb, ff_msmp4_mb_i_vlc.table, MB_INTRA_VLC_BITS, 2); + code = get_vlc2(&s->gb, ff_msmp4_mb_i_vlc.table, MSMP4_MB_INTRA_VLC_BITS, 2); /* predict coded block pattern */ cbp = 0; for(i=0;i<6;i++) { @@ -317,23 +316,23 @@ static av_cold void msmpeg4_decode_init_static(void) mv->table_mv_bits, 1, 1, mv->table_mv_code, 2, 2, 2694); - INIT_VLC_STATIC(&ff_msmp4_dc_luma_vlc[0], DC_VLC_BITS, 120, + INIT_VLC_STATIC(&ff_msmp4_dc_luma_vlc[0], MSMP4_DC_VLC_BITS, 120, &ff_table0_dc_lum[0][1], 8, 4, &ff_table0_dc_lum[0][0], 8, 4, 1158); - INIT_VLC_STATIC(&ff_msmp4_dc_chroma_vlc[0], DC_VLC_BITS, 120, + INIT_VLC_STATIC(&ff_msmp4_dc_chroma_vlc[0], MSMP4_DC_VLC_BITS, 120, &ff_table0_dc_chroma[0][1], 8, 4, &ff_table0_dc_chroma[0][0], 8, 4, 1118); - INIT_VLC_STATIC(&ff_msmp4_dc_luma_vlc[1], DC_VLC_BITS, 120, + INIT_VLC_STATIC(&ff_msmp4_dc_luma_vlc[1], MSMP4_DC_VLC_BITS, 120, &ff_table1_dc_lum[0][1], 8, 4, &ff_table1_dc_lum[0][0], 8, 4, 1476); - INIT_VLC_STATIC(&ff_msmp4_dc_chroma_vlc[1], DC_VLC_BITS, 120, + INIT_VLC_STATIC(&ff_msmp4_dc_chroma_vlc[1], MSMP4_DC_VLC_BITS, 120, &ff_table1_dc_chroma[0][1], 8, 4, &ff_table1_dc_chroma[0][0], 8, 4, 1216); - INIT_VLC_STATIC(&v2_dc_lum_vlc, DC_VLC_BITS, 512, + INIT_VLC_STATIC(&v2_dc_lum_vlc, MSMP4_DC_VLC_BITS, 512, &ff_v2_dc_lum_table[0][1], 8, 4, &ff_v2_dc_lum_table[0][0], 8, 4, 1472); - INIT_VLC_STATIC(&v2_dc_chroma_vlc, DC_VLC_BITS, 512, + INIT_VLC_STATIC(&v2_dc_chroma_vlc, MSMP4_DC_VLC_BITS, 512, &ff_v2_dc_chroma_table[0][1], 8, 4, &ff_v2_dc_chroma_table[0][0], 8, 4, 1506); @@ -355,7 +354,7 @@ static av_cold void msmpeg4_decode_init_static(void) offset += ff_mb_non_intra_vlc[i].table_size; } - INIT_VLC_STATIC(&ff_msmp4_mb_i_vlc, MB_INTRA_VLC_BITS, 64, + INIT_VLC_STATIC(&ff_msmp4_mb_i_vlc, MSMP4_MB_INTRA_VLC_BITS, 64, &ff_msmp4_mb_i_table[0][1], 4, 2, &ff_msmp4_mb_i_table[0][0], 4, 2, 536); @@ -591,9 +590,9 @@ static int msmpeg4_decode_dc(MpegEncContext * s, int n, int *dir_ptr) if(s->msmpeg4_version<=2){ if (n < 4) { - level = get_vlc2(&s->gb, v2_dc_lum_vlc.table, DC_VLC_BITS, 3); + level = get_vlc2(&s->gb, v2_dc_lum_vlc.table, MSMP4_DC_VLC_BITS, 3); } else { - level = get_vlc2(&s->gb, v2_dc_chroma_vlc.table, DC_VLC_BITS, 3); + level = get_vlc2(&s->gb, v2_dc_chroma_vlc.table, MSMP4_DC_VLC_BITS, 3); } if (level < 0) { av_log(s->avctx, AV_LOG_ERROR, "illegal dc vlc\n"); @@ -603,9 +602,11 @@ static int msmpeg4_decode_dc(MpegEncContext * s, int n, int *dir_ptr) level-=256; }else{ //FIXME optimize use unified tables & index if (n < 4) { - level = get_vlc2(&s->gb, ff_msmp4_dc_luma_vlc[s->dc_table_index].table, DC_VLC_BITS, 3); + level = get_vlc2(&s->gb, ff_msmp4_dc_luma_vlc[s->dc_table_index].table, + MSMP4_DC_VLC_BITS, 3); } else { - level = get_vlc2(&s->gb, ff_msmp4_dc_chroma_vlc[s->dc_table_index].table, DC_VLC_BITS, 3); + level = get_vlc2(&s->gb, ff_msmp4_dc_chroma_vlc[s->dc_table_index].table, + MSMP4_DC_VLC_BITS, 3); } if (level == DC_MAX) { diff --git a/libavcodec/msmpeg4dec.h b/libavcodec/msmpeg4dec.h index 19b5c12c6c..ad41eea9d4 100644 --- a/libavcodec/msmpeg4dec.h +++ b/libavcodec/msmpeg4dec.h @@ -27,7 +27,6 @@ #define INTER_INTRA_VLC_BITS 3 #define MB_NON_INTRA_VLC_BITS 9 -#define MB_INTRA_VLC_BITS 9 extern VLC ff_mb_non_intra_vlc[4]; extern VLC ff_inter_intra_vlc; diff --git a/libavcodec/vc1_block.c b/libavcodec/vc1_block.c index ef8ce40e68..9293c509cb 100644 --- a/libavcodec/vc1_block.c +++ b/libavcodec/vc1_block.c @@ -37,9 +37,6 @@ #include "vc1acdata.h" #include "vc1data.h" -#define MB_INTRA_VLC_BITS 9 -#define DC_VLC_BITS 9 - // offset tables for interlaced picture MVDATA decoding static const uint8_t offset_table[2][9] = { { 0, 1, 2, 4, 8, 16, 32, 64, 128 }, @@ -596,9 +593,11 @@ static int vc1_decode_i_block(VC1Context *v, int16_t block[64], int n, /* Get DC differential */ if (n < 4) { - dcdiff = get_vlc2(&s->gb, ff_msmp4_dc_luma_vlc[s->dc_table_index].table, DC_VLC_BITS, 3); + dcdiff = get_vlc2(&s->gb, ff_msmp4_dc_luma_vlc[s->dc_table_index].table, + MSMP4_DC_VLC_BITS, 3); } else { - dcdiff = get_vlc2(&s->gb, ff_msmp4_dc_chroma_vlc[s->dc_table_index].table, DC_VLC_BITS, 3); + dcdiff = get_vlc2(&s->gb, ff_msmp4_dc_chroma_vlc[s->dc_table_index].table, + MSMP4_DC_VLC_BITS, 3); } if (dcdiff) { const int m = (v->pq == 1 || v->pq == 2) ? 3 - v->pq : 0; @@ -740,9 +739,11 @@ static int vc1_decode_i_block_adv(VC1Context *v, int16_t block[64], int n, /* Get DC differential */ if (n < 4) { - dcdiff = get_vlc2(&s->gb, ff_msmp4_dc_luma_vlc[s->dc_table_index].table, DC_VLC_BITS, 3); + dcdiff = get_vlc2(&s->gb, ff_msmp4_dc_luma_vlc[s->dc_table_index].table, + MSMP4_DC_VLC_BITS, 3); } else { - dcdiff = get_vlc2(&s->gb, ff_msmp4_dc_chroma_vlc[s->dc_table_index].table, DC_VLC_BITS, 3); + dcdiff = get_vlc2(&s->gb, ff_msmp4_dc_chroma_vlc[s->dc_table_index].table, + MSMP4_DC_VLC_BITS, 3); } if (dcdiff) { const int m = (quant == 1 || quant == 2) ? 3 - quant : 0; @@ -940,9 +941,11 @@ static int vc1_decode_intra_block(VC1Context *v, int16_t block[64], int n, /* Get DC differential */ if (n < 4) { - dcdiff = get_vlc2(&s->gb, ff_msmp4_dc_luma_vlc[s->dc_table_index].table, DC_VLC_BITS, 3); + dcdiff = get_vlc2(&s->gb, ff_msmp4_dc_luma_vlc[s->dc_table_index].table, + MSMP4_DC_VLC_BITS, 3); } else { - dcdiff = get_vlc2(&s->gb, ff_msmp4_dc_chroma_vlc[s->dc_table_index].table, DC_VLC_BITS, 3); + dcdiff = get_vlc2(&s->gb, ff_msmp4_dc_chroma_vlc[s->dc_table_index].table, + MSMP4_DC_VLC_BITS, 3); } if (dcdiff) { const int m = (quant == 1 || quant == 2) ? 3 - quant : 0; @@ -2588,7 +2591,8 @@ static void vc1_decode_i_blocks(VC1Context *v) } // do actual MB decoding and displaying - cbp = get_vlc2(&v->s.gb, ff_msmp4_mb_i_vlc.table, MB_INTRA_VLC_BITS, 2); + cbp = get_vlc2(&v->s.gb, ff_msmp4_mb_i_vlc.table, + MSMP4_MB_INTRA_VLC_BITS, 2); v->s.ac_pred = get_bits1(&v->s.gb); for (k = 0; k < 6; k++) { @@ -2723,7 +2727,8 @@ static int vc1_decode_i_blocks_adv(VC1Context *v) return 0; } - cbp = get_vlc2(&v->s.gb, ff_msmp4_mb_i_vlc.table, MB_INTRA_VLC_BITS, 2); + cbp = get_vlc2(&v->s.gb, ff_msmp4_mb_i_vlc.table, + MSMP4_MB_INTRA_VLC_BITS, 2); if (v->acpred_is_raw) v->s.ac_pred = get_bits1(&v->s.gb); else diff --git a/libavcodec/wmv2dec.c b/libavcodec/wmv2dec.c index 2daf6c70e8..1209b1902d 100644 --- a/libavcodec/wmv2dec.c +++ b/libavcodec/wmv2dec.c @@ -482,7 +482,8 @@ static int wmv2_decode_mb(MpegEncContext *s, int16_t block[6][64]) s->mb_intra = 1; if (get_bits_left(&s->gb) <= 0) return AVERROR_INVALIDDATA; - code = get_vlc2(&s->gb, ff_msmp4_mb_i_vlc.table, MB_INTRA_VLC_BITS, 2); + code = get_vlc2(&s->gb, ff_msmp4_mb_i_vlc.table, + MSMP4_MB_INTRA_VLC_BITS, 2); /* predict coded block pattern */ cbp = 0; for (i = 0; i < 6; i++) { From patchwork Sun Oct 30 23:56:25 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 39065 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:8e01:b0:a3:a294:714c with SMTP id y1csp607606pzj; Sun, 30 Oct 2022 16:58:13 -0700 (PDT) X-Google-Smtp-Source: AMsMyM65lSZLY0bS6VH6rVuzruxn2eZJKDnVjwhoI23v3YipWxXd/yCPCxBGviDKAbqMgy9cK0+U X-Received: by 2002:a17:906:4bd3:b0:731:3bdf:b95c with SMTP id x19-20020a1709064bd300b007313bdfb95cmr10587099ejv.677.1667174293221; Sun, 30 Oct 2022 16:58:13 -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 r20-20020a50c014000000b00458bb34ee93si5593198edb.149.2022.10.30.16.58.12; Sun, 30 Oct 2022 16:58:13 -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=IDXybsF+; 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 333FF68BDD1; Mon, 31 Oct 2022 01:57:11 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-oln040092074015.outbound.protection.outlook.com [40.92.74.15]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5BA5B68BD8D for ; Mon, 31 Oct 2022 01:57:08 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VejHj3Dv8mvlM/LD+FI15IQ59lmtqjVMQhIWxu3F2lopEUHnr0GeYtMWVuk7467OwjdD35t6jw5WwNCEi8wFQstIo2aQrziby6YL6UO4irpyChbUNBYJX4OrMmi+WGX8HaTPcl1W9qwHLibV9Tkroit3m13+peCsVkWXnEnE3zBr05jEDb7sg8RDCHAbg72Od2iwUBzWJ0CcB4e7gcy2MH0lojARTYZbn1v5sWZWppe4ImrXGAq16rtrmZuAP2+DzeBfWzucwvp97d+oqdZu5eOp/zVWjha9syhuhSddTajxpDBq080utEMibKXT6LR+0ZRBVymI3e18ISlpFnTwFQ== 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=CWpqlJaTOQwyEVS5i2rmopXW0pBsSyVuTrgHjYJeBbw=; b=B6w990OmZzf6QPyTennzJf9jxNyx/KswkLkedCcTzZs6blVhD/0Aiu1YkoB06B5Uy88O0M+FwqttVr2qCG0I4TqFTocDpG2YafgGs0BduwJGkPWjcOlhSP7czzkBkQyVax9MemVsbgaiVWDRRxbjP6LPIRHK1W6xbtKpCi75cHn++Deiwd96Qqj45U7D4BxVMSFeyyZwYDH7SHuUHEhVRvMXnIbC/iNHaRf7BHkNPqY99wF6vp78ZBNypPaQCkFKFfyqgxaGOFJdMhknMcOT040yK6pfCa/LcNqpRa/1w9Pxrmwv0AfIA5vHQpbufs2061bweKIH2Vs2KxtTjfKXvg== 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=CWpqlJaTOQwyEVS5i2rmopXW0pBsSyVuTrgHjYJeBbw=; b=IDXybsF+UmuGV+uZ9pbp1hMdBxHE4BaP7JfXl44lQ31HgRZVR6OnJ8HaBYogdF+8Nmhsyid5aYhIFI2nNtu1oCzGaaJ6cZe6HMaIFh9X3xjruc4PU6AB8s1ZU1tXro2/EEESFaMoTJTseoSYfi9R9QA82GLyyhTnP1ZUCWs97LYdXwcFj8tG9OG4wpmPEG9N32+xCYpWLuTKNodSLIqvbFhsPVr77sN6WbXjE/Bxi9LLi2r5gtNYQoSDdJVd7S3iZ/Z+9MvQzOYIJqAvSwi87zsvfUWt5x5xr3xZD6/mtBCniObWuS6DHWKZw77XiqT62ln/yqb1aB/slNTtfbw8MA== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by GV1P250MB0857.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:97::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.19; Sun, 30 Oct 2022 23:57:02 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::739a:8740:19c5:925c]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::739a:8740:19c5:925c%5]) with mapi id 15.20.5769.019; Sun, 30 Oct 2022 23:57:02 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 31 Oct 2022 00:56:25 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [mCyKzdIR9lDiOr3elGFqJZr9kfLrOIiOoymzwiKXIuM=] X-ClientProxiedBy: FR0P281CA0146.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:96::20) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20221030235631.11750-12-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|GV1P250MB0857:EE_ X-MS-Office365-Filtering-Correlation-Id: 1fa22951-88ed-4c66-591b-08dabad27065 X-MS-Exchange-SLBlob-MailProps: AZnQBsB9XmqZLd1X3toBDX9YZ7dpDxvLntjoD2me+n3Cr5v9OzcLSaQJDyeheEqRQJ89EVW4HEUDf3xgJ0/9e+9Og9k+vPUQOCNpSoY385VSe3hUNqlKtmg7QerzpdTN6UEizO45zG2b3wqKzjoT1rbrPDek/ZcrCAM7NBVX0sxEKhAAL142/iyLyQG8KYBdt2WuNau0koXBav55V9kKL4/WX+bNK28mxqm2y2pNPEkbRq7Sbl5Dn/lpXzrkQh0hiRd3nCGssFK+46PFZfvEXx3J3HMCusQ53mLVJgPu0rHMUzeRZ7e+p06b8jnEmVhIwpjfOh3UXBu+kxdmEhU8F4BRCrg7kkqwudnDcOO1M+ABNfuEdhEhg8wEvIhsxVkkqLvqQtmfsATv2oPSDpOT1tsDTSXTGJEmk+EYkpGUvnPtQeQ7vPhOnVXoyS5q0m/SFY1PYEmyh+5V2j+OEr86Rnv8jzSvVvMv5ezy2u4dHjb17eYhHVL0VHALDO0TZEudtU7vN/ECW/OEM4g+HDmOguC7XBzDXdKXFT2O69houbXgHK0hdepPYvecS805g+uG3nKvXQuvwLgRi98HdAwb0JVoEQ/IJXKyTD+KCrU218B2mAQr8joTwOKPmC70krfLrHoT2KF3n5ed+OF1b3XH8QTE5g1E3+Lj9EPtOYULhG8E/0Jv4wf5/Xlv6qitX8KhjOJh1WZzLKnI9AGHizeuLr04h5sayzBS9bdl02iRBHFQW4ptXGqi3csWLjL8nHCy91JyWhgKLw0= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: +Y05jybCVh6X1RdjUfuyl8NYj9FceWIyBKfjdHqA+OoUBUuMMdHg0tBM4n2i5hnEwOdfyQGhMHsmw/l4uWDL1TrBu6GVA3camisNhv/xmsUAtvYMYGFA1nRRDGdjOBkjdP06ZQJUBX2olUX4egIN+vAjj7Q+atL5IaX/abr39uVH28T+u9xunwmVT8PFL++/lBVEd1HRgC+2tBhcNrzzKvBpjV/9kyqrsde2MCb/vBs/Gl7xlCBcHvKb2FdHjee3QXXaiTJTuYYdUZ5M9mhSCIwxAlPvVRyixmnJa/cTaTzMzCQQMDIhRjfBn/LeqdVBjIKGgY1zvxxDqjcVZVpSXsDYEdsqsrsFtyHL8S3h6qqF7+O1FBOz2A5tZp8KboxLKkn4EFK2BqNWk1SNrCPlxj9WkcXhJHBg8/Fo0gyIY51lE79TIvP5M5NJ2vhUKuJx2gXEs+sL+Im8LxAb7tBNEM2iO8vt9rtw6AVNLOi+0cF1XJFUQ5vu5MvrDMbcq4+EvOesuFIY9RNHiTui4jOEd4xD5vCKzxCx44rNUlD5bPZu2u5fSBQtOqKkE/XIlzItgM5tVV/oVf4MZ/YwXY0d6neTfU4nUXF4n4cJGKcjqz05jtKJVVKFe3d31T9ej/r6eLebbqTsisDhgrxwmtBZmQ5MNViuwmaIo6cHpTmEK3Giw5g+phESV7/UGTGWyf4K X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: Nuxjj0uyoQ1fnQOWjtaBZVnQr6wfsBEAXUQ7xZpj0PdizYncRltzqpiqD6rnuhm9/OHi039yrXjZlcB4j4+c8OfQIcCAEa5DBVD7zttyE6BHaVmSX7HLbgL/Bw4jF4ZmAGMIMmlNlTDegDgKs+7SAbu0f/hyUgzc3f2RXPSPbIdbCGXqlFzJxcVHXdv7zde8S7G2nGNJSQS1pJrjGjjnmXcV9Fhg6g/5CIKaibTs1IeIMLpld32ZfWMiAjZrCdyntr1PWmSXvXGhE8BKTJgQ+JHzdx9mku/7GHPMgK5+u+1X1BlzB+jwRZilhSbOhu7szXSBel8JaGLeHpX32M95XlmgsXL3iT4GNHa7vwq2RrPMMLN4zhGtJMTCjW8/wHiRn2KZPmytx11AtQGsd+dYrRkhBif9yg5hCdDNEgk05vsm64N33NO/4ADOaOcIOOXHr1tP538r/8gpvl5Ae/Ccir2fsHBaO/sy+qzP/0MxUn/PnR3z86LG/lzXhI4MW3MG2yLDBXdSSdfMtSUuIUY3AJpiYBDqdbjDkKEjQX0VC+Jn/V9ZdQdMS4FNcdx8Dl+9jUJsaP9Y7uLMjGjx2wyTbK9dZHrn9e7KHfr1hzqg04IGEjNI+AL2MmwupaVMYh7Xbpwc0VcXsXte7ADhJ5NqljeCvBUpuYlAceSs18Mg38W6JanhtmQbgnWD70BjQAPICTUZqzdfIDcB/EhZ+S3sIvuSPZgdNukM8aYN9M5gOL2sxrKN84OVK+H8MMXhc4Ypq9QdtfGGEOWWre9S7zqHEuei1+fTscMf8IyNUjKWzE5huCLBHbH/nXdjFYmdAq0o/cQ/VkK5GKzjHiVcG1AQi/GpN9kzloS5mA2Owk2+XGV1obQ9ywft2VLnp15ov9gExFRE8r1q3t3IwY+XFjdMsinbhy+e2ighCpWOMbydc92aUXuTfX+C4rX+2iL4nZqhOcFDXgHIIHbMoxekZJQfHfHVFmwfzs5dOdY8a3WtX2EavbqeVpQquYHj9N8WxAOvDfhPEAYu/I7wKWUq2lnL1KDnEbh0qO/zHat6EJmwmfofD+EpMqXB+LbmOhpD91e+JOSO0yal5IZy33GhbT7I7jBh+4PHap1h8N4fvMjz3tfSHmOAEITJJm28fI8Iq+pJnwDAL34t0/ZL5QDCf6hltm/I29lVyXtmfItfjw8tH9Dh/uux8eoFfPNPRJjFfPEu9B6e6RvlPe2OBSfYKQt5M3h01ro9L49JXLgtQcvVQ29x7vgNdKwosoz+pthKRlu07zf+8NjFHLqS2KRrpvQ8Tx0ftu/3Kjsz1gnUNabxJF+iDJj6zwf5B7S4a4pBrm2A X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1fa22951-88ed-4c66-591b-08dabad27065 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Oct 2022 23:57:01.9811 (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: GV1P250MB0857 Subject: [FFmpeg-devel] [PATCH 13/19] avcodec/msmpeg4dec: Factor initializing VLCs shared with VC-1 out 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: SOmhVlIkW4ba It will be useful in the following commits. Signed-off-by: Andreas Rheinhardt --- libavcodec/msmpeg4data.c | 30 ++++++++++++++++++++++++++++++ libavcodec/msmpeg4data.h | 2 ++ libavcodec/msmpeg4dec.c | 18 +----------------- 3 files changed, 33 insertions(+), 17 deletions(-) diff --git a/libavcodec/msmpeg4data.c b/libavcodec/msmpeg4data.c index 63f30ac544..7b54eea221 100644 --- a/libavcodec/msmpeg4data.c +++ b/libavcodec/msmpeg4data.c @@ -30,6 +30,10 @@ #include "h263data.h" #include "mpeg4videodata.h" #include "msmpeg4data.h" +#include "rl.h" +#include "vlc.h" +#include "libavutil/attributes.h" +#include "libavutil/thread.h" uint32_t ff_v2_dc_lum_table[512][2]; uint32_t ff_v2_dc_chroma_table[512][2]; @@ -38,6 +42,32 @@ VLC ff_msmp4_mb_i_vlc; VLC ff_msmp4_dc_luma_vlc[2]; VLC ff_msmp4_dc_chroma_vlc[2]; +static av_cold void msmp4_vc1_vlcs_init(void) +{ + INIT_VLC_STATIC(&ff_msmp4_dc_luma_vlc[0], MSMP4_DC_VLC_BITS, 120, + &ff_table0_dc_lum[0][1], 8, 4, + &ff_table0_dc_lum[0][0], 8, 4, 1158); + INIT_VLC_STATIC(&ff_msmp4_dc_chroma_vlc[0], MSMP4_DC_VLC_BITS, 120, + &ff_table0_dc_chroma[0][1], 8, 4, + &ff_table0_dc_chroma[0][0], 8, 4, 1118); + INIT_VLC_STATIC(&ff_msmp4_dc_luma_vlc[1], MSMP4_DC_VLC_BITS, 120, + &ff_table1_dc_lum[0][1], 8, 4, + &ff_table1_dc_lum[0][0], 8, 4, 1476); + INIT_VLC_STATIC(&ff_msmp4_dc_chroma_vlc[1], MSMP4_DC_VLC_BITS, 120, + &ff_table1_dc_chroma[0][1], 8, 4, + &ff_table1_dc_chroma[0][0], 8, 4, 1216); + + INIT_VLC_STATIC(&ff_msmp4_mb_i_vlc, MSMP4_MB_INTRA_VLC_BITS, 64, + &ff_msmp4_mb_i_table[0][1], 4, 2, + &ff_msmp4_mb_i_table[0][0], 4, 2, 536); +} + +av_cold void ff_msmp4_vc1_vlcs_init_once(void) +{ + static AVOnce init_static_once = AV_ONCE_INIT; + ff_thread_once(&init_static_once, msmp4_vc1_vlcs_init); +} + /* intra picture macroblock coded block pattern */ const uint16_t ff_msmp4_mb_i_table[64][2] = { { 0x1, 1 }, { 0x17, 6 }, { 0x9, 5 }, { 0x5, 5 }, diff --git a/libavcodec/msmpeg4data.h b/libavcodec/msmpeg4data.h index 4f904d7610..ccbfde36f7 100644 --- a/libavcodec/msmpeg4data.h +++ b/libavcodec/msmpeg4data.h @@ -48,6 +48,8 @@ typedef struct MVTable { } MVTable; FF_VISIBILITY_PUSH_HIDDEN +void ff_msmp4_vc1_vlcs_init_once(void); + #define MSMP4_MB_INTRA_VLC_BITS 9 extern VLC ff_msmp4_mb_i_vlc; #define MSMP4_DC_VLC_BITS 9 diff --git a/libavcodec/msmpeg4dec.c b/libavcodec/msmpeg4dec.c index a7ba53f68e..2be8cf2bf6 100644 --- a/libavcodec/msmpeg4dec.c +++ b/libavcodec/msmpeg4dec.c @@ -316,19 +316,6 @@ static av_cold void msmpeg4_decode_init_static(void) mv->table_mv_bits, 1, 1, mv->table_mv_code, 2, 2, 2694); - INIT_VLC_STATIC(&ff_msmp4_dc_luma_vlc[0], MSMP4_DC_VLC_BITS, 120, - &ff_table0_dc_lum[0][1], 8, 4, - &ff_table0_dc_lum[0][0], 8, 4, 1158); - INIT_VLC_STATIC(&ff_msmp4_dc_chroma_vlc[0], MSMP4_DC_VLC_BITS, 120, - &ff_table0_dc_chroma[0][1], 8, 4, - &ff_table0_dc_chroma[0][0], 8, 4, 1118); - INIT_VLC_STATIC(&ff_msmp4_dc_luma_vlc[1], MSMP4_DC_VLC_BITS, 120, - &ff_table1_dc_lum[0][1], 8, 4, - &ff_table1_dc_lum[0][0], 8, 4, 1476); - INIT_VLC_STATIC(&ff_msmp4_dc_chroma_vlc[1], MSMP4_DC_VLC_BITS, 120, - &ff_table1_dc_chroma[0][1], 8, 4, - &ff_table1_dc_chroma[0][0], 8, 4, 1216); - INIT_VLC_STATIC(&v2_dc_lum_vlc, MSMP4_DC_VLC_BITS, 512, &ff_v2_dc_lum_table[0][1], 8, 4, &ff_v2_dc_lum_table[0][0], 8, 4, 1472); @@ -354,13 +341,10 @@ static av_cold void msmpeg4_decode_init_static(void) offset += ff_mb_non_intra_vlc[i].table_size; } - INIT_VLC_STATIC(&ff_msmp4_mb_i_vlc, MSMP4_MB_INTRA_VLC_BITS, 64, - &ff_msmp4_mb_i_table[0][1], 4, 2, - &ff_msmp4_mb_i_table[0][0], 4, 2, 536); - INIT_VLC_STATIC(&ff_inter_intra_vlc, INTER_INTRA_VLC_BITS, 4, &ff_table_inter_intra[0][1], 2, 1, &ff_table_inter_intra[0][0], 2, 1, 8); + ff_msmp4_vc1_vlcs_init_once(); } av_cold int ff_msmpeg4_decode_init(AVCodecContext *avctx) From patchwork Sun Oct 30 23:56:26 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 39066 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:8e01:b0:a3:a294:714c with SMTP id y1csp607651pzj; Sun, 30 Oct 2022 16:58:21 -0700 (PDT) X-Google-Smtp-Source: AMsMyM7E1mHHI5pLFQ3G4QjYozmGKKA6mh1QZ4KcrOQqw9HAXe4B0RRKzDNwrBVcZa7i7ladBydZ X-Received: by 2002:a17:907:6297:b0:72f:9aad:fcb with SMTP id nd23-20020a170907629700b0072f9aad0fcbmr10061685ejc.161.1667174301451; Sun, 30 Oct 2022 16:58:21 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id hr22-20020a1709073f9600b0078d8c03a5a6si7564786ejc.759.2022.10.30.16.58.21; Sun, 30 Oct 2022 16:58:21 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@outlook.com header.s=selector1 header.b=mFWRBYCc; 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 220ED68BDAE; Mon, 31 Oct 2022 01:57:12 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-oln040092074015.outbound.protection.outlook.com [40.92.74.15]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8862B68BDC6 for ; Mon, 31 Oct 2022 01:57:08 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=E1BGGL0N6NKh0hYp9ym1Rq1sy9BdMkYWxaepyPRtrBcP+IqS/82gbVJP3KkLQaGj+VXR5TGmNymgkI2sPCbeMqQTAB6SG0fxwEz0/kLAuoaYIHFD9OXQyafJPXkaCbfxPzNxJ83Kd8YM5I6YH9m9w+3jCt3NPgzhxrGFMQzi/lWrQv+g4BXqxdwneJaOhA4iHHRlhLCK2hrJ94GPowQ2QdZT/4z2kef34dvYcmpjZi7e3Yujex8Y3QhJH7D4FeS+e1+GJoqB2fzvmHCpkD/b2iRFhC/AjHMHjd0nh7gUp/xyMEsa9mRMPZcDbuvimoB8kNscWhW6IdfGICGagNGvhA== 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=PFuay/i77K+liui0Z67o9MIvtTBch1EYetNgM0Y2NRo=; b=K6/ZEbdSpMeR9gpSuEe9Y3F6Bn+tmH1p/yHwRZQ7Ta65qIjSVHs3vT2ZgmIdlqH2KH00NTi5rn54kJOF4pQ6s+/Urb7lZEgdPB12rRbzO9KbCm5TkZdC7Hbk/8dfpD1AuNxrjFjXA8hJDG+HUF47B+L+lnAm89BA72rT5UUTbOFHqFeC4gxmZ4qhOkgu2rtjC4dlvXzr3O1buf2iLSHki3PgduEom68BGVGklMUaPbLa7tyyqkFbyQfRx+MXk6e/uNUK5tdm+qHB+AF+7RVv7MOQtXhEQg11VkfUq3d2WuDmtsPXT34dhonTmTP+DGVcpgD0B4W2z/7TdvpmN+pNpw== 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=PFuay/i77K+liui0Z67o9MIvtTBch1EYetNgM0Y2NRo=; b=mFWRBYCcRfZZO0utaCRW6l+LB5Cjy4F6eo9t2OUXsWqOjVTTmU7jRh6vx1O+kgp7aubSR4rNvcIMdA6ixIENpqQc59BxhWwHaq90RzS1SAg+98FOCI0/3ZtRhifa7SabGG3EG3a4RKCgUwZYGsvXTDFuWbtbMQVVzgh46VbbsrP9GUr7RtQgPyDmaC/Ms6T0YDPzwUBcuXL8Hiwy2wvjwKdMnG6Elqlr7H+ehO9Cca6DY/+5juelG+WmJOBbE6GlVM77shoeJrBl0/N37R2ulzf9T/HDioXuBZn6XMtdhLgfm0aNYHLoGiScLJzx3XxxJNUU2vN7gp7GsY8bBWBAvg== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by GV1P250MB0857.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:97::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.19; Sun, 30 Oct 2022 23:57:03 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::739a:8740:19c5:925c]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::739a:8740:19c5:925c%5]) with mapi id 15.20.5769.019; Sun, 30 Oct 2022 23:57:03 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 31 Oct 2022 00:56:26 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [TNfTtZqWJu/N47cZvQl8p+nLDqMAjIiGU7jj6kJOS4A=] X-ClientProxiedBy: FR0P281CA0146.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:96::20) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20221030235631.11750-13-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|GV1P250MB0857:EE_ X-MS-Office365-Filtering-Correlation-Id: b3a9c941-6460-4913-1ec4-08dabad2717c X-MS-Exchange-SLBlob-MailProps: AZnQBsB9XmqZLd1X3toBDX9YZ7dpDxvLF3wOuj55SA6Djuob7LyJTGJtCPlUkkuFOfkEPqY/m8pVYnmFsiMIfFXRmx07eZA5SO4oOvtSQoyhWcCUE/6gVT5sibYy7bFLvskCLd55+Asu3TAe08mQ8ltaccXHA9ocVSZ1aoh1mmfdr7cfkl60zxc1V0/Wf1CT3WUsFdM2pBa7us/clbBlRroPJfrnpLyCwtLrZy8efE3KJMnIN9v2Br9BssvKTxpUkuWEf7bDnraYQxxE43N3tRNeWYY9KV/TDhAFYq+ZxFAZtRhvwcJoi794i6OEP5Ijl+EzzcJyCjwpmaO4MsH38Hgww4NrzLipxTZaSV5TxxePVpOgSc8hkEH5gbMlZolZ+5jN1AkZCNbusXWWbMQ9t1fDbChjJ3ib9/XMagtH6p+iiArAkgV6kjjdvQvm84GzCxuMvaLO0eho1f9ai992EygzQwrO/MdwSUlRn2NQLojs3R/EopeuyQejREtRQHaVXTvwkUIDMzXIxnZtlBWz5CgZhxupShdcCuhkpFjABDHqhKWzpNJglAKiF0YBGeoZnLqxxyP6dih1rQHEpuSQGkRPG0a1Z2OBaEw4Af7zbOSCzdGRR0MYi3juaWXsz+e/4iH6a13WgeQPLx0KycnIgE/KCbU3TJcKVYTI/upYQCkxNiUjkhg6DN16a6e/hrg5ajylmDOLkCgq5rWq+zRFlDUeslq6ztjDZ62cM48YeRao92I64nFH7Px9/gONXuzakhUnOxn67Uk= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Qkv1rm8SAVemWo30ADE2K3yKNEt68TW5m5a/UI/W+UxDCWNKMLrIciO7HcpKQhT+eUu9d2bOF7/duidBsQoA4fNrKyVQm7/9C8tg/qPWYgW72Ogi7UUX3/2NoIto2y2k0g2bCATy4iieIJGf1GdYpbIykgVJ1yivM07K8AXvEH2nd+L8uydbXmVK2jO68h/SOY3fy53DEjJsO1IhAO+CRHArXRCv8DrvLogGMz/8M3M3ggzYoNmKShmKGlIVf7Gb4I+eah5nwmMqAMFyr2wmzQsicShDxELMkhVi30a7dgJ8WAiDxO/NQaZ8oAAErKiSm9SDocoeVrjN3xBnGEAvjVJPepwGDJbA473AWLU4PrSGCHgfElGE/qxCXLGicQV4cFSX71X4K/Xrd6W3yYKU+0wbPVXvH1IZh2gRqrYA3qY/ABB1u9sdAS7ubFSQtNrF4tWLeRWk0PX1Zk4zgIWZqvvTLL/9PORjxsrk0hWnVSF4vGYQsu1ludpOpnyngrvM7m0U8fjiYsoO8wfSkKBW7ExEARVMEecFNZnE2Cymk/lXICXxC8FfW2D2hSvdqCXpm6+xVU+Y4z4Yt8EtokdKdRtm+M7/bs8kOf2TuQWIZQgA5jRgywQ3mSqwFeznbSMSFeZBnlF1PXalK/Mbl8xmOEltQqE+TYhhwf30TarZCzy60qKwnTo6X3GghfTH9yms X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: pLNsZljdOhPW2+neBbY3jfj4qqYq0YjL2KSdMsvclfexWpGNvfpdd3pt5u7eBy+088gyGbnN+3Rf/XFp8vdfSHA5jogFZURfX0KTUXAAOc6fkPqVc9lGOkPvdOaCsHyxt0EH/RMLuC/1DfDe4iltD6PFzoaqcPrflTZy/7/pm9NMEzqlb6wB/5GR8EtaCj99cjA1ZuSluqvStgouzzc1b27rWM0j7QE81pLsWG/pivW6HnIBRCH+a9QLFigPMVo0eEYJ89LwlhZTZ5keEeH8okQbUvt/kTghH5Zfq/TjyIEM9w0uo4b+jM/N3PlTU6le0hfMSlg12qcRLqhJnPe13QXfCsCkz6YKPSXzD6GvwJ06ThRakm6d+JYPsTyyc+GNYsyGxCyboF7USDTWBy5YVpTt5tvT4ps/KpzMu0Fri7mFCHfcGi2gPbP0JI5mjacoSxYfH6a/Mbl2Qn34vQyi5lEZhGSA2wkTf7VPSlVVVDHrFHbiitxjFFLzoArGm/cpT1YMPaHHBTeObAmm4v8VpdSZt6B8ilwUj98PpXhnHmQsZx1QlW1qc9mlzd0qRR9wCwuNx85Ic7F0riSm+s81z+yaysQf7CRBrjWgAAAlXgs+5Dif85dEIcWa7Dt41jI3DDDX8Cv/kEA/yDaSA5qK3E9oCIKJtnTdldAdCymDvtn/LDgegLlbGuu5fApZ+eJYnIVCFLDBR5FJzmyolvAhSOSjNbLzF451T+Mues3bP3VnGzk1+XesUOCRkp26e1/FZwzZ8pCFKm0weP7pDM8AyLF8oUyI4BARptY1y4nkuc9AbCrDagk/EmCkSof+FwTAPdUdXK1K3ZipslDhZsxvFTJnh4K0o6CovAKbO0uG83N0fDuEHBPCi5mp/rO5CI96YBcvgif6uIlAr3QCdch41gjuoRaaWNigX/adcs3EAnZpjaZfIf250uir99h0qYG7Fwrmbh09aabANMVy/1+f2djU7HXmXH8sFXOzCxjTdVu+Km5LOGdJvFPtYIitMRFnDN0MqmqO470Tls6rsOQkXLpof9DuoHqz/Gz8pfggUkDuFDzlNJYb8LRXCaxKLNPhQ4B6UZ8+RRux0cVlgygQv0ByUzAOkP6bdTRo5F1JmOxEMmqd4PKZrqrbj5qDJHbEFcl/LONzglG1uKSBe+PituzzvNmJu/GCRk85/FNZp2tbkziv+3cFBWihtkfnfA1nSXmmiYbxftA3QeL0LSvzzgz/gKCVcRM9oj9K4VU5EfgBguwrq/9rHatw+2GXlWjNnCZ8/T3d784V35HOp35xc1+QP7w9teBFig3bmPFFRdog9WAMsKZKx+5JlmoPwWbC X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b3a9c941-6460-4913-1ec4-08dabad2717c X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Oct 2022 23:57:03.7923 (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: GV1P250MB0857 Subject: [FFmpeg-devel] [PATCH 14/19] avcodec/vc1dec: Don't open and close decoder during init 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: uyMInq3sjcvT This is done since 16af29a7a6deff3f6081fca1e36ad96cf8fec77d (and is actually unnecessary, because the tables initialized in ff_msmpeg4_decode_init() are only ever used in vc1_block.c which is only entered after a call to ff_msmpeg4_decode_init()) in a very ugly manner; said manner had the byproduct of involving lots of unnecessary allocations and even opening and closing a hwaccel in case one is used. This commit achieves the aim of 16af29a7a6deff3f6081fca1e36ad96cf8fec77d by initializing the VLCs used by VC-1 in ff_vc1_init_common(). Signed-off-by: Andreas Rheinhardt --- libavcodec/vc1dec.c | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/libavcodec/vc1dec.c b/libavcodec/vc1dec.c index b74956c6a3..49ecfd8a48 100644 --- a/libavcodec/vc1dec.c +++ b/libavcodec/vc1dec.c @@ -540,6 +540,7 @@ static av_cold void vc1_init_static(void) vc1_if_1mv_mbmode_bits[i], 1, 1, vc1_if_1mv_mbmode_codes[i], 1, 1, INIT_VLC_USE_NEW_STATIC); } + ff_msmp4_vc1_vlcs_init_once(); } /** @@ -672,16 +673,6 @@ static av_cold int vc1_decode_init(AVCodecContext *avctx) avctx->color_range = AVCOL_RANGE_MPEG; } - // ensure static VLC tables are initialized - if ((ret = ff_msmpeg4_decode_init(avctx)) < 0) - return ret; - if ((ret = ff_vc1_decode_init_alloc_tables(v)) < 0) - return ret; - // Hack to ensure the above functions will be called - // again once we know all necessary settings. - // That this is necessary might indicate a bug. - ff_vc1_decode_end(avctx); - ff_blockdsp_init(&s->bdsp); ff_h264chroma_init(&v->h264chroma, 8); ff_qpeldsp_init(&s->qdsp); From patchwork Sun Oct 30 23:56:27 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 39067 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:8e01:b0:a3:a294:714c with SMTP id y1csp607691pzj; Sun, 30 Oct 2022 16:58:29 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4IrH5BOQ7ad0h7k4buH4xJblqCqh2lFQHA8C20CvCRGLlgmIi3QQrxdusBqvZkJng9YBrG X-Received: by 2002:a05:6402:847:b0:453:944a:ba8e with SMTP id b7-20020a056402084700b00453944aba8emr10769193edz.326.1667174309447; Sun, 30 Oct 2022 16:58:29 -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 d37-20020a056402402500b004613ae68ca0si6217495eda.442.2022.10.30.16.58.29; Sun, 30 Oct 2022 16:58:29 -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="Xp/R3neF"; 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 364E568BDE1; Mon, 31 Oct 2022 01:57:24 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05olkn2043.outbound.protection.outlook.com [40.92.89.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D8CB568BD70 for ; Mon, 31 Oct 2022 01:57:22 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KPxd95rGW41gef+JIhCpMMOlYpHYE4NXd63Wd5AYAQf9PnrXl63jMhaTCAVbAEMiWVYo6DXfvgUHHnvPjHiCpiz+vd7botT+Ih63f3cv2pFMLN7hH4/BqCEhb6qyuZM2g4T+Y3YnEAPdK7uKtVLQtstBHfqgxEBFGN00I/2ppfILtu1qhZDCuX2c0+XNaL+g62613Bw6lqRjOYdO4+iTop0GTlhYSGO1P70hxGTyXc6295jCq/6LRoYtsuzL6AsI4EntotNbp/qxDRXdVaEZQQspnZ8kWolzb0hd2uf5O5fDEPkUrLn4XOB9udfdAsBZOT6odS/Ts/sNiv46kAvBrw== 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=9qodF1mEn8s7yeoebeZgCShobiqjdfew+FwLZkRppe8=; b=BhzqApuO3klM0Ln/RrvYGgIGeqk6j4ZYPeXN3nAuNo2s1RCO8J3TUr5SyiymVq1eB2pbcXOd/DsJUfylkBaRRj72OMhAVnU9HEEosAKCyNgfmGDw6njUCm8ifGrBFOpbV9PtSQ4ladzMAaZrL0ZZ9K+fWsz3dJwQFCscVmHRkuzKoDx6w4ys2DHc0oics40sGM2Lw42xpVGrinN+kpBsigoBRYw1YAE4JHfnIg0RPGSZGzK7oRBvJpfRbcg7uRWzJds9h3mgV1kqQf61Hkgg4XqOqLX6Rv9vZ+22DlZZDDCNF/OKgZ0fT6+VooSoMHdHuU9JKjTYvVD2lvdYsWoKqQ== 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=9qodF1mEn8s7yeoebeZgCShobiqjdfew+FwLZkRppe8=; b=Xp/R3neFXNuYWI90ZqhHzQ0h6dcVG2G+ItfQxlYJWobtH9hTx/bSy2d0QGxn6EcHos5+C3GeblRQDpWAlS4QicBKzRWVlM6O198A9tDhEW2sNgwHoJ+FJSiklI5goq2NsjAwogXBWeyFY81TXSmP+DJ8wS6gHT0l7Nopz8l90yEBmVSk0HV8Q42HYBIX9jm2+mHr4BAbMRehXNKQjfudjdHTP3QkRBK0NJJ+h7K9NqeehxhTmVJqLhTNKM1pxBR0H9w4VkvWIMGP8hHZpHKiUHH1asEdt2SxjAMMcBsYJB7WmM1XGFTQZxSR0u4Hasa0rxjRbS/lzoiQIsUSxibEOw== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by AS1P250MB0453.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:4a9::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.15; Sun, 30 Oct 2022 23:57:20 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::739a:8740:19c5:925c]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::739a:8740:19c5:925c%5]) with mapi id 15.20.5769.019; Sun, 30 Oct 2022 23:57:20 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 31 Oct 2022 00:56:27 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [X+RVVR6lYaAAGTwGCgsgDX0Nm1faJNk3/zo3VFZgTH8=] X-ClientProxiedBy: FR0P281CA0146.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:96::20) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20221030235631.11750-14-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|AS1P250MB0453:EE_ X-MS-Office365-Filtering-Correlation-Id: a5f197bd-7ea5-4c9b-b19b-08dabad27b65 X-MS-Exchange-SLBlob-MailProps: feAVlmA1hHUtv/+vbWUiI2RyUx+OiJqDt2ULMsGULeQBpMUH6RVR85mw07o6TO1Qz+kJ7N0h/KSv4KDyQJDscOC1CC2mQFsqweBT6lRweBT/Ln8ESce1+FSq1/u4j/UMeBWBoIT5I28ErO11NK0va/vmHVgCnVp26xIVeOyQKYjgvcA0n+CFeVElyx6Y5LhDVU/Z3Fb5YhloUeL7l1rsg0q2F8kv+AqVHTEBDydX8j/F4zwzgFpbpKL9zse/urvxCkbDKh0tu2mu1B/POiIXVOdOqcP5rTT/kMMAb4rAOm4TC+XwI/ivs7MSVO4YdU6w+Bb44muas1mvky8XewqTpEJWA8taJKqWv2MzAxxR/TlXZlWqhsmdKK8ZGD5ZRGAOOM7G/K+9OplQGMAON3e3t7/s/e9chr/yjzzOD0KUgbPiFyEjipc86a5KOiNC1ucksBmtLP7KxgK8hmT7+XvZK8g/KMb53a30k48rPL72dLWpLmGho9+2cpKk4qu87OEUFDfb0IROj6ecJPNl68CusK3dNXPg1l+KL7MX0XPIU8N0hoMKxN7YURvUe/9rbTWFgx8YDbo6IuxSIHZYtS7vtPcxJSox3oXoZjs7Gkq9nKU+IzVlf1hO2dOa2Gl4oMf9c5quzsATUOncB8ymhh8NQ9r+eJxXa796xLxJXXvcwAyXi+8qqeCxLAhksxBij2TUxMWL0qZ/5Ao6pp2G9wDC1Q== X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 9bomUddiIpjgMh4JtqB2gHHo2SDG1MfyY8E5TiU+aR4QKRPXpU6KDMgwhNfsmyOWIxs292wE20NLb9ArJPg2OyiEzbT70uJNkas/eakMPDUZXgVa3dpdWV0A2brJmFY5g7nBqVdF4K2QPVKhPl+vnMPHNDmX4E0lRPhtf9f6sML23Bbp+mgDPXaxYgzaUBd/6h08osVtQguBwnW+Eg/gpc/SWRwvzPc/wpt318Z2edIrVtmXnh76py2nri6J+VjzOZlTDI4uNJAF1VSgsW4SYn2Q6a+nlIXBIpt0DbUhD3DDc0bqJSHHHFITHvZxZQ1NCwIev3JuVx7x8CTRetnJ10tP6WZBcFY/gGidyppNyvi+NLzzhPW09pijfgRRhyJ3ukKE+j6vAgQ1+JIGxJwCJcY8CbBqoT9bO7P3iqxamxDSh9K/vFNV/r3KueKYp3jz1t5pArgsNO6LJzyliPdd4aI1qFdi7hzm+FWs2cpolObkptl8PszjxuiwvPZlmT5tCBCGg5eUKepH14ZT5aiiEj+VqIxL4P2/cfzp8stG4wHnSGFdMQb+PFoLLE44/58rSAn/52/hrmJz9Hx0k4+aYYWXYdZM+Lcsq7lOZLnFjVz6gJPZTU5rQWXiVuMZ/VxBlzS69ISGI58bwrUt0pONHwvZ6EmynctKTAD6WVZVoQcrcgPi4D6jqWRdvCrCOwr3 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 4hDOaW7qaPXoQEj8pl9gB1ZHXjbDIw6uNc9IpGrvi+91RnZ81SUe7Y9/DhiZHVXEqeKdGd7sIL+RXJ97Rlxndx6ezrkDsRqWf4R0bvcSB06Xan/87OekOvZka0NZAjGrXosdOuId8Cepg+JNxzam1dqKpHFu75aCerDzzORea0fEaGeVj/2aeLd3QDu2kdQtndnQFxGgxTyrnRDWIesGFj99degdx09Dke/zv/0zVOHOFYBmfoN0raSPIEH8FYXqI2B8ljvrLXYl1/WvazQcUwYAZqWkoGU9urWaiDpM7mDdmKiA3rUrInlWZrVoRov5kAdp9gvI+vGxkKzBMCt8Q+lhC2YxGiPKnEuMzQSsj3MlcdogOl+zAGenI0MCG8bjiYuHaXcMUJhsrjH+l/Bgqvbo6Rv4Tz/v/d77T+ghnRQaF7ElEYv83X1Bt8YZ4lIIA1CNU69h++29GwuBX4vJ6jwpyXdL97u4Piepm5eCit1BalYiUaHuoF1Tpu7RdRXt6ihJrjxzVkddhFl6mVRYa4CqhP6RavlMY+KtGgGC6GNp2bTuTZRAPISQeJM1yVVYQ8PBRYQldSMTVzk9HqUg/QUJJm88BAlU35tmhcseqfkRaM/OzEJ0aD0r6+rB1PmrbxBZXNR7WZu62X8zMiaRXlsa2Ykrau3vnXbDlE3FnSX7GY/K0ucVhA9Mh+wtj7JYSKKwMLnSryQdjci45DobgHYlVBfW1cHBQQyLoJ9lZZv2U39umxX/40WVinE6cDEnJ7JjI9i9OloH1i8Eb1D4TCnfVUzUPVpNuT/+SxgCtGXMK5UnqgLAzqOWKOr8AF3Vb791iMGBesLSshmJAH7V0yaF3EXhcJfMfEFF9xP/TyD6+frqvq83GtVyMZE9cDxnl3GxJmkxf62oI0a3L7+v8/NWtuDlwYIDfqf9rJRn+PpH893t1AFhuRqej4g6ijnOyL9bnEPLwxdjEpfrMjnd8WPQxIdHiH6cIsWRrK8rB58MNzMoa3+kDoN2BZwRENb7E2OPA08HWfw+MAn8eG6a4RtcaM8IxQw1gXy8EbSLQfci8smzZ7Hmc6nrwy2wqhU+KMta+QfDmZCXBaVyYQF/d5Dlieaj8/Byv6eOCnA+RD5owMZCVl0RYB7uuiDDrBa9jAFsHdz8Opmo6lRN69IF9fJCViY0GaEg4bx6Yn6uUeNdUKe2XkLAGQp9Uoi57Fi0+C3rst5Hp0Q5DtYa2Yjupvb2UjXD2ljGwAJTj2zxXs8P3jdzw0CaTBo3qMDNSB9hXZ57tXY5u/zMNsrb/iOpYTIEekfzxAcFLlbl46fesqa75EAdCQ+Z3bD66BoGwApu X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a5f197bd-7ea5-4c9b-b19b-08dabad27b65 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Oct 2022 23:57:20.4225 (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: AS1P250MB0453 Subject: [FFmpeg-devel] [PATCH 15/19] avcodec/vc1dec: Factor (re)initializing code out 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: UMLfkI+qQCOh This is in preparation for removing the msmpeg4 dependency from VC-1. Signed-off-by: Andreas Rheinhardt --- libavcodec/mss2.c | 5 ++--- libavcodec/vc1.h | 2 +- libavcodec/vc1dec.c | 25 ++++++++++++++++++------- 3 files changed, 21 insertions(+), 11 deletions(-) diff --git a/libavcodec/mss2.c b/libavcodec/mss2.c index 69494d8c44..dca2ae4921 100644 --- a/libavcodec/mss2.c +++ b/libavcodec/mss2.c @@ -29,7 +29,6 @@ #include "error_resilience.h" #include "mpeg_er.h" #include "mpegvideodec.h" -#include "msmpeg4dec.h" #include "qpeldsp.h" #include "vc1.h" #include "wmv2data.h" @@ -852,8 +851,8 @@ static av_cold int wmv9_init(AVCodecContext *avctx) ff_vc1_init_transposed_scantables(v); - if ((ret = ff_msmpeg4_decode_init(avctx)) < 0 || - (ret = ff_vc1_decode_init_alloc_tables(v)) < 0) + ret = ff_vc1_decode_init(avctx); + if (ret < 0) return ret; /* error concealment */ diff --git a/libavcodec/vc1.h b/libavcodec/vc1.h index 9b25f0872f..3b6be78141 100644 --- a/libavcodec/vc1.h +++ b/libavcodec/vc1.h @@ -413,7 +413,7 @@ int ff_vc1_parse_frame_header (VC1Context *v, GetBitContext *gb); int ff_vc1_parse_frame_header_adv(VC1Context *v, GetBitContext *gb); void ff_vc1_init_common(VC1Context *v); -int ff_vc1_decode_init_alloc_tables(VC1Context *v); +int ff_vc1_decode_init(AVCodecContext *avctx); void ff_vc1_init_transposed_scantables(VC1Context *v); int ff_vc1_decode_end(AVCodecContext *avctx); void ff_vc1_decode_blocks(VC1Context *v); diff --git a/libavcodec/vc1dec.c b/libavcodec/vc1dec.c index 49ecfd8a48..682b39083b 100644 --- a/libavcodec/vc1dec.c +++ b/libavcodec/vc1dec.c @@ -329,7 +329,7 @@ static void vc1_sprite_flush(AVCodecContext *avctx) #endif -av_cold int ff_vc1_decode_init_alloc_tables(VC1Context *v) +static av_cold int vc1_decode_init_alloc_tables(VC1Context *v) { MpegEncContext *s = &v->s; int i, ret = AVERROR(ENOMEM); @@ -404,10 +404,24 @@ av_cold int ff_vc1_decode_init_alloc_tables(VC1Context *v) return 0; error: - ff_vc1_decode_end(s->avctx); return ret; } +av_cold int ff_vc1_decode_init(AVCodecContext *avctx) +{ + int ret = ff_msmpeg4_decode_init(avctx); + VC1Context *const v = avctx->priv_data; + if (ret < 0) + return ret; + + ret = vc1_decode_init_alloc_tables(v); + if (ret < 0) { + ff_vc1_decode_end(avctx); + return ret; + } + return 0; +} + av_cold void ff_vc1_init_transposed_scantables(VC1Context *v) { int i; @@ -947,12 +961,9 @@ static int vc1_decode_frame(AVCodecContext *avctx, AVFrame *pict, } if (!s->context_initialized) { - if ((ret = ff_msmpeg4_decode_init(avctx)) < 0) - goto err; - if ((ret = ff_vc1_decode_init_alloc_tables(v)) < 0) { - ff_mpv_common_end(s); + ret = ff_vc1_decode_init(avctx); + if (ret < 0) goto err; - } s->low_delay = !avctx->has_b_frames || v->res_sprite; From patchwork Sun Oct 30 23:56:28 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 39068 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:8e01:b0:a3:a294:714c with SMTP id y1csp607719pzj; Sun, 30 Oct 2022 16:58:38 -0700 (PDT) X-Google-Smtp-Source: AMsMyM7Tk9f/0FuUeYaZGWcelFNATIhGJURWqPeePSL+Soi2avX0ZBBW/I26q2y6leEgHhN03BP4 X-Received: by 2002:a17:906:1c0e:b0:7ad:c648:a4af with SMTP id k14-20020a1709061c0e00b007adc648a4afmr4801710ejg.277.1667174317890; Sun, 30 Oct 2022 16:58: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 e10-20020a17090658ca00b007269ef1872esi6467136ejs.897.2022.10.30.16.58.37; Sun, 30 Oct 2022 16:58: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=mZf3KYLQ; 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 31CA468BDCE; Mon, 31 Oct 2022 01:57:26 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05olkn2032.outbound.protection.outlook.com [40.92.89.32]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id CD6FD68BDCE for ; Mon, 31 Oct 2022 01:57:24 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WFH7TIpGevjIb0k3uLU9kMXEtHr8/opNLY+eTrco75Q6KxXAmFYKiAdChV9nMR+Vc/lOB4tQRSOEOUUy8dp3A8bHvirfLfOTp7cSiAj63lqyuzKbYRF5nPwbyP/osyFQ8/NARtZ29kPdDnElShZWWsG266SSLSIJwJYwUedgL+/CavoraQcKpnmQ/4vm2rojizrAU2iIIDLijkfaA/ya3CAAhMhdUVdG6gJjqBnGZ/HFQQgZNAWiDufQPS1sJJ8N2fjuDMoI475VMDOjS/JJQbCwVPbFmzEkHKBRFixcsAzowSgWCyyW1F/qun/FvCOBFit2iANOuB9FTUkJxbe87A== 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=sR7B/n4S++Zf+LdjPlD45nOKGaPALWvWeWAVeUXSyus=; b=I2p2LEXA1zHVC4gS7tVOjaxP/dOFJNt299Ua1d/K+pNQtp8PpiGG2riaD6YsaAcA7vdWX7o8Vk1cjHpqXfeSSUwFssz4FDkBtJHBQt8vKNp8Bi4n9BIinBRrlFxwU/Y188WD5wOediQvU8WhMiH5jGoivI+zgB8srbWEH3u+IMV3Xr8g/jg+qTdO4YLEf6+ri+Otm82nxnmb4vUHN9oFbeZKeCIk4NZG6931t8n/jU6AbG1Anmh0Q+haPxkZtSzYN+AI7n4UuzEGPydjWvuzt1ccJOMFhQvRf5vg2OargRpWdqZQot8elJmYJwavdNR6nXzRNHhnA8RN6VWMxrlWwA== 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=sR7B/n4S++Zf+LdjPlD45nOKGaPALWvWeWAVeUXSyus=; b=mZf3KYLQqGBRTvyZRhR2ekKCAvZ+sB6OYzBSYREDlGX45uHdAbB3gzNe8XnYsO5U0jrhcEoFEqIwDZvSgEvjbi1AaCWdq13uFMQR3iEhAEu8A+K25U1PJVskMevU/7iQMriMDkX6NVXqvTdB0a/GEnErO0nmbf/rWPaw7RbW6oncbA2pHA0whuadFV0l/NiXNgvKW7NUiAZODk5BuydklXCUbM5lGnRXP6yGHvz8ReHK3QtCah0iutOAOKk2WhXvznF3JKIe8W2h8GeN3QNVfAvdL001TZfY12MPgRQVqpbEieEYRBUCIuuIzzBm6YIpzVsi/lqYH23xAxk0yNPT3A== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by AS1P250MB0453.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:4a9::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.15; Sun, 30 Oct 2022 23:57:23 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::739a:8740:19c5:925c]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::739a:8740:19c5:925c%5]) with mapi id 15.20.5769.019; Sun, 30 Oct 2022 23:57:23 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 31 Oct 2022 00:56:28 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [E73hHwM+Oabcm/2XtsfYHeY6COOkE58gnQz1Z1GRk+k=] X-ClientProxiedBy: FR0P281CA0146.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:96::20) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20221030235631.11750-15-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|AS1P250MB0453:EE_ X-MS-Office365-Filtering-Correlation-Id: 08936e85-20d6-400d-21cc-08dabad27cfb X-MS-Exchange-SLBlob-MailProps: EgT5Wr3QDKxn/FJXV9AifVAmfFjhXa5IBl2L2a9UwnFo8B0c0HkByDIhDXSHWzLNAOQwtn17UNFtdgVaonBfn6M8AK/R0GchFbo7t+rBzDGPVUxxQ5Hpb1m873jcYaeau9DTl0FuTxTLHj5pMY8zIMYLmaDtulSinHb2NQjsZGu2fMn/34U7uaAhl/8qQheHT/2c7LtOvBUq30ooZDMM+WOW2X5ImQxNZxUOGRbJ8lUUSPNrCitE1QojZXQbM8SYZwibSKudyrlLQFDnjYrbG+y2MHIJ9W1EdrhmUfwqbs82Mo2Dh5AXSaSjVBVDAOkt1ULZJlSgL8JEdsjgjaBc9VsfMXeN4Bmhua16cYe5THXQMS74+JSl6y/v8mNNicq3mAOKrEt2jyue0zE+IwoIM99M3zUgLNAPZkxqYgwIo4lKEIY+ldqxvI/UN6vhR2A+OKHzPbf/p6S8+AR2q8t4G3PnyxT87JDwsarYNxOnGcO05M6hA0MN50gTIyk9H/nm+//plhyikaNgdo41wNMWQThXoEcZTXBFQcZVDJFSTk9PqVO0nWdbAeMTm1VBoYKR6yjDxtgEVtQQWk9m+O+I6EJwSxF592pMaM1ibuuKs6jnabsoKHe8H/j3ysv35AgVXt5KSrJO0VOIvCvLFk0CIeCLHB5Z+9XeniYx5Id5xnfqtoi/J80iUZb1Q0trnsg++x6vTZcbYdVvjby35b2g1+KU8gPyNChwl8xmkdKQQS0= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: hWtr96cf1r+GfPB7FHfo4rxmVQ1gl3n9oMC0zbtvlqlgMIVwQFakOaDNjFHGb758Gcut1eGJQUJmHdszkL+Kl0EH7r3XriwYp5OIq9vFqu/HL4OPG2c/J9g7AtCBbqp1IX+gZH6BPxX7ckUjwgZ0kagW4/cTFNhgcfq+uStHDtfE+r38UuCm/AjrLA23EcUYWMiBIGmwIAHBIiTfXSkts+mXNyekMZV+P5Ur2gGVwqk05GJNA8algt2aVX897Sf8OK1zOBqimxad/dqbB2+ck0YLSxD2n+dYWqEXy2n4OgVmDER/ShCK9yIewdJmexggUxAGvoE4EVVf7SY/jv7ZaXmk1BO1bZKv1GlRlQysOju8dcy2ycpxnKXNaiGTv1aBzqK5A17Tq3Zh72s0zhdIHbSbY4qBLBuGCZYM9Pno2sWvX60edRgproT9g4U00McRvOY0pgFKILbOMxmvXSXae2lwhZaqUHgy/dgIspB1WpszAxAiYosg0CFOA/7MHTW6GI05woiuyE6Tmswe7kX4A+MYlQyK50Bx7FR1YsEbLk7+J566gsiQYqlpt8FXFpKs6INohEEL+XzCKl8n+lDPdoEPRJguIU7Z01EuTydo8Eopea1PZsb+ZBYhM/PZswIo3M1QzHQm3GAhj0jYA5GCH5/OHhPtQUrobDV1/kG8HiPJ9EPkGhhBosQHbHhgAIHv X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: AEZxFpDKfglM4ZLZPaBy9UoJi755aeNFGOu7aUgaZMUBkPDbZcefaUe7Wv4Nns0y59h2R+qRRAv6XxsIshlmw/8Phit4d+qm4afOaN4LT+u+Vj+d35THkuhxPDKcO/8OI3nZs6YzoIwH2LaOnXLeSMh4vPjtacroukwZdn1a3XVmsSriTtLxKu7qFHhYaE/J0j4XGMKw5CICAjMk9RLPlpdSpCGhPQXTWngszFoDfrQv9u7ftfUWzJkQD+njD3LHTzAxLjPkjh/j9GZhEkDt/rBIlT+LaSPXZiK7KUvrqDHyQICR5WrCdbqqd30Qg+e231FilaajbpgU8ChoHb82Z4yTrN6+V6vxSB634LIly8fRSdvGn+Xytv2mHu8+Y0G7X0wcLXsT+Clv8So/SF4uA+wDN8r2A3m3mry7unpXDcEG6tPq8+TBJqWQUX1NgJLZNFb1ytOzSFKlzb5BaeGsQkSHr50OWfURju+BS1VRrUcR0kObRwBwOeVdIaTt5l1VQhgi1nQanHJR+qz3yxcQdKO3i3kM8AOB8I+S/7YZhtbLpwGmT3ryr0fK+KeImLHjBUmA7d4JbvWBqmzo1l1MhWGZ3mzdj15FvRUH0xyVaKpspygujHc+KSFxapqgandDUmtZX1hFjxfBW9zq5uzlO5dupxii85DzZoZBjWiqI3QVCFgf5tZ6nS/RaGIlKirAGHwavtep1txpl2wjFE3hTzHwHZToecXIMJyreJemH750nw3viKmYA5D7ELRHPWP3ZpK1tiqH/Cqek2OfEaP6F4DOmraTBzpxacleXNTks6df0rBlmL0jywm4OoaVL82DCEo3Z0dE3qQYLxAp7MPEZqd9Mscs1WuKrm0aE+Lri1fzRfXSNZ3f8hlVub35GGbg7pcH3ViAZGiwCP/4ZQ3ZK5WQtX9FEXJAgqvps/ozk+OnMSqxhAfYq7mJRjILRn5Z0F9ySPsK4QaF+bRNsmIfjDIjO63qdw4vKbvlVxX944QBr5Pns8cinXsentJhCmG8fLGDrnKaKzO92hERcQGP2U2LMpwTCQD3G0lN0p9HC4+3MX4EBSMU6oHrtxs9PAN4Zsab17dBb5Gihclqk3WTocFwddIAb0UUqyujBbWrKdFzeUvl+X9J8fK9HbjnWXKsUb0i+EedT4e8KYfhKBgmS7Y1qG87TuaThv8aUCoNXr77Lx7aJk3G8QgGo1Sx2Os55Uk/g6qzUYx87nhdfZuDJ4YTW6vBceoRa7W6j7EMYlFSYcwVGeZgMQYIQOq6JIsYs9ZnHQmZHQKhGZJmhH/CGcmMjMt9PylcX8GOczf/PDcLI6B+2nLa8jvKvxvwG01J X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 08936e85-20d6-400d-21cc-08dabad27cfb X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Oct 2022 23:57:23.0796 (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: AS1P250MB0453 Subject: [FFmpeg-devel] [PATCH 16/19] avcodec/vc1dec: Return early upon error 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: led39SwUDEzA Signed-off-by: Andreas Rheinhardt --- libavcodec/vc1dec.c | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/libavcodec/vc1dec.c b/libavcodec/vc1dec.c index 682b39083b..1cf42d831f 100644 --- a/libavcodec/vc1dec.c +++ b/libavcodec/vc1dec.c @@ -332,7 +332,7 @@ static void vc1_sprite_flush(AVCodecContext *avctx) static av_cold int vc1_decode_init_alloc_tables(VC1Context *v) { MpegEncContext *s = &v->s; - int i, ret = AVERROR(ENOMEM); + int i, ret; int mb_height = FFALIGN(s->mb_height, 2); /* Allocate mb bitplanes */ @@ -344,31 +344,31 @@ static av_cold int vc1_decode_init_alloc_tables(VC1Context *v) v->over_flags_plane = av_malloc (s->mb_stride * mb_height); if (!v->mv_type_mb_plane || !v->direct_mb_plane || !v->forward_mb_plane || !v->fieldtx_plane || !v->acpred_plane || !v->over_flags_plane) - goto error; + return AVERROR(ENOMEM); v->n_allocated_blks = s->mb_width + 2; v->block = av_malloc(sizeof(*v->block) * v->n_allocated_blks); v->cbp_base = av_malloc(sizeof(v->cbp_base[0]) * 3 * s->mb_stride); if (!v->block || !v->cbp_base) - goto error; + return AVERROR(ENOMEM); v->cbp = v->cbp_base + 2 * s->mb_stride; v->ttblk_base = av_malloc(sizeof(v->ttblk_base[0]) * 3 * s->mb_stride); if (!v->ttblk_base) - goto error; + return AVERROR(ENOMEM); v->ttblk = v->ttblk_base + 2 * s->mb_stride; v->is_intra_base = av_mallocz(sizeof(v->is_intra_base[0]) * 3 * s->mb_stride); if (!v->is_intra_base) - goto error; + return AVERROR(ENOMEM); v->is_intra = v->is_intra_base + 2 * s->mb_stride; v->luma_mv_base = av_mallocz(sizeof(v->luma_mv_base[0]) * 3 * s->mb_stride); if (!v->luma_mv_base) - goto error; + return AVERROR(ENOMEM); v->luma_mv = v->luma_mv_base + 2 * s->mb_stride; /* allocate block type info in that way so it could be used with s->block_index[] */ v->mb_type_base = av_malloc(s->b8_stride * (mb_height * 2 + 1) + s->mb_stride * (mb_height + 1) * 2); if (!v->mb_type_base) - goto error; + return AVERROR(ENOMEM); v->mb_type[0] = v->mb_type_base + s->b8_stride + 1; v->mb_type[1] = v->mb_type_base + s->b8_stride * (mb_height * 2 + 1) + s->mb_stride + 1; v->mb_type[2] = v->mb_type[1] + s->mb_stride * (mb_height + 1); @@ -376,35 +376,32 @@ static av_cold int vc1_decode_init_alloc_tables(VC1Context *v) /* allocate memory to store block level MV info */ v->blk_mv_type_base = av_mallocz( s->b8_stride * (mb_height * 2 + 1) + s->mb_stride * (mb_height + 1) * 2); if (!v->blk_mv_type_base) - goto error; + return AVERROR(ENOMEM); v->blk_mv_type = v->blk_mv_type_base + s->b8_stride + 1; v->mv_f_base = av_mallocz(2 * (s->b8_stride * (mb_height * 2 + 1) + s->mb_stride * (mb_height + 1) * 2)); if (!v->mv_f_base) - goto error; + return AVERROR(ENOMEM); v->mv_f[0] = v->mv_f_base + s->b8_stride + 1; v->mv_f[1] = v->mv_f[0] + (s->b8_stride * (mb_height * 2 + 1) + s->mb_stride * (mb_height + 1) * 2); v->mv_f_next_base = av_mallocz(2 * (s->b8_stride * (mb_height * 2 + 1) + s->mb_stride * (mb_height + 1) * 2)); if (!v->mv_f_next_base) - goto error; + return AVERROR(ENOMEM); v->mv_f_next[0] = v->mv_f_next_base + s->b8_stride + 1; v->mv_f_next[1] = v->mv_f_next[0] + (s->b8_stride * (mb_height * 2 + 1) + s->mb_stride * (mb_height + 1) * 2); if (s->avctx->codec_id == AV_CODEC_ID_WMV3IMAGE || s->avctx->codec_id == AV_CODEC_ID_VC1IMAGE) { for (i = 0; i < 4; i++) if (!(v->sr_rows[i >> 1][i & 1] = av_malloc(v->output_width))) - goto error; + return AVERROR(ENOMEM); } ret = ff_intrax8_common_init(s->avctx, &v->x8, s->block, s->block_last_index, s->mb_width, s->mb_height); if (ret < 0) - goto error; + return ret; return 0; - -error: - return ret; } av_cold int ff_vc1_decode_init(AVCodecContext *avctx) From patchwork Thu Nov 3 02:57:36 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 39118 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:999a:b0:a4:2148:650a with SMTP id ve26csp249173pzb; Wed, 2 Nov 2022 19:57:48 -0700 (PDT) X-Google-Smtp-Source: AMsMyM7YQHY6efLv6//uG4zD2at8y0SlDEv6X2jzltsK9gzQGyd3n/BzzCCwpClz1xKLh2zcRkP1 X-Received: by 2002:a17:907:7da6:b0:791:997e:58fc with SMTP id oz38-20020a1709077da600b00791997e58fcmr27246540ejc.385.1667444268711; Wed, 02 Nov 2022 19:57:48 -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 e5-20020a170906844500b0073dc32ccd9fsi14187433ejy.104.2022.11.02.19.57.47; Wed, 02 Nov 2022 19:57:48 -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=KttVQi0M; 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 9467168BEB8; Thu, 3 Nov 2022 04:57:44 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-oln040092074031.outbound.protection.outlook.com [40.92.74.31]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 99EC868BD35 for ; Thu, 3 Nov 2022 04:57:37 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Alwq1jYwEFxunLunulwkkIBnUBWIDXKKV4suDJnxQjvQTybyIeNn1/lXCB0J/yDF46y/T285ycUgQSnFE1ShFlVZSozFuufBaMog9on5j7GDgVPK/BEiWScXrfNtFblg3pBlPk8QEDJGx/7BxKwMWTgms5iR2dwVjhnwm1tae2DJlhshKjtI9v09TlhHG8KjVwcSaEHvNmMt2TT5miEuB/7fb7EYgbI/iHa/yWgT7QRquXGRxyZRS2ox6Wbv87OnVZ+45SJ8vac87PxX7vAYVRyuf+YgF7vCrHc1lRGB30enBf9DnsKsKWnRhBsTC0SfOp08CtFuxoqaNTxSZRyy5g== 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=1BkAh4I0NLDaZDnRnwK9Jrzczu9KdIWHt4NR7hpDFKY=; b=k/3L2CwCWIdy8L/llak/qcm6i+vzL5DuK6S5jlkyHwTW6TzWh8bqwVlrY4rK1i3ZI8zIAk6Xk91NPj6bRNDdwe5cvW06nDgoFp+DYqh1DZoAwj3zce+q+5B73lcsBn7+yOItVguXWtSWDrB1NwslQJXYbDuT7egPtp/yYSEU4k1xP6AGbsyppuQV+38bs/SBxpdqvgxadllVH0Wao0e+15Qjz1YUNiIeNSqTVOrXJHimUeMIOBrQn75Z3wzbSWz8N3nyQCfTNV0wMIcdbdJAETzfnMqP0DPmGeaYu2/wj6+QWLcJxkokzXKWuoqaDOnovsqOpFDYidL13gqlo5JB9w== 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=1BkAh4I0NLDaZDnRnwK9Jrzczu9KdIWHt4NR7hpDFKY=; b=KttVQi0MBUxAx2pHx6wKiFe8CzI2N7g/y9X3efUj0jT/qUleitlCiwQ0VjZTBhCFISFQ1ygXaet3LL0tIWlMxfSfDAZ/rP8nQf71+HFkUWCIQNstDdwsmBidXxo81Q+dqUmUfJyOJ4yyBLEUKOl3yG9le0yyT72Q7kViw8cJjN4Bmyb8k3kS6v9DuHRPrgilK/VopllAuqMm62QWqpSF2sGSEGUjgRQaN4yfz2aZNoI1OYCDuvRzrOiDn1YnDfx901fNyIQlLX1Qef/xi5Z1DPnKy8eGASOW9D2V3ETLF30xIGlhrpDDJFg4jX3vN6J21+08axQu3kWM0jhQ0Ca1cw== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by PR3P250MB0257.EURP250.PROD.OUTLOOK.COM (2603:10a6:102:17c::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.16; Thu, 3 Nov 2022 02:57:35 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::9587:72b8:e3ec:c4fe]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::9587:72b8:e3ec:c4fe%6]) with mapi id 15.20.5791.022; Thu, 3 Nov 2022 02:57:35 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 3 Nov 2022 03:57:36 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [2p/hzvJkfmQ9IuDGmh5zlW128IfNK2h6mdJ5FqCoyho=] X-ClientProxiedBy: AS9PR04CA0125.eurprd04.prod.outlook.com (2603:10a6:20b:531::16) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20221103025740.620315-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|PR3P250MB0257:EE_ X-MS-Office365-Filtering-Correlation-Id: a1e5e883-711f-42d3-57ed-08dabd4728e5 X-MS-Exchange-SLBlob-MailProps: ZILSnhm0P3mWo+RneW5ABDpC3jepZYKOi3nIYvVi4H0nPEqC4/3RRRhGibTNKcUJC5okf52Y3zzYuNFeVgjlvL9+kGTE7R/cTYrrzENt+5mHYiiTnOuVDZQ6nszDBIOYKUGY1jGEQuQISRHq1fGUKpUUjUxN9faUG9LmryUirrCuJuSFPwxaEEhG0LoW3qLz2rZ+AsXub2Nl4JPNqtBXRDDZBYm6IrlBhl4N1Qck0ixF4IX+b3eUAZIM5NzW9OisUcfIEBMlUHrsvROCUJYCd/RzN/diY6Jxv+4A9hTHd0CBBbQMgNq4woGj1GNbHD7kRFWb/T2cStB+nqubx2rqRDwjiU89dHFe7EgDpqOyHNkAJM6S7BoueEVWv0V9Kthk0LO+q9awKB5Np1eZkNbtROlpVXXWarxfKVpwyotLViWCETMA73EgxixLtevrLxWOfTaTOMJxaxmVbRdSBxHhUaSeiIEGWFiVP3qV3kbSV7UG0cs6tgJjIH237blh4r/Phj+WhtY5dhWB9Bb9w0rsTQVJzfYWyHeEHsLtByDtIQQybIQD1wQ2z29UieULUhjCDEb6dFclb0uVSIZheTvJHvdS8g1svitaprtAvcGYqsfLkTVj70AfbHx/dbiALklh8SAsIqf6RCB02jQIWcdpWzX7KXBPaJ8gqqXeqswL6vgO+4zf1BxG2y/RC0BlrptAntSemkEqtqDU92FNoSknhV+aKaAd0DJBvAMfC2ZFjUrm5rzzEQXEve0Qnl5CbR52OxaLGd7NbAcLYYgKWg9Nb3azq/wyhQVl X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: GcdJIWAbiVPW/2VFU2jk3rZXK3wW88tbDFueJOGuXRv1iYmeqTnMN8sedABNPLMsmot+rp0AIQte7FSrDv0r35Ync98NhZegh/BAYZeij75SuiNBNSL4Kfa4AdUgm8EHBIDjkoGYgBBpKhzS5rVfUfvOxs6T+n1tp+o014bERk1j5vDconirWiymR0vLHjLyxWH0yzH3iPtzqtPhL/QVTnlUhoQNoL9PGqjM3PPUgjJh5fQPSg9k3zZRkJDXlQt+IdtrfixBZ/D2z84NsneZd6ncvCiENvCsiiHPNBWlYuAZFQ1fFUBg56cFqyR0J/o4/TE5DaVNzsyUOMtfI8iWGwEMFdLQm4Y3hQIYfh3cR+XPAUPrB7ZYKNsbaDQq22/fCgKdlLOkUZeOoQyAvRWv2spednga0060MMaYLThnXpxcUn4K3QKtOiSilgkSWtGovWswhxt02gsqvi0OTRAcOD2PDAIBMSPMn7dJ6wO8NI1xDRvU4tgv9oT3W5UUESmmWLWiyq5/AvFqvAINEXNu323b51iNuUkx6AzaVG0ghFaLHU1Zgmd+CN6ThVgqDHmrSFyhNITjeyalIz3gy9ig/pDC7G0gryZg8ayYrXH3fCrA9KOIx+Ss3BqkZ9z/zAke7oRnZbvIo4jKJ0+9VTWTLrY60W1Yyc1wMQ+959zjESTdeACeAr6cyTsVbHFWoM3a X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: iQI6yGrFQFrrEQCiJkoF0iKIJFAY6060XpkmjeanjF9mUGQdwcLVMW934NHSTTMGVh47v8nwuLEkUZn56DlDXgAh5WhpnK6uf+osTLFcI1FW2DY+DYKeSBnYNfnPz9eJrDjyE7CF5yAdhg2nBxv32W32ttfDf2WJtv55+6UaJ7kbNPGkVBn84dLg6M6ucxwt+J/brUvpgxmgH6Xbdh3eJeLSMrYbk2eC3v6uJzP30O1qJa9e0zcNAOfKjpaiCoTzv0XhyxKS22wRn6XUBNpZLwYmErrH9NIMKhy0yFmDS4z/Ql5FKPURZCoevpUL+aEg/yDGFJafQTIxrLxsXPBl5u2dh/Wej3BSrtDlS8CUGkQajyTJuAbFKxPeJUhG6kSEpwJW6wbJgCE505HokgUkK8wRC9gqX7Q8m5x7KTkEELVzGRmuilqqgRPM8HM47mjfxtfEnO7BYel0ZVGZj+x+xKsqYKTmlFPErv7ImBO+Ee/wT7PiQMdCGk7jGRhU8PRnvsyREnQCZg7V+Reejx05pnRas1R1vS1WFHXxR50CLL9wOkd9Mu545FpdddsJHxXmBvG2ti/s6QYNvJoqswM69g/YScvV36/1F6+fohPx+dqwmlK3FDjCARjqwR2bHtEECPsU+tOjGDSwKDF324H+DBqdn7Wimbg+QMDJTLimupQFZPpsUf322S/1tbZS6CxB+t5xX7ce7E/hbyrE/HiKHz29JoaQ2TkxKi8D3HdJITG8Ln1YhVw0gP1Mmh1GnRnHBSbCXNo4gelH0fq1RX9ZMZQvOOnabhCS6jbzUpCvQdc9zSuqXN9/C1ZaR6wobRlTMZbcbuhdVs+KW9HcAbbjAK3Kg3+8Qd70rH/botYWxnmNJmydwIUvhtPmeEhDNWQEsiwZPtVAOgc5E0DPmXqn1wfzUv9ge/TGzl+ySEQ4UWV1O2eGFSTDFd+UAh65GEE6foKE34VmbonO6KHBC5ibeECw8pSSNudl1/aYDq/G4Y5jfjSCBmAdirOHtoA0hzW1fQLQmFD1zcUx0kY19/4qouc9lISUfl5ivdv4p7Y7iJWGzHqA+ujRhdYVocVAgoeWsIFRQ/rEzBZVYtpvf/2SBNt5qqmW1vNwBShsTdVFemQfYym+sf8tGGqfCPzNg19C/AWslHyRLP1bXdHqb0xdEfe8PhpLktekc3MimGqPtwSwOPweQm8sYKAqxpVrscCEFGZlY/xGmC2oGBi9QZDWx/OyffivbIHlvAZqHavZXp3NNWnz14YgqgG4sgcQhGBRfo7QRTrr4pUG7apLkTf6P/UZhLHQOtOaIdRRa/LIB0LXbBeqpGTzexB1OrsyZv7H X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a1e5e883-711f-42d3-57ed-08dabd4728e5 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2022 02:57:35.5459 (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: PR3P250MB0257 Subject: [FFmpeg-devel] [PATCH 20/24] avcodec/mpegvideo_dec: Don't use MotionEstContext as scratch space 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: F0xHTRrXZhw/ Decoders that might use quarter pixel motion estimation (namely MPEG-4 as well as the VC-1 family) currently use MpegEncContext.me.qpel_(put|avg) as scratch space for pointers to arrays of function pointers. (MotionEstContext contains such pointers as it supports quarter pixel motion estimation.) The MotionEstContext is unused apart from this for the decoding part of mpegvideo. Using the context at all is for decoding is actually unnecessary and easily avoided: All codecs with quarter pixels set me.qpel_avg to qdsp.avg_qpel_pixels_tab, so one can just unconditionally use this in ff_mpv_reconstruct_mb(). MPEG-4 sets qpel_put to qdsp.put_qpel_pixels_tab or to qdsp.put_no_rnd_qpel_pixels_tab based upon whether the current frame is a b-frame with no_rounding or not, while the VC-1-based decoders set it to qdsp.put_qpel_pixels_tab unconditionally. Given that no_rounding is always zero for VC-1, using the same check for VC-1 as well as for MPEG-4 would work. Since ff_mpv_reconstruct_mb() already has exactly the right check (for hpeldsp), it can simply be reused. (This change will result in ff_mpv_motion() receiving a pointer to an array of NULL function pointers instead of a NULL pointer for codecs without qpeldsp (like MPEG-1/2). It doesn't matter.) Signed-off-by: Andreas Rheinhardt --- libavcodec/h263dec.c | 8 -------- libavcodec/mpv_reconstruct_mb_template.c | 6 ++++-- libavcodec/mss2.c | 4 ---- libavcodec/vc1dec.c | 3 --- 4 files changed, 4 insertions(+), 17 deletions(-) diff --git a/libavcodec/h263dec.c b/libavcodec/h263dec.c index 90dd32bd3a..5f5ecfdddc 100644 --- a/libavcodec/h263dec.c +++ b/libavcodec/h263dec.c @@ -597,14 +597,6 @@ retry: avctx->skip_frame >= AVDISCARD_ALL) return get_consumed_bytes(s, buf_size); - if ((!s->no_rounding) || s->pict_type == AV_PICTURE_TYPE_B) { - s->me.qpel_put = s->qdsp.put_qpel_pixels_tab; - s->me.qpel_avg = s->qdsp.avg_qpel_pixels_tab; - } else { - s->me.qpel_put = s->qdsp.put_no_rnd_qpel_pixels_tab; - s->me.qpel_avg = s->qdsp.avg_qpel_pixels_tab; - } - if ((ret = ff_mpv_frame_start(s, avctx)) < 0) return ret; diff --git a/libavcodec/mpv_reconstruct_mb_template.c b/libavcodec/mpv_reconstruct_mb_template.c index 5023fe58ae..6f7a5fb1b4 100644 --- a/libavcodec/mpv_reconstruct_mb_template.c +++ b/libavcodec/mpv_reconstruct_mb_template.c @@ -145,17 +145,19 @@ void mpv_reconstruct_mb_internal(MpegEncContext *s, int16_t block[12][64], } } else { op_pixels_func (*op_pix)[4]; - qpel_mc_func (*op_qpix)[16] = s->me.qpel_put; + qpel_mc_func (*op_qpix)[16]; if ((is_mpeg12 == DEFINITELY_MPEG12 || !s->no_rounding) || s->pict_type == AV_PICTURE_TYPE_B) { op_pix = s->hdsp.put_pixels_tab; + op_qpix = s->qdsp.put_qpel_pixels_tab; } else { op_pix = s->hdsp.put_no_rnd_pixels_tab; + op_qpix = s->qdsp.put_no_rnd_qpel_pixels_tab; } if (s->mv_dir & MV_DIR_FORWARD) { ff_mpv_motion(s, dest_y, dest_cb, dest_cr, 0, s->last_picture.f->data, op_pix, op_qpix); op_pix = s->hdsp.avg_pixels_tab; - op_qpix = s->me.qpel_avg; + op_qpix = s->qdsp.avg_qpel_pixels_tab; } if (s->mv_dir & MV_DIR_BACKWARD) { ff_mpv_motion(s, dest_y, dest_cb, dest_cr, 1, s->next_picture.f->data, op_pix, op_qpix); diff --git a/libavcodec/mss2.c b/libavcodec/mss2.c index 2469718c8f..1d1ed11f54 100644 --- a/libavcodec/mss2.c +++ b/libavcodec/mss2.c @@ -855,10 +855,6 @@ static av_cold int wmv9_init(AVCodecContext *avctx) if (ret < 0) return ret; - /* error concealment */ - v->s.me.qpel_put = v->s.qdsp.put_qpel_pixels_tab; - v->s.me.qpel_avg = v->s.qdsp.avg_qpel_pixels_tab; - return 0; } diff --git a/libavcodec/vc1dec.c b/libavcodec/vc1dec.c index bcfd2bae0b..e7ad540d84 100644 --- a/libavcodec/vc1dec.c +++ b/libavcodec/vc1dec.c @@ -1060,9 +1060,6 @@ static int vc1_decode_frame(AVCodecContext *avctx, AVFrame *pict, s->current_picture_ptr->f->repeat_pict = v->rptfrm * 2; } - s->me.qpel_put = s->qdsp.put_qpel_pixels_tab; - s->me.qpel_avg = s->qdsp.avg_qpel_pixels_tab; - if (avctx->hwaccel) { s->mb_y = 0; if (v->field_mode && buf_start_second_field) { From patchwork Thu Nov 3 02:57:37 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 39119 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:999a:b0:a4:2148:650a with SMTP id ve26csp249213pzb; Wed, 2 Nov 2022 19:57:58 -0700 (PDT) X-Google-Smtp-Source: AMsMyM6847GTjvmdq4nXHf/amk2C12oSOjs1Rtnzhn1swcWCvclOVCop3MqijgiaeOo588XZkk7G X-Received: by 2002:a17:907:70b:b0:740:ef93:2ffb with SMTP id xb11-20020a170907070b00b00740ef932ffbmr25664933ejb.93.1667444278013; Wed, 02 Nov 2022 19:57:58 -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 d11-20020a50ea8b000000b0045d5e3c7f44si14944636edo.180.2022.11.02.19.57.57; Wed, 02 Nov 2022 19:57:58 -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=enzkluKX; 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 A0A6C68BD35; Thu, 3 Nov 2022 04:57:49 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-oln040092074031.outbound.protection.outlook.com [40.92.74.31]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id BC78D68BEC4 for ; Thu, 3 Nov 2022 04:57:42 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=euj25ONhrEESNkmbxDwiRTCUWbT2cJUInZkde3zRbMl8aGUEuE0z2UlwRxQhQuzknTXmFmmPDETV5DfkcRB2X4GGd+y+voSps0iczsKv4jqMn/JCcj8j3uKp38jRVYKNSLfcdDBW6q2iyGcT4ltv8Owt+pImxFLc01aXkwPUILXGFOUvfg6+/6SnDwkeC4f+wlDm5CaEzoAaRCDP4KpKDSd3PNBxcE/nv2m2ocUNPg0XKfHu9+cVaj98xcHhWGjzFIZwJx7AI29AODU2a1/wgj80R7di5xNQEHX9hQ2eT+PRnLq+c2RHahE4jCNkUVkbbfzfxqGdSw0uHuPcbfbhwA== 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=4KPOJH/npohqSXPSbKsXC2vxhVsvxPbfC08g+3pX7Kg=; b=aMbGgfdDXqe9+bfh2TbFWtL7ztxrkqgTBENRKyZsAZuUIrciGLaRUTxCFfKWqMqkgPHQLvlFP7M7RFW8R0DASZgm5pYvyjnKKX+FCMKQFulDi5MY/QNxNv8rH5QjJj8prtNpalNJPP3+pEULwxf1P1gZelOVuAt7hHdcKVz3B9HQvTknNq24gclFgLYifTNGKqQBiHb2Al/0CCVD+jy1Q2WatNA/gw/ayzK3zDw35vHNBNGr2W0CaLKtDUx/qDz/w+2LGtvuhD7AchsXk5wcdtt0Rz8XKOHYZx5ZotyTgRiSJDS2mLRk0di3k49P+Q5cpO8mNZOM4kGbSVz5jpETtg== 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=4KPOJH/npohqSXPSbKsXC2vxhVsvxPbfC08g+3pX7Kg=; b=enzkluKXwx+yb2ObmuPTZoOwo00ZPT7qo/fHT99skQ84WLPuCNdE7sa/3tjUjNxhvnFTkGa1WE1mTA4dMVRoTf8p9tshjIy0sfKv6wFSVXnco/yDmD8yS3zEsiRAwsbECGSYhOKVqb+bgaMiHFQdcKAvQ88kJV8JTY7+UDX9KToLXlmo+su+bVQ2YMjEpuJpi5sOX5n/Xz7X4PfM5uYN67EnSi2Fv7ryuN3YDEujQRD2AkWsGXY7r07WCwkXAZwYdVrtWdp9Z2t8PnmxL2fstn6Pm09la/zopnOV6K7TTrnm64x2rMU1+D11leTALMeoXAY5Rfx+2npp964swOCEEg== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by PR3P250MB0257.EURP250.PROD.OUTLOOK.COM (2603:10a6:102:17c::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.16; Thu, 3 Nov 2022 02:57:39 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::9587:72b8:e3ec:c4fe]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::9587:72b8:e3ec:c4fe%6]) with mapi id 15.20.5791.022; Thu, 3 Nov 2022 02:57:39 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 3 Nov 2022 03:57:37 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [zuwcQG5J/3BtaziU60fqu0c/4fokWpzsj1lFsUbBoMs=] X-ClientProxiedBy: AS9PR04CA0125.eurprd04.prod.outlook.com (2603:10a6:20b:531::16) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20221103025740.620315-2-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|PR3P250MB0257:EE_ X-MS-Office365-Filtering-Correlation-Id: ebc215d6-bb0e-42c8-8004-08dabd472b8d X-MS-Exchange-SLBlob-MailProps: ZILSnhm0P3mWo+RneW5ABDpC3jepZYKOFGm9FHRBaLnC+zML0OQcnN4tiN6YFsJXPYbaerNBQCIc/O/rcrVoINI/bqL0ztTiDiWFia4tSghQPePYexricGDmOLc+uaeJj3Tw0rtzS5Pt8KWLMJnQOgRf25f3V0d+QY3aiXOH1+Y02Ljn8YOkb9nz8FmfGnfMstUMDKm0XWfulaBJ3zRc5PjzDMms3uiyBGNiDQ1MTqhGcmRWyUsLzz+d5WC1XRgFHD7w81wfe6QaXnUZc0yTrn/RBwqy5rWpPMZx8Je0Vs7B1IBpfvgfKghfUhy9FLO/zmdDS8f2FQsDJcvEROV5Fc9DHzsL8IGukwnGojMIAw8aD5dWkLK1+Km1ARDnvPa5au6jA9xT5T54wu+jS+YPSyFT73Z8IS9FZPwk3i1bE+Ruckiv35E9c/9dTutAqqocY+MeSeCLeSANnbuYadgVce+d9Xj1anVgXoYTtwXMBZa1Zg5w3Do6gjpcbcVBhgt52TZEDizaGDGKPrJDPF2a8CTbgZMzavxAhAL2JkB6UHVd1PvcfWKZvAHtBYAU8XRRPxK8lABV3cs9Z2Zx4rVX5SmgH9Na7t4Y7g2GTzhEAzE1gCwlChNYI+5rteVbrofECo5nIxS8IqS6Jqz/kEMc9diUS+oQaAZbqEI8Tb/qV+UxL6+pEt8oxlcBZcROro7NjdXaF/q5ejI9NBtlNA8wpEVGylUvjac+h1KtYNWaVcqWrbayLBokYuM+5ZH0xtRebvGM8EzS3GO2VBiLz3jbMfB6BMB+u9n4 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 7i0O/Z9FGlwMwB1QUhHa4mTXFLP7SpbRzQAojOL7bNowu753SbM/lsCuqw92H+yOCXw4Bv7qPmqvuVU/uLWJb9ayC1NV+mEZ/iX1ilBWtmbHtgcFCiV6nqlI3LB1v0stQtbK1SlN04/ABjJH6afrzdDa/9X3hUcPO8nG0UTU+Hzs70WFCbBOXEyow0RdyjRylknttnqBVGlmkvLfRSvOiJbVGpAhaAPgynIp/4DnxpIO6eBgfawqA3ZfrpJg5ryF9udJxtsEsrUs5J/+qVQo0xwMk878/a7ZY5GmKyNvIl2Xie2ip2OBkZ56YNHndndm1iXv4f/cGVPhuG9Bw2L9dflZxheEy+2HkL3tz3Fsic+NXUHWrjuAEUw7e6mkITXOBAmwjr23MB66d6os7eaNbSAkzeGSSfpLgXBHGJOGpI6lYTOnBcMAAviVBX+tVvpGaRjkMheuY1tL1n9AEZoS5PZxiBcRi5lFhqXbxTmLyr+4/5NwEod2tIU8gYSCnRCjEtiy66oNjkjHW9wTjedzBXAncPAGjoU2rsFI+VIY+V8MnCMjLa5X9d373o5Iui9KvgQkgk2AILn0FaF78gJXOKgMvy3cgIpVCHD1GwrjxuvCjo2GuBUggG88ZwT9XUq6FOJ6+jlV97AngAd0D4igy0uKDTuQjIsOc5vpV+CZqNubiTh9T+JN2Wz2Wj1swNr9 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: tndndbY618Y9L7NtPXQFMt4BQ5OxML0NMbrtza/A8NYEpyXU3swnQ5GVcTFM77TDyKBIjIBjKy1xdrqrHmKKYuTVYZjEmeUazF9ROPjEYjkpy3sOfrTnx8kFQLZIc2v396xdnC1LbSR/6/vFdVSdZ74m6nItKuxycjBy/fYB/eCSQ9e39h+ADWpJQDx+6R1shGokQqKfF+1SE42FiLUA4nvJS8kAejvPQIpTey/CKOK24QKrYlfOo8cW8kqVIAenBMS8Fpp3Jlr3Vcyl6r/FXD39s13MtfMZOrYVXqg1X72XFAgFqCNNVgnoMW6cH8FQMwfYMcPLh2ZQ2NM+ausX++SiuI8emeh/E3pL/A380cqXLfTjNotDZPxCJx2a+Sp6vqlxk480emryPPxw3TRKvbvSIT/T65TvgYKR5i9SVHsTRs39AM/rHCV3OuZAy2oMqrzrho5VH67e3fRgMeJKJ6FZbKlzzP6aeLwTmCBkkWlk2/sKOxXyjKNSfwDLFAiVRnvAo9umx6mm/aQ96xucq0Zuf3ZafEJB3f49wOUiCd44sy3JcY6EBfg+QvJIgFV9owhOiAsIqUbE4kVoc79dkoCnwTwyUvQrluCknJXQFeDeo7Pfm5wQURycKQJqyAbyxROIeh5kSAw4SJUnB8Bh/ufBT+WOUtPzLjcpIL4LTiDCgQpwjj6tsRugKwn/dQK/rftEPLdl3TfB5Xu6pfUWuy1W0wnpyVAlMVwa7hhHN8ZZUup6UBT8DZyY5Sf0G6dt1I5jT6EAEl40h4sdF1WigCUAFzTsCMsUNlZ2tnObh4GkudGvESKv60YSUeIlq8cD1I3iBRSWXuOf8u0FfSesggpYpWHRNpxKJdtOn8KF4ansqB58FxzatHbA+VVldGSMWGbCAJvh/3DRspnIsAtmhI9ZebwaMw2f0WCMF8YoY88cFcBTq3gnEH1I7lwmldC5CQoPG/bRxhB1/sxcjX3TN3OnpDi9hClcHyUN/MP9JDmcGKObMcmd4D3rkCwP8RYylUNmPowjdvrQfBE75BSAT4BbzJHZ6AeKp3pWkZxrNaRnSL5ZOw0MDHg/DsLNvKLHGA8x2TVrsSc2v5/9Hg8JRIRVA5Yg8zcixQzX0qzF0CkHEIGTGjgJW+rDKz7ywKRRAthWwIWV4YDN2GYWIjQbeejMm+shm1NcUBkkqpiypgvHQ5A2doFCYu/PwKWIZFsr/Zh7Yq7OYO6L97TMlK1xo06JvRr4lt4tssYro0Rzx6Egi6+37PnIFPLLa8U+HKL6CcuiphWhpFZiqpyiFIraWkgWoZkftZN4QuyanPqcwOwwqGuH8W1QRCSD+dFUgeJS X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: ebc215d6-bb0e-42c8-8004-08dabd472b8d X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2022 02:57:39.8929 (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: PR3P250MB0257 Subject: [FFmpeg-devel] [PATCH 21/24] avcodec/vc1dec: Remove VC-1 decoders->H.263 decoder dependency 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: SoG1OBsugb/k The only thing from the H.263 decoder that is reachable by the VC-1 decoder is ff_h263_decode_init(); but it does not even use all of it; e.g. h263dsp is unused and so are the VLCs initialized in ff_h263_decode_init() (they amount to about 77KB which are now no longer touched). Notice that one could also call ff_idctdsp_init() directly instead of ff_mpv_idct_init(); one could even do so in ff_vc1_init_common(). Signed-off-by: Andreas Rheinhardt --- configure | 2 +- libavcodec/h263dec.c | 12 ------------ libavcodec/vc1dec.c | 32 ++++++++++++++++++++++++++++++-- 3 files changed, 31 insertions(+), 15 deletions(-) diff --git a/configure b/configure index 0822498efe..a59e9a898d 100755 --- a/configure +++ b/configure @@ -2981,7 +2981,7 @@ utvideo_encoder_select="bswapdsp huffman llvidencdsp" vble_decoder_select="llviddsp" vbn_decoder_select="texturedsp" vbn_encoder_select="texturedspenc" -vc1_decoder_select="blockdsp h263_decoder h264qpel intrax8 mpegvideodec vc1dsp" +vc1_decoder_select="blockdsp h264qpel intrax8 mpegvideodec qpeldsp vc1dsp" vc1image_decoder_select="vc1_decoder" vorbis_decoder_select="mdct" vorbis_encoder_select="audio_frame_queue mdct" diff --git a/libavcodec/h263dec.c b/libavcodec/h263dec.c index 5f5ecfdddc..da3c9899e3 100644 --- a/libavcodec/h263dec.c +++ b/libavcodec/h263dec.c @@ -63,9 +63,6 @@ static enum AVPixelFormat h263_get_format(AVCodecContext *avctx) return avctx->pix_fmt; } - if (avctx->codec->id == AV_CODEC_ID_MSS2) - return AV_PIX_FMT_YUV420P; - if (CONFIG_GRAY && (avctx->flags & AV_CODEC_FLAG_GRAY)) { if (avctx->color_range == AVCOL_RANGE_UNSPECIFIED) avctx->color_range = AVCOL_RANGE_MPEG; @@ -117,15 +114,6 @@ av_cold int ff_h263_decode_init(AVCodecContext *avctx) s->h263_pred = 1; s->msmpeg4_version = 5; break; - case AV_CODEC_ID_VC1: - case AV_CODEC_ID_WMV3: - case AV_CODEC_ID_VC1IMAGE: - case AV_CODEC_ID_WMV3IMAGE: - case AV_CODEC_ID_MSS2: - s->h263_pred = 1; - s->msmpeg4_version = 6; - avctx->chroma_sample_location = AVCHROMA_LOC_LEFT; - break; case AV_CODEC_ID_H263I: break; case AV_CODEC_ID_FLV1: diff --git a/libavcodec/vc1dec.c b/libavcodec/vc1dec.c index e7ad540d84..5cb4c544c9 100644 --- a/libavcodec/vc1dec.c +++ b/libavcodec/vc1dec.c @@ -405,6 +405,20 @@ static av_cold int vc1_decode_init_alloc_tables(VC1Context *v) return 0; } +static enum AVPixelFormat vc1_get_format(AVCodecContext *avctx) +{ + if (avctx->codec_id == AV_CODEC_ID_MSS2) + return AV_PIX_FMT_YUV420P; + + if (CONFIG_GRAY && (avctx->flags & AV_CODEC_FLAG_GRAY)) { + if (avctx->color_range == AVCOL_RANGE_UNSPECIFIED) + avctx->color_range = AVCOL_RANGE_MPEG; + return AV_PIX_FMT_GRAY8; + } + + return ff_get_format(avctx, avctx->codec->pix_fmts); +} + av_cold int ff_vc1_decode_init(AVCodecContext *avctx) { VC1Context *const v = avctx->priv_data; @@ -415,7 +429,12 @@ av_cold int ff_vc1_decode_init(AVCodecContext *avctx) if (ret < 0) return ret; - ret = ff_h263_decode_init(avctx); + ff_mpv_decode_init(s, avctx); + ff_mpv_idct_init(s); + + avctx->pix_fmt = vc1_get_format(avctx); + + ret = ff_mpv_common_init(s); if (ret < 0) return ret; @@ -578,13 +597,23 @@ static av_cold void vc1_init_static(void) av_cold void ff_vc1_init_common(VC1Context *v) { static AVOnce init_static_once = AV_ONCE_INIT; + MpegEncContext *const s = &v->s; /* defaults */ v->pq = -1; v->mvrange = 0; /* 7.1.1.18, p80 */ + s->avctx->chroma_sample_location = AVCHROMA_LOC_LEFT; + s->out_format = FMT_H263; + + s->h263_pred = 1; + s->msmpeg4_version = 6; + ff_vc1dsp_init(&v->vc1dsp); + /* For error resilience */ + ff_qpeldsp_init(&s->qdsp); + /* VLC tables */ ff_thread_once(&init_static_once, vc1_init_static); } @@ -702,7 +731,6 @@ static av_cold int vc1_decode_init(AVCodecContext *avctx) ff_blockdsp_init(&s->bdsp); ff_h264chroma_init(&v->h264chroma, 8); - ff_qpeldsp_init(&s->qdsp); avctx->has_b_frames = !!avctx->max_b_frames; From patchwork Thu Nov 3 02:57:38 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 39120 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:999a:b0:a4:2148:650a with SMTP id ve26csp249261pzb; Wed, 2 Nov 2022 19:58:07 -0700 (PDT) X-Google-Smtp-Source: AMsMyM6rqAIe9XRcUUGLpUmxyEy11yYDogeGSaDq7ahkMNtO7wv4Q+kVxmxAWZr2ORKoG8t88Gf0 X-Received: by 2002:a17:907:8b18:b0:7ad:d1f5:2f80 with SMTP id sz24-20020a1709078b1800b007add1f52f80mr19361557ejc.661.1667444287187; Wed, 02 Nov 2022 19:58:07 -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 hd9-20020a170907968900b00741c0bd7061si21110089ejc.644.2022.11.02.19.58.06; Wed, 02 Nov 2022 19:58:07 -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=GSbM1kZg; 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 9D64068BED8; Thu, 3 Nov 2022 04:57:54 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-oln040092074031.outbound.protection.outlook.com [40.92.74.31]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E118D68BECE for ; Thu, 3 Nov 2022 04:57:47 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Crox2JlBPbRVYE32bMU0DqkVMBpp9fPKSp+qCc4REbb6WTINuZ0duyFWsZ/I9Rzlf2CkQXYsGYP1vaXCdXcCsu1llfmqRVPAyFTbaU0Lntt33e4Nzo2Yjsf6x8kl8kvF2EnIe9QgLQ0PpooFsF62IvmA16VfD+lKx5oFyX5kqPwsTH4dp8uAxBsE7VVwU2AZi5fa+l8lc2tPKXeNncd1vEJm7XGveGrnSySG4MRsPiBAxYfYSfv3tuKWY5VVpdlVcDat/MC3qxD3yVO6F8WnSaiyniIhe3jlggEouA2olZJJGAT4bqVLW0aRUB71h6YAZYmIxqDDwYxeGq5LKjwhMA== 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=QrZ4IgUkHYP041dMYg/7mBbiu4h8gZstbxTy4oeEc3Q=; b=Kb5fMeuX2qeLtjsAH1k8XssHpvm6glmDh1Nr/FFSz+D9VXf8IgA/S+bUBLw38pV5OGQ1wYmw+4mwZ6b8PGMpTUYmkhbwnl59wGAajQDDM3DEfT1gUwNl4cugs9iYH1H27TXy+0o0dlyU0cmv7QacLWnYavBD/p6ZKCNRrVv8WT9XsHhbUCjsoiV4DhPSxVds9hM9UFk87oMh/h4wBza308LUo+7M5GVbLBzDVlX0T4G274wKyVWgPja5Rd7UelrlYozNagb85zBg3k67Myu7n3TAu4UewdHiUEUVDPzoY+ifGN9Z+E8cFLKMyk4iciODBi/DnE2iKlzKG9Gp4O4UXA== 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=QrZ4IgUkHYP041dMYg/7mBbiu4h8gZstbxTy4oeEc3Q=; b=GSbM1kZgGWOTJPe222p4c0/0QxugAHJwic+3FklKRkCkNKAHFz3YzOrRpiMl7RHW+JIj3E7iPjKTf1aRSSUCULYUm+S+J5LliXh+OzeG+m+ZySeUW4xfab4cOeuLOGC0bU2OB+JDu4XDVPOPJaQgod4FuaY3cWJXNKmpGO0zqR8zK3bnf9e2mAkBWWTbJJcuxTvmHpKS++1MFwbnIxYU/Y31YrhGpHRRMoxQCuRDgIUgDQnF8i01CpTjIgfAkwCYjlQpxlpm+9IDEOG1l2LHOqpTztaUoHpd8EZlxZ3+xLbDWenqd1JA2QmvyG7e/miv7C6OamSjlqsx7px3YhYVTQ== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by PR3P250MB0257.EURP250.PROD.OUTLOOK.COM (2603:10a6:102:17c::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.16; Thu, 3 Nov 2022 02:57:45 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::9587:72b8:e3ec:c4fe]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::9587:72b8:e3ec:c4fe%6]) with mapi id 15.20.5791.022; Thu, 3 Nov 2022 02:57:45 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 3 Nov 2022 03:57:38 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [33WRzjcXAqIBjWvU0VEqjXmsbeHD9MLqsoE55q+kS/I=] X-ClientProxiedBy: AS9PR04CA0125.eurprd04.prod.outlook.com (2603:10a6:20b:531::16) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20221103025740.620315-3-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|PR3P250MB0257:EE_ X-MS-Office365-Filtering-Correlation-Id: bf1cb019-fe8f-4fa3-2e6a-08dabd472f15 X-MS-Exchange-SLBlob-MailProps: EgT5Wr3QDKz4zPL+otEBjMFVOb2OlFlbzLXUspUNWPa8SyzyupsN/Fqi36nrTRRU0R9N+A8q7ljXtcpUKcOnujw4Cep8GVAc5exN9LW7T8+mn9NTqwVKNrhK4XNYJLBSZkSUimEhovc664Q0T/eMLrdhuZIdcrJJ0zXZCIuQHkEWJAqndsHJTkfk2iH06XjodgR0FtDRsxeK3WZJ68KyiQTRWG0CTXs5ukBV2vMnv3Ibo9jWdyJGbyIhSnh8VESn9/j8+Y9sidUaEL+HuI/6FkffSsY1nkA2H0ICbC4jSFhaNsjxFugp0+xgchtHhey9RVmLqfT02AQLBlZZS5dUut61nXZS9saREuIsoqNF15huy9Ye0Rmr+6DzaFLFvIh53ovykmVVG4i/9uZ4yM1Lwn6/v5nkejj2WGekeu2eUo3LIAGUoAdACnGVotKRUazWu8qB+iCfPaVBj+Q6l1wQKHmqfJYW6I1DpGUnkntw/LYBPVez0C4CvY0UjHCslJADkuGTchHA8RUk8R90izw4s0OJm4y9CrMAGMxCrzfH8UfgKRYUvQNcSZlC1embmvFYfiWIf46pclI+qJjLyZJuC0GrOJK7I7z/k/sLd5lcJNa7oYHuTRfazwhjbK6o3gMCwAlKKQ7YN9XjK1JUbu1kr26AlDZUrSaPdNSgQpXEeUAEWBNivlXbZWFCtdpHKkhcqcyRyUBLuumxIMm4X32X0Op2Th2WTgxc422zuPkQKbo= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: cnkMKQKK0+zwT/ags8k9ziGrBRtJ9+z8j3tHAOz9MOIPs/amh6zSfcyopLjI6oZtFTPrvkjbNBtOe3KD90Pnspkmgjq8ukkcb6E2z4INiseXX9VQ0sQdfzK8Mx+OAh53+i0LMGEK0YeRyCYANWTxhPgXmTuC2A6YJf1NwNr3xgr56HCtO+COAnFCKrg2hS4w1YjrFhnwSKs2aGT+Lh+CLwRIhbFcA1wdHYYAv7Ri2ocYJ9FLqUUzvlgK2kbHLi5H6Vt2cQmnBD3rMkiirzCprumd8qP+USQkrVvXj8dn8MxrMycFSnT1Znv/it4cYURstkfKMwfomy7h1eh2ZKqu2bBQjt39YNF4XbND1U1ApXUwM3ZbZKgdvjmSVBE1LUEmbzvnmiWwPbMXlRbDikflVEjisIsQDLxT6jLjF8SgHIw743W2/WRip1bbZuN4gmvgSENhet0gOw9sKWai0wCJinVg2d7t18KwaDFFcEJ962Ixnm0haoLR7ULFgjdgD+R/camuD3bPa/6MqDVlmaXochmY3ok1T3kKKSkGmWUwN8tOeviA2E2rotDaDQhGZbe1bVK5RtYY30OpGPcTgbcRD8LWq63hahMzBfX+jlR+7IAA9BrgOCjzt7vl8nbBUYiET6ERxbfA8BCEPR8bZo0UMrUz5CO6QSPozaHDl7lZ0/VN8KLNwY6c5QNfNzREWfV9 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 4maCy0jH837QSYw5MmX+HPMZTuhHLsDZ7jsgRz8MTQSWLWnQNpLoZAG5V0OI3P8mAZUzO1u5G0QNSDvWw5Ut+OjaDJ31DO+pP2+Ub3zyCbi73Uf3tV6zndes14nJQ4WOWmt7YHgnBRHarLTStBSwrLK5mhp0IEsqd+8dp8xCOcSvguPf0q3qzladyA4tQ3+kHiPFziHiNHaIFzuYGiJ/zuw1qHGacTs5gpVUMYkLfDxzVJZzSM5EwZDf95yUASNW+i6EMRkg9lD3LhOPoUKFCWBpekDV6nBThGx2dqqjUnWRvVLIMaWGkzPc/0o99ljxYEY0yaMr47f90WGcOTG05pL+UTAbfCUUoD3yQcK6IWQZSvxP+McqfnQz8YfRgRfQUYeDGGuxKNXgo0eFP4hEinAOIn/ZIlR4+b2KlxLh1c04YDLz0j/uvEnJRKO2RAnxsgYIc3UYHY+QRoxsrCxJwFXcGmMJ7Brb+O9g3hC2IDLy8PZcTvF7ZNPtHMC7eQlnw+48TRqP7AUy5Ja3jiCkzj/OhI7V6DXYVrc4JhyUoocV53wtBTzw8u1RWQxR1ys5uK9htNHdkYEChlbY65EFVa6UGy1khHeVl5mVoJ83avWCs8KgpBFJ+2mbPVS0/0GMu9EfQQHYaqaPL6MDfKjH0qYlXoOBWoKELwU05ihb1RaizMvqaE0Z0+PglPHmMrybN9YhFoXHKEWwgXW6t48QkfwTPgqMbs3GGaGCY2+ID6CrmXvlG5RaRYMnoowpOa6gRj/Gwjg4sTjl7kpDOniqTUbmz/xMXm6LbXEcT6CN5/GyoAZQXa6490C6mJHdbQjAEbWSOR2W37NG2TTbvyg3lF03xDVl2CNpMY9OHobuWpQjYLgmsV06iwUmrMQ5df5jkIMlnBubo699kl4m4iNvDOUpGi0NQBYReFm4pIpbLUO5YB7ntS0GBXT1uAsVBROHlHHHszK+8eGBVdJ/yeHBRxnkDq22PbJd4Ilv6xPgYY3wMSwrZ+IKemN3casUYRMDVzrIfvAn9q5Wb0oBz8M7JgxFaTKKG5W117ZJDQaFt9QhG7Yy9899kyJoKKli5pJ3+84zKBDssjb3w59KqcS9M03GL/zZVJV2t1BM5wSFu6iCWAeRH7UyAT7EHT5litU/HOuwJOOZeE0pC8oant70v6SH5v4wDQ3y4xFYyjR0Z/wbFBYxG68YISBe9pPQaDOPQXGULNUfGsV7K1GJKO+ie/bnijMgRZTTpuX6SOqFO15BI2EIYZXR+GtM0GU0JEExDZPP+yVWbUAKAJGq64vyzIu2xUmSOsb9yeo3JCTce4gGQDLmc5ZfkasxrYpd9hCq X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: bf1cb019-fe8f-4fa3-2e6a-08dabd472f15 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2022 02:57:45.8478 (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: PR3P250MB0257 Subject: [FFmpeg-devel] [PATCH 22/24] avcodec/h263dec: Move initializing qpel DSP context to mpeg4videodec.c 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: nJcHU6sRfOmN The MPEG-4 decoder is the only decoder based upon H.263 that supports quarterpel motion vectors. Signed-off-by: Andreas Rheinhardt --- libavcodec/h263dec.c | 2 -- libavcodec/mpeg4videodec.c | 2 ++ 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/libavcodec/h263dec.c b/libavcodec/h263dec.c index da3c9899e3..71b846ba74 100644 --- a/libavcodec/h263dec.c +++ b/libavcodec/h263dec.c @@ -51,7 +51,6 @@ #include "mpegvideo.h" #include "mpegvideodec.h" #include "msmpeg4dec.h" -#include "qpeldsp.h" #include "thread.h" #include "wmv2dec.h" @@ -140,7 +139,6 @@ av_cold int ff_h263_decode_init(AVCodecContext *avctx) } ff_h263dsp_init(&s->h263dsp); - ff_qpeldsp_init(&s->qdsp); ff_h263_decode_init_vlc(); return 0; diff --git a/libavcodec/mpeg4videodec.c b/libavcodec/mpeg4videodec.c index 4ab558b46f..f91d2753f9 100644 --- a/libavcodec/mpeg4videodec.c +++ b/libavcodec/mpeg4videodec.c @@ -43,6 +43,7 @@ #include "h263data.h" #include "h263dec.h" #include "profiles.h" +#include "qpeldsp.h" #include "threadframe.h" #include "xvididct.h" #include "unary.h" @@ -3824,6 +3825,7 @@ static av_cold int decode_init(AVCodecContext *avctx) avctx->chroma_sample_location = AVCHROMA_LOC_LEFT; + ff_qpeldsp_init(&s->qdsp); ff_mpeg4videodsp_init(&ctx->mdsp); ff_thread_once(&init_static_once, mpeg4_init_static); From patchwork Thu Nov 3 02:57:39 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 39121 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:999a:b0:a4:2148:650a with SMTP id ve26csp249297pzb; Wed, 2 Nov 2022 19:58:16 -0700 (PDT) X-Google-Smtp-Source: AMsMyM6W6UEGhtekBwV29kN8DduONvU5teMSAvY3fjdwuhISgA5eu3w8ALLQDsUxFf+HuDnj638D X-Received: by 2002:a17:907:2c72:b0:7a4:a4b4:9fcb with SMTP id ib18-20020a1709072c7200b007a4a4b49fcbmr26769333ejc.403.1667444296446; Wed, 02 Nov 2022 19:58:16 -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 ga28-20020a1709070c1c00b007ade20fc40csi12904255ejc.810.2022.11.02.19.58.15; Wed, 02 Nov 2022 19:58:16 -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="bGe/XshZ"; 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 A01B068BEE9; Thu, 3 Nov 2022 04:57:59 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-oln040092074031.outbound.protection.outlook.com [40.92.74.31]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 12E9568BED3 for ; Thu, 3 Nov 2022 04:57:53 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HgnMoLKRYXzR7dJzOBCw3/iW60opVP0PCQXZJ1sOXjJOKIGD6HG20QHjjHECYZHWjzkOtJZl2q/n2WunvTTcN84jiCTiwVRQKkD30rrUUVhHJE1Zh7bNnevLYzG07zekW09wl/8Weeo2S8Lk1d1MofqgAuo03ZfEE4EiFYU4ovYFdeAeDmUwaeQUlpFhfy0GhKc+9pROvF/MV+5rSFOHwR9yeI1ikmg9HHSjWGoRk2fBJzgARAPWYp1cIz361+Zastsrseeq6BWDVPl/la6IyFf4kXq7AC7adK5to1jcqN6Lu6kX3Uy9Bsb2oB/EjlAo2TN64qDt1nneKeK9lBcx0A== 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=XMkFi05unHriMygcUmThAlwof0CqPrjiUMdsTMSziUg=; b=MAUuc5h9YvRVkvZsRw5Swxdxub9oMFXjeqgesgcSE5qglgiPRS9JPTqRxhdRklbYwFsgGdPHVQQLVk6WIAZ31rdII5cdM3Bd534LBHGnvvzIOzXYjAJ/ZSUAg3RzdO+32bmJ3CRRhD5Kl6cerC0IO9krZ1jiMu7udoRL0lm+Xv0igL/FvHidYJ8x97rpj2Jmq74xvnM505MyE7Nb5xTKPMajaMnXhCwvRFw4wwjrU0AmA3/twtYKTFHquYwfdi/lOllniTlGVsbycoXG2Sf0CBPOGcZTZSuZLtpvJR3uQgqyUnXJbZAKLL5MEgghqtwhy9bJS48oL49EpcXH5jYoYA== 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=XMkFi05unHriMygcUmThAlwof0CqPrjiUMdsTMSziUg=; b=bGe/XshZR3gljTip/SSgwX1FzfqE+nlByFHv0Wt02x8NXdtWp/Uvxnb0qkZmvUEMHGDzm5OcXA+hrdI5zvDczfJQXbPDbYh1vGHT1F9Ygyj7HOpowi+Hw8Qmum39gPbXGoNg7dqRItpq9V8Lk2v4tfdMO6XT9WaGQ3xYVr1Q24w4dlNFXj+sKFJts08InnQNAyMgwcBzOe+MBzgrtzE48AbogtO79a6xxUWBMyvnB271U0kHa3vNZzBo3Fruilr5gwFa7Z9mo9Sf03YCYKWNKdCkMwbtjj29233qNVFgbk0CKRiOib4dBWuCEwnheocw4sNAVRTnaaK/NxmOY1F4vA== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by PR3P250MB0257.EURP250.PROD.OUTLOOK.COM (2603:10a6:102:17c::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.16; Thu, 3 Nov 2022 02:57:46 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::9587:72b8:e3ec:c4fe]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::9587:72b8:e3ec:c4fe%6]) with mapi id 15.20.5791.022; Thu, 3 Nov 2022 02:57:46 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 3 Nov 2022 03:57:39 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [dm9pkDmVDheTI/uLiuDFf7/AL5A1xj0DF8Rdhn/MeWk=] X-ClientProxiedBy: AS9PR04CA0125.eurprd04.prod.outlook.com (2603:10a6:20b:531::16) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20221103025740.620315-4-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|PR3P250MB0257:EE_ X-MS-Office365-Filtering-Correlation-Id: f536467f-9c0e-4525-1755-08dabd472f96 X-MS-Exchange-SLBlob-MailProps: ZILSnhm0P3mWo+RneW5ABDpC3jepZYKONfKeFyCIhe6afPRS4gKOn42s0j2r3U2SZup/NwIItyoquaMAXygNcLYvQ0sH3MwDpNnSKFqHBEXXx0x2NnwtooMq2f6zfHUg36ZkgHftrFzuTo3Jvt/v+k+D2LyTql2qMIAYGyxMYs01YMoQwdIOvqlLCCtQqdggTzo1jbE92QDASreDyGhzXf9IfrLYHKk6wXNfWTZNR1kjXhSNrEYLXHEZOBW9oau4qsBx3HN7tPaAg6pnHRaAeC3o/kYgK5gMojyLM53iX0CUBGAjlqMmYEeEK7S+2Lm/9HUJVp0xT8AgkLOFjI/AKaEr1Or4hajvXlJj+yZlYEsCPhamMHKJ8X6jPb2K6r8DfWdQFU/FGtQvOIKK2CrSs+Wzm1toojFRTb1M1KsriF5t6kSwr34ideHjj5bBHZXDa75HHIWzYLGoevJQm3BBm6ZqxFlGky7+5x4BeFxraWdj2ih2DBN6r0yfPrmkla1qaVqThoOHQnqxibm9VVroI8I/Na5bN8e5IWM29tesw1xSHrql3xe564D6eOQV9Ty9PjCoSNaab7evnmnbhRp0lBr4tvh3RmNGCZitocNDCsNDGpk1VOGOWjhpVp+1ue+1+IdEmvpoBuaqjtsqxpgXbEttlvhimOgtpWu6W8LhuZvNtkIKd8yS3MUE8UWoB0Uy8rU3Xpc3abi5dn1E0GT1IJ63IWEeZ/6m/37a4D9l1PpUCo6qgX/G8CXXTspycR/JqSyfAo02u1ODoyAJSdE2WmhrWzE6GEaa X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: /K56KC5/rf/6bQooxhWEv10Gd7/J1krzY/aRbQyTDQhYNdCZyLjQ/dq9pibE7V3fyAj7PVm7SLPwOB56E9WD0ULqj3P1GcGlMoo9zGgGChSjuBxJWq6IZawsGwYVOlzkj4PtO5BAuRHLQcDThPFCRLrA/FFJxJEBlblGhaWpshwO79qrz1NbTGzyzUq9DNowJwnF0GRywPg0NWZeSJOCycLXzXchsR2EqUDH2LxQh4x3YUp+0ZNe+k6oa3CsDuku/aKlVbvQRSw4+Eicht2WbE+5OnVOvWK9H2h7zhSRtMaXGMDsI1GA2eTUCcJj3saj+0UWnBX7Xx+DIIwsNcQFvhIA1fY35ZRAuePXSJXa66KlT2rlqYhesg/qbKQ6MdlQK0zHBWp6/xdjt57DqerBl5cfIEwRITj82AADrZV6a1cNfH2dqtztArDnz17m0MsEj6D/f1zCFksKM73jASEK7UQsF5OY6orRl7GKJcNWdQ9xnziLkkjtuqKfcwYiWIJVr9DYTanJfBHEuxjLzQsZM7db9uHxtbYg/IIItDJS1VpoCH6Cqfw5MZ8sBJHL3f7utkyKMcSilyN0iyybG7kS49ZiihUPPEjf1SxQPxaCFNPInel+Cod0GBqegKNCMK4YapVckw6MdQZ5u5YAtJlkTIUWXqUv8TgepZckUItbEGBioF2U/KeQkMFMdl4jqt/L X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: OpUuuF4/ww6kxuo1CcMf9boxONIAddqt2SbXNiALXSjGnx5RIEE+2TeABvI1AKq5xkMSeHf4v+NRkFMZUg9NKhYJb/dIgCbpJzvYL/UPPgw9zV1/ING8LvDzH8cJp8s67qjeUYqvZNbiT4i9rqzzvOrm+VfNHH8GplzWOIZCQaMPkiH07SJfP39xAwhiGpE4YPJfhsQv7IGfJwxsX+d5RrPiHwXZBBcxbLTYq6Zz6vwvjoY9C+HWJxUJ60G/uoWWpJrsav2VvdkR4WHEXwl09Zwwp2M7YPRBKHdGPk9dx4nlzRKaAIwQotlgXsiJWClMHnFEvYB3Mm74q9rimklChTgnD1rwhTToUIse9E8l3GA6djkFeZUppaXOuU0msYHSkO8zJjrbAq+q8RR1IgpoZkhidCztHDIvx2HKzG0G06ND9C4YqUu9N5/2Ag2TPaXmupFVPfT93TQ2Eco8HWQEAD9joxz2vMv/cjxvRNF+P7aQCm6D9SHU3wiejtyitMJj9aCfHvuWwF7y1kiddYCyWwNNYFy4s399f6qsHpGElFB5Kjj6G4NIFA48FAUHpd7AvcHnfOyGXpFcgqIrKRfJ4CPR8btRvnxfQn2+6almYVjKY2A4mZfcB3I8RhVKKsmTgsugUrebUp8cxs9oYe2VBdb1FimvXGrr4doxyCdNvQA877ZqhNethNDWAiBgx80Gdmq37wtBwU9St++kAcUTmQKXSbG6c0bMhPzz6jeGrD81s/vUXebpFIQ6Y0JX0akHXRXW6Plp07DOhA3Jk/Mu0AJflIMt4SqdkJG4hItj8u/t2gs1z2J9Vkr+xjvqIjugiGZpxk98Mcr08hmmtietM1aYv1E1M4EVfiQgEYk5JrrNENDXjkU3qh79DP1W/BNvSMCbQ1vhQS5kfGisJYaSmCb+SC7hRW5gUUlgdn0qtRhlRP1RkCTE72CQyPgW0vrDhm6VgApUkk6ukxHe1PrmCvsbILhAQKb8SmpjXqIZ/3pkDDzWHnfDCapDminK6alamPGQisCU5FBEX9aEYHxU54WCA2jG8Zi2iUFGpZterJNUzGW7lRuEjqPyuoZAw/QHfA1USbz6qBICTng0P/K+z5P85YkrHrddg7Ilif2FrHO5vUHBtOmiA6khC7IZm7UsRjsE2nAv1cXhXW/Sk7YhgQRABX6zPxa1kMByAZwO1P6y7e6uoMB49mW2bn2y6XP18+OtHqRjNo7FXz0+Gnltop9j7ILp4wj5M8oBY0qgmh+IQQ25b1ykiYk53tISaIYVIZ/VJzWPUJmSnwuym7K0oom5CU+JSDfkpd0GdHg7QakyAA07IIHCWMuuNv3gcsF8 X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f536467f-9c0e-4525-1755-08dabd472f96 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2022 02:57:46.6758 (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: PR3P250MB0257 Subject: [FFmpeg-devel] [PATCH 23/24] avcodec/mpegvideo_enc: Move initializing QpelDSPCtx to mpeg4videoenc.c 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: mlCKfvcjWfUi It is the only encoder supporting quarter samples. This also allows to remove the qpeldsp dependency from mpegvideo_enc. Signed-off-by: Andreas Rheinhardt --- configure | 4 ++-- libavcodec/mpeg4videoenc.c | 1 + libavcodec/mpegvideo_enc.c | 1 - 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/configure b/configure index a59e9a898d..1127f49a62 100755 --- a/configure +++ b/configure @@ -2756,7 +2756,7 @@ mpegaudio_select="mpegaudiodsp mpegaudioheader" mpegaudiodsp_select="dct" mpegvideo_select="blockdsp hpeldsp idctdsp videodsp" mpegvideodec_select="h264chroma mpegvideo mpeg_er" -mpegvideoenc_select="aandcttables fdctdsp me_cmp mpegvideo pixblockdsp qpeldsp" +mpegvideoenc_select="aandcttables fdctdsp me_cmp mpegvideo pixblockdsp" msmpeg4dec_select="h263_decoder" msmpeg4enc_select="h263_encoder" vc1dsp_select="h264chroma qpeldsp startcode" @@ -2903,7 +2903,7 @@ mpeg1video_encoder_select="mpegvideoenc" mpeg2video_decoder_select="mpegvideodec" mpeg2video_encoder_select="mpegvideoenc" mpeg4_decoder_select="h263_decoder mpeg4video_parser" -mpeg4_encoder_select="h263_encoder" +mpeg4_encoder_select="h263_encoder qpeldsp" msa1_decoder_select="mss34dsp" mscc_decoder_select="inflate_wrapper" msmpeg4v1_decoder_select="msmpeg4dec" diff --git a/libavcodec/mpeg4videoenc.c b/libavcodec/mpeg4videoenc.c index 77f960a262..a2a14afbd0 100644 --- a/libavcodec/mpeg4videoenc.c +++ b/libavcodec/mpeg4videoenc.c @@ -1287,6 +1287,7 @@ static av_cold int encode_init(AVCodecContext *avctx) return AVERROR(EINVAL); } + ff_qpeldsp_init(&s->qdsp); if ((ret = ff_mpv_encode_init(avctx)) < 0) return ret; diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c index 1bcc849782..9b11c5c05a 100644 --- a/libavcodec/mpegvideo_enc.c +++ b/libavcodec/mpegvideo_enc.c @@ -807,7 +807,6 @@ av_cold int ff_mpv_encode_init(AVCodecContext *avctx) ff_me_cmp_init(&s->mecc, avctx); ff_mpegvideoencdsp_init(&s->mpvencdsp, avctx); ff_pixblockdsp_init(&s->pdsp, avctx); - ff_qpeldsp_init(&s->qdsp); if (!(avctx->stats_out = av_mallocz(256)) || !FF_ALLOCZ_TYPED_ARRAY(s->q_intra_matrix, 32) || From patchwork Thu Nov 3 02:57:40 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 39122 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:999a:b0:a4:2148:650a with SMTP id ve26csp249348pzb; Wed, 2 Nov 2022 19:58:25 -0700 (PDT) X-Google-Smtp-Source: AMsMyM77g8qtdSES+rO9ze2EBk9W/nEJeqLWo1Ho5T4Nx2iVCHHghNOqSll5JNmmjEurIjZ9sYeD X-Received: by 2002:a05:6402:27cf:b0:462:75b3:a277 with SMTP id c15-20020a05640227cf00b0046275b3a277mr28988503ede.175.1667444305547; Wed, 02 Nov 2022 19:58:25 -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 hw19-20020a170907a0d300b0077083e6dde7si13114292ejc.183.2022.11.02.19.58.25; Wed, 02 Nov 2022 19:58:25 -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=TxzGJSap; 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 A324868BEEF; Thu, 3 Nov 2022 04:58:00 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-oln040092074031.outbound.protection.outlook.com [40.92.74.31]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 48A8768BED3 for ; Thu, 3 Nov 2022 04:57:58 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MWlzq7xflS7L9GlXh9nBEgIQKpf/byz84mF+p4lMQddrLDxioZQilul5yQ3KzYPMi+8hL3FbXR7BIDvgpE4KqHRYR+0YVz3yh8keMoVHEo4IueoryIbPkjz6j+tzHS4whGdSfWRFDE/pO582hBM+n/sAe7LAIGARKtVFdFiXza5edTGCuxfkuYi+LvpbXiYIAHNgSWpHlnuBAM30ePIUHYSBBlcq6wC6XY+9xLXp3fYrPNPX7IaIe6WUE5o7+YPL5fdxtERB5UI5BiIop7xCQ58pSYHf8vZ7lvtVRvr3XbxnTIF7XTsWrSR14jwxE5O8mYaEDz0BHmkX5uA9H17GTg== 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=VngbDCUrfHU7zClRGQlaKFOMCB0eqoSxpowg0kzE1vk=; b=YIcowJ11/iqQaIi5WEJmJMUq0Zl4bcih3aiPrzLoyQtPz1Ih76ktYxRAm/el6IdrsT5WUMM/Sfo+DyCluKF7biUfiNwp3sMqmpO16vN07ZaY1L3Tt5lOxUGBjdV6/YN9nPGkwxWlibLIafrbg/M8wEFLdgVUcNbxSF+3eWosv9fdz4jMdm1IXePKbIZbVkGHJFbOL9dyyXqD9FfC8jYWxJ5xVmn65+UWZS86TGraphqJxSZEw1zRtPfVumKa5T+Ud9b45iaDAk4z6Q/D/YqOtIzaTQcJn2HuG86C2aD9NKaVkWl6kz3tyV07T/bV9S3Edrez59HynIqKNkmV/dwoIQ== 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=VngbDCUrfHU7zClRGQlaKFOMCB0eqoSxpowg0kzE1vk=; b=TxzGJSapo5cXR1dqqkFgNh1HjykNqqFN0RYffgXG1geYH3GiM2bnQLQNw6piS55JKwEjtnyxih/AyNCPoLOwkrZxYlai0BxI0Nhlt755BAPNz5S13S4fi3DLjW+A0XH/C6uMH62tAsKVaVfTLFazVIkXQjBrb2Tk2cVxgBmqRdBx0vF3qEntbKkZyHZOrRdtlKO7uzN6U8fKcye9sb7Bmrgz3/4QguVFyrkCGbdDGmMl9iL48yM8TWmp4SwBNzH8MbK9apu5uopRs0GJybC+oxr0mfZdCWuxDLMju2WYmTfwrPd2DVnAlNBE2GkZXaKmm3+MLWNoTbo9jRF0rbdvnA== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by PR3P250MB0257.EURP250.PROD.OUTLOOK.COM (2603:10a6:102:17c::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.16; Thu, 3 Nov 2022 02:57:47 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::9587:72b8:e3ec:c4fe]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::9587:72b8:e3ec:c4fe%6]) with mapi id 15.20.5791.022; Thu, 3 Nov 2022 02:57:47 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 3 Nov 2022 03:57:40 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [qsdFdggl41smdyLUnfzRVCTP7M5VHN+dzmVDIxGc6nE=] X-ClientProxiedBy: AS9PR04CA0125.eurprd04.prod.outlook.com (2603:10a6:20b:531::16) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20221103025740.620315-5-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|PR3P250MB0257:EE_ X-MS-Office365-Filtering-Correlation-Id: 7906a5fe-6b86-4292-a71b-08dabd47300f X-MS-Exchange-SLBlob-MailProps: AZnQBsB9XmrtEmGPpqLTh1fG0uyIXnO50hqF40N4cCxtPkSv66oLYAsYVmEwPpuXqDXADTEpaQB9lyJ/Mn/ggTudiDxgbzoTU2e1LVLpYTmTw0qgVk08WCrNOEfe9We6enb45Noo3l6Gumcz+TLw2upqPLo5VrwATkyaLVSmt1LBPIfvJ8ZQ4GNI/cELJGubePZB96i7uiYtGaFh1lovsjWUbwLQmGuf8/ic+2Zx4qjYTrT+hTGVL5KsftOup/682UyTNw8BLdl+cwEB8Qo0auoZHpPZdMC4Qg/Ao1R88nqJ6VmW2qexYoi/ixU8etixnsCdC3M9NW49N1L/xKVlqCaYzOFq5QKM9o+K+SaZBpinRlzm5jjULMAPgY4sp8ZtQGjq8Yiiwih1ybEwhHh0QsfNEmeZ3yoXzml0V4Fd4Qn/dsu9gSZjNFTYq5UN1BEO8N9hjgoxJDwz90Nl1BAsurkDF0NxyhFgXZEapvPLc4xOBZQL4CatgaR0T83eYebvxwFFZ2NHYDgS+QrGyssHEMGLkwiH5G+nAr/F44plNdVt9OYfaihgBnDaPvEPXl+ulCYXR3K9iqciKxeB0LboawrzcFdmy9i90p0FZo4Rn5R2UscoqQUaLyC/SGs8CRUQukJh9z0OmKJJBaRyTHsUT/5FFTca3VLX5en/+lroc92q6w8w9lKukcxfnuejpf+4Biu1FL4qqKM4AIvM10L0e3g03FoHJ19wkwbczUTNgslKfyXn4P4wmTOmGn6VMld/YmnNFLKKsog= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: vXk/gCWm/NJVEqlraxNjfUbq+Bg9AnCqz/znY5mXG0ffX6HQ/oFTk3i8L7DpuqTL1jM3Otu/CkIvMfkZ6Ci4Ps9rEnzl2ja1E90Q42DoQdIDa9FUvyEp+91AuElat3aPTOSy0XS8ILn3qVsbbV6gNvKuR6tezVxy/09QsxUIOxv5QkX/xOef2SoikdkZk1B6+OHQlObzCxv3slFNEG4DJbOgw4237QjEiRg6EIYcmNOQsQdn5EGOjVhRW8tfmiyxQi96H5k66Rreyc9gtJqglSEPLkRYuf/AJZ4OfGG/tG/DWTAet3ZZ0OZyYY+n2aw5V0IKcTt4IYiP1Wb1Zsux5PQegm4L1BFYbsjnUBUebEIH+r6dEFuH8NOYwcDes+UCwSBIykINtHD6LLTY3ZAy6+G+xgqfdEyLQrXfboo87A0cf7r+gR9jdmCid1GAViQcWURegpI31CsQUQLdxm+U0ky7w5tjk+e/CQ7f4GnCfe02FvSspG9twUt0jV9Z3BkuGmD6PFYLN5TmELy3b1VKr/47cauaOqhJ26xomuRCEzrMqSgnyj81Gf7TjLX6EJdHhLUuogBziqOceAW/1Dm9lhPraBuiKAvhxNzrTd3BXqfT6YH7Tnf8vZ550Ofp+a3gPIRaUQUXy4tAxvstNcnA+ekWgNVeB+XBMGQ8M8vCoo0oK+QAzRgyYs7V3Ouit/jY X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: K35+IYIfeO7Zsw8YCzeEE34icp+9OiAEYMGmzdlgm3p/ncOw0f6McV17bJ/zfTmLmHxPhD1TvuDgeEH8+dBl488SUq/qIjQR2+a2RRVtUNGHE3mnthVP45vXK1AI9xsptIb6oWBeF9EeBjb5os3SRY1R+BhxDC+9ickAePJIrdIR80AJ/skmYOWwGH84bYkAJXq0gYffIoAJ1cowVF+bWLYoZALCjHqhYkc5t08PUWYpIuCFYdHhNinuZe8l3FVyOk+0OA75U/SxoMrMg78voWPqFM+W4L9YogU40uaWx0opgmVz1cqmbGHCWHsT6/c7+NVA+Ij8s3cxbif2mzewkbHt7ctka/Zx1CcOM88INWzswApE/TNLa6GJoLXENqGfzHGvvS1E3MhU7mwFgH3yg12pBZdF58NhbDd4QTcT166XOOHSVryVEVOMsOZ3iRgWiF6RLGkQXjPpzJ+agDZCliuB/o9mCKBZxcmPFmUYbvNmGDkFq9KJpTdeshljY5PTnJV1ZBASHH/LcODzHP1dqmH21i2kgwjbuv+5wAVhT9l7D6uago0kytTCbFYUocS9NoScq0Nv7Xxn2qrvw1Rnvv+AIdGcuplI1uI/QUE8wnSuuybRo4Yd+9sHaf52i2yY1tGCS5sR5iEzXlvhmqujsLDrd6A8lKZWp3OQKqf26muu/m1RknJjQBHlZZcmM0gyoghjZiulGrzb4tDsvoWdwiiW2CV3RS7Qij1ODhfp7xKDGsm3d8Lnn/ItRFK1kbzdXZJMxdgQttiZ20BbKYCgb1Fjx6sRVztO/goc2u3H6WUl90s8yt7Y5+H/DTBBRXnScJNcpk+1xvLZ0mzATY/nN6imOCgz3xjfg6UDHp0CjtjwsYnyKdYt2CBdMCWR7USXWC5lPVXsV650zdU6v7sxEhSEvWCleum7e2eLgbxnZnbJmc1LpItsXlVi2KERsxYAxmFEtDmzigNLQ+OFcnCEGtsVpMq76hAoHgdTQ4vo+2gMz5r1YrS3HWZPmlGt1gJWrmRl4TJJYj7/wVljfGiarq2rqj77NjcYovtwO/s3O4db2r3j91OeEOrkymJ6kQDZ9kDOQj/3XnbKPAa66H/2HOVuVufYqhqQWiuJc9JwGl2cPT54wpceKlS/hHDNzKNILTYC609Jv7pYJrLmsWwAqZ2P3hR7oCXYzo5uHNIcgqvVtGeSJCTkbaTvnNGWh9loI3bPFiVDGVQyktFuLTB41rJFGEmM0Z7hmSDYb9+BorQw7ranUL7ciWXxKI0JLS9BAM7p2qpuDhfQJBlJjdoz2KzmFqA3ilF6XUPDLG6a4d+AOEN2S9lTu8QQoPYFhIlF X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7906a5fe-6b86-4292-a71b-08dabd47300f X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2022 02:57:47.5363 (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: PR3P250MB0257 Subject: [FFmpeg-devel] [PATCH 24/24] avcodec/motion_est: Remove unused field 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: i0llJyjDf7YX Signed-off-by: Andreas Rheinhardt --- libavcodec/motion_est.h | 1 - 1 file changed, 1 deletion(-) diff --git a/libavcodec/motion_est.h b/libavcodec/motion_est.h index b20cdabbbb..f6a563b08c 100644 --- a/libavcodec/motion_est.h +++ b/libavcodec/motion_est.h @@ -52,7 +52,6 @@ typedef struct MotionEstContext { uint8_t *scratchpad; /**< data area for the ME algo, so that * the ME does not need to malloc/free. */ uint8_t *temp; - int best_bits; uint32_t *map; ///< map to avoid duplicate evaluations uint32_t *score_map; ///< map to store the scores unsigned map_generation;