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 EA06A44DB3 for ; Tue, 22 Nov 2022 15:47:56 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 06E9568BA80; Tue, 22 Nov 2022 17:47:53 +0200 (EET) Received: from EUR02-AM0-obe.outbound.protection.outlook.com (mail-am0eur02olkn2103.outbound.protection.outlook.com [40.92.49.103]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id EBDFE68A119 for ; Tue, 22 Nov 2022 17:47:46 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=T8AidvnZtUdZM1NQGAJMAcr+QQrBeRgNoD24wo/Io7tQX4HdeeBhU2BRVkjdT+qtbVB+GT7Zl20WwcWPBejn1oktwIp5PURAzWYtmYB/EugCGuLXdRPvk6u6ZBW5Nf8R+HbhiD0iJdke+mYPv9UFSxVPc18S5wf7dva74ulWSlleoN5lGpKCPwaSNdzakqdUzoZ1OtfozvhY7cuxsdhEMU1aJvdaGawepP33hmYHGAo+bI3/Ozj4qURcqP7nSr86ENw/GGQ0pwycdDaBE1/NhkZRYtEkE1kWu9GwEZxCxuxGtlHhfoHsdLBuE3MztoY6glfEeQMAeaNPdJ99FHy0JA== 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=KhuIroIUHF2L36uWCaBfsAr6O9+0I+keaHuiGb6rwyk=; b=hD2MdiK5V3qzHjvuwrgPPZJBSziINVUWBRtnCLMlcWkHp1pUIfJA4XnMY6cWR0Cx0nIzW7JiKQMG5k0h0EW07r5GwSRnutOOjEZlpOxcFdTI/jnP/uZNDyfZ+PUbhv02xcd7rjlkRddfWxRN0A9ZKi63AU/rqJRlvSK1LY6YLGb+LggidG0J9Kj8L45jgaRQo9CzFkhxG9NJYep/0yUR2uL0z1JsrIg1XmQebREx+H25apReS2xVCgT67UwItzv6QW0AfLhEhPGkWjmGpXnbSVPMPtQaByn4HROr8wADe97clxOPkgMq4LSFFBOgNc33oiNAsUnIttfgN+4ce81FuA== 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=KhuIroIUHF2L36uWCaBfsAr6O9+0I+keaHuiGb6rwyk=; b=at2vjjK+uPzDv/IqApyxHXe8e640RYp5gCKnWAmw9LHygRBELqU53leK4Wq9c69/kPnEhwydT9F96d3xJFnXhTYWFdPN4/SEgWvVkCsUDou1wUDTwITHaxb91OTre2teUxbjUiL1wnEHUyvEf/pnP5MuPp+CAOtjMvVGCRhuA4WK23ym78KYxlsV/Y+A1fIqvarDUHKSurYQiLjuSFzTENnrmgAV25MaJvGHGdrDF+Mrldkj4ixTsTaniKdvo8Th8U9sYgf4i/p76vY76qHbvTVAu7zx9NcA0N/vlkvEropjlKwWbzYAEcJsUtkCaHyBrO/tVRJqNhs+Y/wC43Ycrw== Received: from GV1SPRMB0038.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8b::14) by AS4P250MB0896.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:58b::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5834.15; Tue, 22 Nov 2022 15:47:45 +0000 Received: from GV1SPRMB0038.EURP250.PROD.OUTLOOK.COM ([fe80::9f92:d554:3b2:69e5]) by GV1SPRMB0038.EURP250.PROD.OUTLOOK.COM ([fe80::9f92:d554:3b2:69e5%4]) with mapi id 15.20.5834.015; Tue, 22 Nov 2022 15:47:45 +0000 Message-ID: Date: Tue, 22 Nov 2022 16:48:03 +0100 Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: From: Andreas Rheinhardt In-Reply-To: X-TMN: [wOFtL6BWvQGXLMnOIy9rp1UqxOP8zXCex9oHbsGkFxs=] X-ClientProxiedBy: FR2P281CA0025.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:14::12) To GV1SPRMB0038.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8b::14) X-Microsoft-Original-Message-ID: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1SPRMB0038:EE_|AS4P250MB0896:EE_ X-MS-Office365-Filtering-Correlation-Id: bcf39b37-3622-44ae-214a-08dacca0e5e1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: iIGUdsMvrguoBuJue35NZG/5XlIw2BbOqMTuY8rjIoa2DoYorhVS89WGMW9puHl7UbpTOMEqxqjfJRgPDuwN0v0nJM+87JsO5dQeoJVy57wlM73tSELOgtMf7nk1am7Mje10CQr47N1u2pClJqEHhYib72X/ZZXmWVrTphg3Lqos3KLCvGS62nBFlUf7V2sb5QQs1p5V/oO/MQLTQYNND5/UXqT1r8lH6ei31D1H3znfmfbJ9hjcW/uODiE+I+TxiiOv4+P7MfsIWzpqot29Q5DsIacAB066u9jfwn95vyLAW8bLmPyp+IsPsw9z/UXZZ85Ys2UMcWrcTQQWNKV9cBDAB33bb4RJHan27meKeh2tvVyquBvS3juAWizn8YCqUy0ksjMjJmgisg/AMLLVGpzEhdPPb570ecjlabHptfgKq43LabixZ39L7iTeSKPhpibNoncFvH3UUsAzRYwBlyGyTzDT2GCgK/i84EUjsPA0UaueQDZ3u0aiqY+ZHAx2N/m+PfHfseHjbu894lmNgPWl6ls6fa1On+BXnTTrLW/AVki8g/SlZJxJmaae6gjUBK+Femcd9+ZoABqRIOmHvSzBYbHZLoAdHvcM03aVYa2MORFaGhc3cJmCDekfGUk31HC9a3n88F5mAFn8krmufg== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?T3A1RWVHcG12VnlGcHRPb2pnQUlidzhXcUo5UFpCL2MwS1BuMjB1UlhlYUtM?= =?utf-8?B?UlJqd2d2Nkt0TmlSRXRSemJkTkQ0UXBaZXVnRnd2UktWOEhkNCtWbk8wQzhj?= =?utf-8?B?QW4rUEpMMGh1MkdGa2VxYTZJUU0wM1ZHMlBqRGQ0U3ZoL04rMmwvWklKQ0VG?= =?utf-8?B?d0pvQkRRSlZmUVc5OUt6UzRhK2Y0MlhBZk9DWCtxOWJsNVZPUWFyNVFjbGZX?= =?utf-8?B?SkI0ZDFUTTdCcDFTODRIYjJ0b3FZOG5rNDlJMy9vaEs3ZzVrYVNCVlM1cGo0?= =?utf-8?B?SVkxaU1NMWcxNGpldWVMZ0tSSFM0Y3ozenlXbnhDd2x5bjdmeHM4RXBGTHlz?= =?utf-8?B?QXgrVTRjZVMrMGZRRHZXa2xnVThUMDNJTFJnQ3cwd1VDS0w1aVZJWWtEbjFV?= =?utf-8?B?NXIzeXRtcnp3ZVNCRTlIaGg0NU5yM1IwQ24vZWNyUzBsT0lWeVlBUkZVczFh?= =?utf-8?B?WXdkWEVWZnJzRDVNM2hiaGlZNU9leEpaVmtkZzkvZEVmUWNDSmJDTVdrTU5K?= =?utf-8?B?TEV3MGZXVGZOQm93Rm9uN3BuZFNTb04zTTQ4WHQ3WEVaTThwbnMwejd2M0tJ?= =?utf-8?B?UGxJZW5hVUdjOFd1OE9zWmw0bnRNSTR4aTdXYVdiQ1JjOEo1Y2RQZ1hpWFoy?= =?utf-8?B?cUhuVjRpT0x4MloraDZ3N2dleE9ib3NaZGhxWjQrakVYMm1pclV2ek1SK3J2?= =?utf-8?B?TEU2V25xMkFTZEkwWXFlMW9XZWVYQ2krV3poU0ZMMGs1L2tBNC9wakdidysz?= =?utf-8?B?MXg0eHhqZmtpOVhzVmxHYkJITWlKQ1d2bjlzQkhSVEppRG11ZkZXRkxJaEdh?= =?utf-8?B?TUdqSGJzTUJFek9CUzVOeUpRVDdHZnFUckRycEJXVVFlbklYNldyL0UvNzNV?= =?utf-8?B?bmUvZFpTb3lxQXVZRXRrYzRxVmRlbzdDVzZzREtENEtpd0ptMEYvY3hZYnFI?= =?utf-8?B?Z3NBa3NXMWl5ZHdkTGVxOXh5SUFlRFliZU1EMlRxQUg4L0VhNlJLU0ExVzIx?= =?utf-8?B?OS9UVWZJTmY0M3hWTHdBclFCYk5NazBCVnR5MGtzYVR1ei9VOXJRWlRnUksy?= =?utf-8?B?RVpVL0xRVW1GUTNrRE9lYkdQT3MrbUxsOEVlNjZURXA3ZnFnMlFGQnJVUktE?= =?utf-8?B?d0RkZnByUjBNMVRMaDA1NjlDakd3Rmc1ZVJYZEsyVVhzY01Ea3lYN1BOUTNi?= =?utf-8?B?NGhBK3VnR1l0dmcwcDlUbEVzbnRlR2ZqZUJLRGRpTnFPcDFQTzRDakxFdUpP?= =?utf-8?B?Z2QwYW1UaGs4U1ZtdTlublhnZTVUWFVYTFFnUEFreTU0d3Z1RisyQ2s5L3pC?= =?utf-8?B?bnZxRmpXbUVmcUtnWGt4cTVTOU9XbzNVMHVKWTgxZTVLK3FyUnVxeXd0QWJU?= =?utf-8?B?MGFnUVNrTHpzRDNyTmt3M3NXdGtCSithTlpGUmFYS1dlK25rTEhKbUJFR1Bl?= =?utf-8?B?eTJXYmVOZjIvRDZFUEhLSG1mZUhobjYxNnE0M3krSkRzMEdOY2N6Y0xOb2dU?= =?utf-8?B?VXhqeENQc0d6N1FOMjNXTmgreXdTY1c3WG13VWMxandBTWhkZ2syMC9XMWFY?= =?utf-8?B?aDJnZ2QzRGRNYkhYNDlLY212L21aamNYZGlCeGduWHQ2THBEVzVteVJmektm?= =?utf-8?B?Y3R2anBiMVd2Rk5Nc1lJWHhyRkxZMHlVdGsyV1BRRkVrZUxZT05NRVN5Zzlp?= =?utf-8?B?MzdXUlBabjVnc2crNFhpMThyY0trVXA3MmdjZWRrQ2RGS0RqR3ZTZHdwc2Zy?= =?utf-8?Q?mnekztNGvbG1slX4JhSOeBGh+jX6Hklkbl/WV0i?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: bcf39b37-3622-44ae-214a-08dacca0e5e1 X-MS-Exchange-CrossTenant-AuthSource: GV1SPRMB0038.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Nov 2022 15:47:45.1948 (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: AS4P250MB0896 Subject: Re: [FFmpeg-devel] [PATCH v2 1/6] avcodec/flashsvenc: Fix packet size calculation 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: Andreas Rheinhardt: > The earlier code did not account for the frame header as well > as the block headers; furthermore, in case a large part of > a block is unused (due to padding), the output size may > exceed 3 * width * height (where the dimensions correspond > to the visible pixels) due to the overhead of the zlib header, > so use the padded dimensions to calculate the maximum packet size > (which is also what the actual call to compress2() uses). > Fixes ticket #10053. > > Signed-off-by: Andreas Rheinhardt > --- > libavcodec/flashsvenc.c | 13 ++++++++++++- > 1 file changed, 12 insertions(+), 1 deletion(-) > > diff --git a/libavcodec/flashsvenc.c b/libavcodec/flashsvenc.c > index 35793400fa..4cedb53fe4 100644 > --- a/libavcodec/flashsvenc.c > +++ b/libavcodec/flashsvenc.c > @@ -54,11 +54,15 @@ > #include "put_bits.h" > #include "bytestream.h" > > +/* These values are hardcoded for now. */ > +#define BLOCK_WIDTH (4 * 16U) > +#define BLOCK_HEIGHT (4 * 16U) > > typedef struct FlashSVContext { > AVCodecContext *avctx; > uint8_t *previous_frame; > int image_width, image_height; > + unsigned packet_size; > int block_width, block_height; > uint8_t *encbuffer; > int block_size; > @@ -100,6 +104,7 @@ static av_cold int flashsv_encode_end(AVCodecContext *avctx) > static av_cold int flashsv_encode_init(AVCodecContext *avctx) > { > FlashSVContext *s = avctx->priv_data; > + int h_blocks, v_blocks, nb_blocks; > > s->avctx = avctx; > > @@ -114,6 +119,11 @@ static av_cold int flashsv_encode_init(AVCodecContext *avctx) > s->image_width = avctx->width; > s->image_height = avctx->height; > > + h_blocks = (s->image_width + BLOCK_WIDTH - 1) / BLOCK_WIDTH; > + v_blocks = (s->image_height + BLOCK_WIDTH - 1) / BLOCK_WIDTH; > + nb_blocks = h_blocks * v_blocks; > + s->packet_size = 4 + nb_blocks * (2 + 3 * BLOCK_WIDTH * BLOCK_HEIGHT); > + > s->encbuffer = av_mallocz(s->image_width * s->image_height * 3); > > if (!s->encbuffer) { > @@ -229,7 +239,8 @@ static int flashsv_encode_frame(AVCodecContext *avctx, AVPacket *pkt, > I_frame = 1; > } > > - if ((res = ff_alloc_packet(avctx, pkt, s->image_width * s->image_height * 3)) < 0) > + res = ff_alloc_packet(avctx, pkt, s->packet_size); > + if (res < 0) > return res; > > pkt->size = encode_bitstream(s, p, pkt->data, pkt->size, opt_w * 16, opt_h * 16, Will apply this patchset tomorrow unless there are objections. - 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".