From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id A296845AA1 for ; Thu, 14 Sep 2023 01:27:30 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id B080A68C9FD; Thu, 14 Sep 2023 04:27:27 +0300 (EEST) Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05olkn2030.outbound.protection.outlook.com [40.92.90.30]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7E52268C844 for ; Thu, 14 Sep 2023 04:27:20 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gGMI6iiy3BHX2/K0xQwPGdbakYEYRrZCLSwvqzpTfqPElRxjYj31E59C7nlOxMuHoso3ebXlbEiiFSjvvq9iJDIQ+4PwogX+qOQlxGtz04KbvnqmFMe9GlOQTkJdeJSjrbAu4mrH/oZJxVDLPRW1IuASr8FaQrJLbgFaQslsZlAcjyRW4kEx8PKoBmN7X1ZWTK6SeLrRkyM2v99MckZipT2B27mVr7moUWeDlsyiYslQBio7OC2euq3ZkQMrKkMnENoX20Gl0JDsK5c7qmdWYDFr5yeSsCMtAjHPPg3KBtgydyzPZbAtMKoDt4EkxMjC9Bx8n5OU7OaS3jIlKfYOCA== 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=i2lZ3yuLZwZZXUYYRV5lbSkt2ao1GINjY6Ut4yJ169c=; b=d4GnkubPYTYlgT5DsdV20kHC1cxWXwDa+ZyLmf8okXsBDgeOA7AMzm6Xi9iXwxqMeIohaL7vvPtjh5TLtU2hcFZ6O3t6vcx2B0z1y1PRBn6yxV+xlon1JScPy2MKGDxRa5eL31FSl4PsA3eA+YYXvJGUgUr3f9h0slwIcFmv34IbkOtI5FvLdS2N0RZxXnqg3oXKOtZa1S1A31PeJZSJqSqhtPeOlHk+7E6eUsYhrktTync5bDsKXu7FHKkzEr96w0DiD9Wjw2FQVw5fvCVAaPFE9cLaQ30Dj0u80wUm9o+2Ln53tLD0sy65JQzTkvixQFgIhckxoQ7kIbsw+d8mSw== 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=i2lZ3yuLZwZZXUYYRV5lbSkt2ao1GINjY6Ut4yJ169c=; b=ScYpUIdielerons4Nq4H1YGZDThKXzFEt+syHSt7znsA3C8v7O88U4x4aEAmSndF/Fz4Ne80xaFXZ4IdWuNrppmUQ12AjFGPmP19XZIyWNyTE+4rR+nvxjhVhMXDmT19eB+CO4zkYtlGtPQ5PsT+nVOJejMyplfVc36KOGxdjg90PF/8AuzTafPqi2uKpSGMIcTDFipOczCUTOTtz3GrXGuH1skL+U2dBOEzuDafBHsEnXmKzOGbePF0icuI3vdP3xdDMZifp1QABkZn6qv4ipzSIl1HHwiV0idszUMpNk/qilnDW1v8LziWdsFF9SSRMPx6wdJ1Gt08JW77NKrrpQ== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by PR3P250MB0178.EURP250.PROD.OUTLOOK.COM (2603:10a6:102:179::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6768.37; Thu, 14 Sep 2023 01:27:18 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::3fff:eb7b:b8e2:4dba]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::3fff:eb7b:b8e2:4dba%4]) with mapi id 15.20.6768.036; Thu, 14 Sep 2023 01:27:18 +0000 Message-ID: Date: Thu, 14 Sep 2023 03:28:36 +0200 To: ffmpeg-devel@ffmpeg.org References: Content-Language: en-US From: Andreas Rheinhardt In-Reply-To: X-TMN: [EtC5KCGjctt9Q9ZeuYIA3NyMY4XlZT8w] X-ClientProxiedBy: ZR0P278CA0069.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:21::20) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|PR3P250MB0178:EE_ X-MS-Office365-Filtering-Correlation-Id: 728eec26-2420-41fd-e3e4-08dbb4c1bc69 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ymIWurAGRkE+oidQslGEukGpixTSftm/TeJBx/Q2DZwKuzj8CygWSWCDS08QuJVQaVU2Irud659EytcCaGhHkUIvV5iM93wb4UMnfgVDZWHe+8vIF9f3PXXqIQI0BeWk5ST0/nrTjXWpHr0PMW7cAluIjGow80m3nZVC5GZIaJa8wWBehNpTcO5W9KxScdxOcww1u2qAnXZ/HBTpC38XpIUc8NGoczzRt3a05HgS8MxBBTf4ibNbEAv0IAy2vnyYI/qi1QDDxLPWBbSy10q2DZX7roAHsW0E1XNjYAegdGqeIsUsqJbz0vsyAwab0fVzl7cXqJ4WUTy3re5zJimW/syzRDyWtn04c33jwfNO84bDiiOPat3CeNpu5KsOE2CUL3Qf2TljupYWtJmqK7WwtNMWBlA1YRtNVy0pb/V0mCj6RKQM45pVfn9IvC+wDTz8sAL89nDwRBIYeN/xF6qQtf9W47yfSO2CXX9gxHc1QjZiCgXkU2eX38YVyzlgFW0PNh5A2nw5HwIJLY7NhavNKFSymICR/JKuEZ8hlwk0LMKsTLIgXwBSCEXeNpKaF9Su X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?U1pIQWlyK0pUcDJ2cllDQlhJNTZkeis5R0xqZ2FTcU91VzkwSkRCU2kyQWEx?= =?utf-8?B?SnVmbkVUQzJxbEpEZ3E0KzEya2psMVNxQitWRVdMZWFjZysxSFVPNXJDZFov?= =?utf-8?B?bFhkY1lBYjVJdTNpWDJQQklBd3Y1WGtZbjU5Q3NTbG9mZm1ncTBUckFsbVl4?= =?utf-8?B?U2x6ZVNRVVNrN2dvQVJJSGdYbGNKbEhOS3k3SHgxN0hDc1IzRnBoN3h0ellQ?= =?utf-8?B?QTJCSVdxclhWWml4TWlqZzd2RGFJVnhXcnpwUzB5a2p3NzVrVFZqMm1rZDVm?= =?utf-8?B?TW1DVS9SZFRoaENQR0NCQjAvcytRY0JLeGZtemF2dUxkc1dRYXRxcGtJWnc0?= =?utf-8?B?NzRLUlpNY0k2T2tZaXludTVJcHhsV252cG02MHVRL3ZHdjUzeWszWGh2RDU1?= =?utf-8?B?WVNtSi9SUWl2dUcvSCtFc1hUNjdUVXQ3ZTFhL2NIYzFmdDRDSVZoazhtbldh?= =?utf-8?B?RW9PL1JHaThBQkVrM1RIN1dJZnRZMERTM3c3Y3M5YjBGZDFtVTlPSU95YS9r?= =?utf-8?B?Y1dqeVFGRkQ1ODlwYk82d0dsNzhERTU3cjVJREs1VFNLTjJLYklwS1JOVlZB?= =?utf-8?B?bG85TXdlaHNFQWw1Mk1WSE44Q2dFNE45cElWcHZTR2RhaWlDdERTNUtVSTlH?= =?utf-8?B?WXJWYUNLdkJvQTY1Nms5KzhnSkxxVHl1Q1JjcWhuRkxnWThFQjg1OTA4OWJq?= =?utf-8?B?MVdSRVBIZS9yY1pML1dEUGU0blEwZERWMFUzalpHaS9OZERyM0RlMFBBeE5Q?= =?utf-8?B?cXFIQ25hQmprNFRPRW5VK2NqVjZBTlRzMUREOFlVMzlxZS8xL2ZrWityYkhV?= =?utf-8?B?bUxCWmNiQ0VWZWkvRGdiNGVCeExHRURyajZubXhSMThCNExQYys1cWIveXlV?= =?utf-8?B?V1hMWUVIL0RyMTdISlZNdXhtS0N2MmE5dzVmMHB1MjF4VzJmVEw0K1NZZy9H?= =?utf-8?B?MUlBZzJ4bURhdlRWZERVcVY4VU9sQXBiRnVwYlJ5MG9rSytzR0QrdXByMlJS?= =?utf-8?B?d0o4S0hGREh2dHQwM2RxLzhweU9kTnlqUjFvZmJ2SFNHUTZtTzIxdFBHYlBp?= =?utf-8?B?eWxKa0x5ZUE2dlh2MEZXMmpKUzhXS1ZNUy9ONmFEdkk1d3Fqa0VmYXcvZ0FD?= =?utf-8?B?R1Zsb21iU1lOcXJnbWVHWnJmR1I1UWt0T2RTYWEvMElYWHFMcmhlRlBsbkdK?= =?utf-8?B?N1B2ZUF5TmlPbUhUUGlLRHpFSk9WTmczS3NveTk5V0F3NzM2V0NCdXBldDds?= =?utf-8?B?YkkwMmowV0IzRDFwZGVvdmlaeStOVnVqZEkraTd0NXp0eko5aGxDR01pY1hU?= =?utf-8?B?VWdCdUo5RnlSK1lGekhDOFR5dktyTFp2T1kza1Jua2VCSDl6MDhaNWZkblB2?= =?utf-8?B?UHNCYVVvTlVrb0RxT0dSbzZqcjNsaXdYVzZlZEl1L1BSYVh5eFRPbGhSalhE?= =?utf-8?B?STFYQXpEQmZtZW8xK0l2NG1VTTVFZURwYzBOWDNOWlVuRmVaOG1UWEZrWUdw?= =?utf-8?B?RjdYbHRibjBjdk1yUXhsSmdDU2dzMUVtV2NmeDRkb05BNjhMMThENnd2bHVo?= =?utf-8?B?dDdTQVMrK2lOckVyZ2VwSkRRZVQ3OTIrQnZ0clhyS2F4UzVEM09mMllNS3Fr?= =?utf-8?B?YlNkenBpcWcxZjZOU3ZMWW1wRDBaZEJaaU85a05Sd0FVOEZtUExwY20zYWZ1?= =?utf-8?Q?xUdGjcl3jchu+3ZMnXR0?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 728eec26-2420-41fd-e3e4-08dbb4c1bc69 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Sep 2023 01:27:18.8381 (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: PR3P250MB0178 Subject: Re: [FFmpeg-devel] [PATCH] avcodec/lagarith: use VLC for probe code length 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 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: Paul B Mahol: > > +#include "libavutil/mem_internal.h" I don't get what this header is needed for. You are not adding anything ALIGNED and this file does not require it. > +#define VLC_BITS 11 > + > enum LagarithFrameType { > FRAME_RAW = 1, /**< uncompressed */ > FRAME_U_RGB24 = 2, /**< unaligned RGB24 */ > @@ -56,6 +61,35 @@ typedef struct LagarithContext { > int zeros_rem; /**< number of zero bytes remaining to output */ > } LagarithContext; > > +static VLC lag_tab; > + > +static const uint8_t lag_bits[] = { > + 7, 7, 7, 2, 7, 3, 4, 5, 6, 7, 7, 7, 7, 7, 6, 7, 4, 5, 7, 7, 7, 7, > + 5, 6, 7, 7, 7, 7, 7, 7, 6, 7, 7, 7, 7, 7, 6, 7, 7, 7, 7, 7, 7, 7, > + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, > +}; > + > +static const uint8_t lag_codes[] = { > + 0x00, 0x01, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x04, 0x05, > + 0x08, 0x09, 0x0A, 0x0B, 0x0B, 0x0B, 0x0B, 0x10, 0x11, 0x12, 0x13, > + 0x13, 0x13, 0x14, 0x15, 0x20, 0x21, 0x22, 0x23, 0x23, 0x24, 0x25, > + 0x28, 0x29, 0x2A, 0x2B, 0x2B, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, > + 0x48, 0x49, 0x4A, 0x4B, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, > +}; > + > +static const uint8_t lag_symbols[] = { > + -1, 20, 12, 0, 12, 1, 2, 4, 7, 7, 28, 4, 25, 17, > + 10, 17, 3, 6, 2, 23, 15, 15, 5, 9, 10, 31, 1, 22, > + 14, 14, 8, 9, 30, 6, 27, 19, 11, 19, 0, 21, 13, 13, > + 8, 29, 5, 26, 18, 18, 3, 24, 16, 16, 11, 32, > +}; > + > +static av_cold void lag_init_static_data(void) > +{ > + VLC_INIT_SPARSE_STATIC(&lag_tab, VLC_BITS, FF_ARRAY_ELEMS(lag_bits), > + lag_bits, 1, 1, lag_codes, 1, 1, lag_symbols, 1, 1, 2048); > +} > + If the longest code has seven bits, why are you using 11 bits for the VLC? This just wastes cache/memory. Apart from that: Your first entry will be converted to an uint8_t of 255 (and give a -Woverflow warning when said warning is enabled) and this is what get_vlc2() will return for it, i.e. it will trigger the bits > 31 check and error out, which is probably what you intend it to do given that this behaviour coincides with the current behaviour. But the more natural way for VLCs to achieve this is to actually not add invalid codes. get_vlc2() will then return -1 for them; this means that the check for invalid values becomes "bits < 0" (in which case the flags from this comparison can be reused for the "bits == 0" check). In contrast to the current code and your proposed patch no bits would be consumed upon encountering such an invalid code though. But it seems to me that the we error out anyway and the state of the GetBitContext afterwards doesn't matter. If you were to use the init_from_lengths variants, you would have to use negative bitlengths for the invalid values. - Andreas _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".