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 E5C6046912 for ; Sun, 24 Dec 2023 09:38:29 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id ECC6F68D113; Sun, 24 Dec 2023 11:38:28 +0200 (EET) Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04olkn2045.outbound.protection.outlook.com [40.92.73.45]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6146F68CB57 for ; Sun, 24 Dec 2023 11:38:27 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mI42Za0P1znu9DGeO4G8gqeETuFKR6EZSEU09BbDCXQTYID2Iqo7S90DlWnGPAqie9xh9boO77J2MFcJ8Ca7rjTTzAfobb4zG2dJiVWxwaEiJIkUriYwf55gRNKY4xb7h2BP+4s8lQGan7ivF7FmYAgUI3kobPVOkqHTbVnbmR1Ts9Yh1F1bTCeKrkpERqIzNbG9CLAz3TmhxLqfCoCN4DilrEAh6vW7gybMgtcEwKlNBQddUQo9kly2WygMif4Yq4wJbVrxuTud+Az7TU2sgbahv34y4YECm32+tAhJ8EfdeHGkUGIT2Ih1X04VHkx43Cax0co+kj9MTw5dBtjS6g== 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=mdQx7rwio0BQvGfh7IYLnOlhWlPaccjFvgVoIEiHNWg=; b=fiDOXrmR7Jpm0/B7Dbq3xn81Y8Z6KeaN2rJI7oUEk0Zc3sxNQJckvN3G8wHRWB39Vf2FmKRzUznBid6MKbsk3d8BAGLocceuKL3B3cV1qFrdINEFECwMs6hedi8Rz+9l/buC+6iCImTfyb2JA7QhdW0Edl3gW8+EEHMuVeBqp9rvG8mDkMN5LP+Z9gZdmn7zSz3NXeKNZNu8CFp7F140sFlOktzhlOt97TRYIra2jS0SgTF/0Fw8tYlFit30+qyin3kEJRcKEM5dpG5QeIA7LJdVVrFAT2qtMe4ypgtOyjY9L0PjFuXjv++R5jxcOkUYu0Skcua/3nTKMzlFK/hWQQ== 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=mdQx7rwio0BQvGfh7IYLnOlhWlPaccjFvgVoIEiHNWg=; b=p+Cycb2j7GDepnnkzgcq/fDsuiQ4oFxlsgx/FlwFVueKsQdKHX17P+cwZ7D83V33dwmharXCs97qsvM7hXmmDiEopHkv0fwyMU0L0AEXI26ysChEsNSmZn9O27GnB33RXj2sNuG+ksaOGwgu+xsv92HC6Sy8ld0UTDmxr6cSWlWTKNSSZrm25YTbKUEiiOaZrrWFxQAsHLK/ZQJnDBdwCWPSo+OaMyj+CT4QsNEGcnMo2N/JlE2IKUaPivKN5aVurV6GVTQ4lkrs0c/OOQrHAhcADoBYBQbl9gKqZgiZ3GUGrMm5nXLdd3oH0mMpCGU9gAyM9whMgOJgX2w+/t/KpA== Received: from DU0P250MB0747.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:3cb::16) by DU2P250MB0382.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:23a::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7113.24; Sun, 24 Dec 2023 09:38:24 +0000 Received: from DU0P250MB0747.EURP250.PROD.OUTLOOK.COM ([fe80::db07:87f6:7c75:38cc]) by DU0P250MB0747.EURP250.PROD.OUTLOOK.COM ([fe80::db07:87f6:7c75:38cc%3]) with mapi id 15.20.7113.023; Sun, 24 Dec 2023 09:38:24 +0000 Message-ID: Date: Sun, 24 Dec 2023 10:39:56 +0100 User-Agent: Mozilla Thunderbird Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: From: Andreas Rheinhardt In-Reply-To: X-TMN: [qHcNHHkJQHWu/G96WG5JAcg93+UrK1eXgNfXgSa1GDA=] X-ClientProxiedBy: FR3P281CA0083.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:1f::21) To DU0P250MB0747.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:3cb::16) X-Microsoft-Original-Message-ID: <0face83b-d9e7-4d4a-a01d-ad87d0a1a6f0@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU0P250MB0747:EE_|DU2P250MB0382:EE_ X-MS-Office365-Filtering-Correlation-Id: f7596046-3eb6-4e0b-1eb0-08dc0464131a X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: PEcCcYraRSWh7VigOZ0u4VOxiwOSiO3+ROS0hmiGQpu+Dew4cftMcEdHR0g+hkmOdvDAQtubgATzR0DGggrzE6C08XdUrkAmvyO1wlAirHmPSlmuZNiHiKI0Y9IfS5E8USkoadtFpNtZsGExIM5lnvpplHr5WpEThC3hfR+EUTVljHEjiNh6EE3Oajgm2fhCcoiUO6DVhnRSvkW31psTWCWA0tG0sSYqJIoc4vb2LEthZXuZXwmlKtOxWF5zrmmiMJbl5E5tgqpbG1rtHaJWHRhBYkwXLr3roQm2wX4mObxuy/8qpHKRx4r76mthtEOumRJQ1fNOS1fdSESTALJzd58mPBwJkjHEDv1b4Q8lqMcDtaRmPhPEPhan3Xpj6puOYKsrpU0akuLBbsvu3Bll0jk/TJkbrJdcU8N2Y6IlqG7ATKqSXOxDIeSWmDwfdXVA14YQCexnsO4rMTdhpS4mtqHH8hWFAIVmkGonpTVvPL9akPdcKAJGrrGoyU+Yz2Z8BR2//hezFm9RKoSFCZhYQhv0GcVkKWInxrzAcdGPEK0guVYEp+ATyAM59x21PRJm X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?bkpJUU1xTzJnNXE1OStFNUtjb0pHNzBDRFhEd3JJRjh2ek5XVzF0d0FUVUcx?= =?utf-8?B?djF3T2xMMEVEN3NzVHF1dGNrVE1NWFRaZXFUbk42ejFvSzBnVE5BUEJDNWZT?= =?utf-8?B?ZUlrTzBSNXE4THdscXJsTGFEZWdEYTVKY1hpU2k2ODVKVTdXR3ZRejJCSlhr?= =?utf-8?B?bG9ERUJLdmJQdkN3R2YzODNTL0x3WEc0N0VDTzBQNFpGem5FL1Bwck5lSnZO?= =?utf-8?B?SThXc2c4cEhURGFaN2Z4VWpMN04wVDE5RzFZT2g4b0JaYllBS005TFZmbzhj?= =?utf-8?B?SWpNbDR1blUwVUp6dDZVOEtveitreHVoOGNBV3AzRVJScXEyVkcrMTk4cXpK?= =?utf-8?B?QnNPRW5wcGh1VFA5KzBTVzc2V0ZrK3F6OXEvekNkNW9kZklZRjFkRGoxL1hV?= =?utf-8?B?d05POWZweVg2OHNxYjlxeW1VeG9PYmQ3RUlqSkpoWTJVbUVYczZyTGF3dmdW?= =?utf-8?B?d0pyMDc2bWo2UmFiT2pKWVc2QlozUDBrcUwyQ25SU0Z1TjJFQk1NL0VCRlhp?= =?utf-8?B?R281cUp5SW5VNGI1VTVMQmVFbXFxeElzZGF5SDBiMDJvRCtEWndwZ1JwWDdM?= =?utf-8?B?SWI2OEQyRUxIbW55OSs3ZVpmKzk4cis4ak1lZlA3TW1vSW41dC9oL2xtRjFr?= =?utf-8?B?WnZJemZ6V0dNT3ovdTc4K2wxOXFnTzFac3JSMmw5bnBHUTR0ZjFFT2xoeFRj?= =?utf-8?B?SHlDTHgrQ252OEdCYVhmMUc5L2dhMHJBVHl1TFovdkJGM3NkR0ZlVEdJSlU2?= =?utf-8?B?cStKYXFEUUtzU2U2MDlIa2UxMzVqUlMxUS9oWnZXMENrTU51ekt4TDh6WWsy?= =?utf-8?B?amVsYy8ySFdDZWZ1TlhMdlZLbEZVa21XVW9TS3E3b2YwT2ozWTI2dWJoczhC?= =?utf-8?B?MVhRRmQ5WWU1dVdCYjhXT0phZ2ZiYkQwUXZ5S09Yc2VMT1lRdHV1RnVvRE9Y?= =?utf-8?B?NGw0QkoxYVhPdCsvOTAvL0QyYVFWek91QjFjUmFFYkhiaHV5L2MwUEpBcy9p?= =?utf-8?B?ZzhlZy94S1g5S2kvenltaFJwYXV6b254U29EWUwrMitNMW5BNXp1RVpVVHJj?= =?utf-8?B?am5VeTJJczRHWVh4SnB1WnoyVHQyOW43T0xtbXMrQ1FTMkJqS0FodEF6eHdB?= =?utf-8?B?WmZUMUNyazNSVUlGVmFrR3lUZ0w5bU5BQkZhZkZyLzNqWlRTMFZ3VW16d2tv?= =?utf-8?B?WTQvdmRWcEdzTFc1WTdkbk5VRVJINkYxR3grem5yamhIVTBYYytSdWN2UXJS?= =?utf-8?B?ZFA4K3JHSUErbEtPMFRvQmJEdUxDU3Vuc2dKcXRFekFyRVBLb21JYW1saUNU?= =?utf-8?B?N3lMakQzUDhZNjBKKzhlQzBZM2NWd0RTTExLNnRYNHpxeXVlQ1lwWk1VWEkv?= =?utf-8?B?clk1dGdpaUdRaFZnNUtMRVBTaS9wTzNnY2VyRzhUOWV3ZFVkVVMyQzkvSGE0?= =?utf-8?B?a3RQREFwMURqa2E5SE44TDkvRVltVWw4VmlLd3k5WlpYY3pCZ0Rzdm4zcUlh?= =?utf-8?B?amJTSWdOS3kyb3BETlpTbk55di9KelNlR09meSthU3R2SXF2aytGUG5tMGlJ?= =?utf-8?B?Q0EvSkR0SU9lRDV3QnhEME1DSHBDRkpIdk9yQnM0M21Hd3IzbXN1QkJxaWJL?= =?utf-8?B?MVk1TXR3aFJrV1I4RXVmNGpybkNsSGpaZ2pzUDRLU3lDQWkrczJFWGNMNWVE?= =?utf-8?Q?CLXDntFH1V3LznD+q8Gv?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f7596046-3eb6-4e0b-1eb0-08dc0464131a X-MS-Exchange-CrossTenant-AuthSource: DU0P250MB0747.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Dec 2023 09:38:24.7067 (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: DU2P250MB0382 Subject: Re: [FFmpeg-devel] [PATCH] avcodec/mpegvideo_enc: Don't copy non-existent padding 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 allocated buffer of an AVFrame need not be height * linesize > big. In case there is padding between lines, the last line need > not have this padding. Pathological examples exist with height == 1 > (where linesize is not really meaningful); non-pathological examples > are produced by the separatefields filter, which simply offsets > the pointers and doubles linesize, so that the frame created from > the bottom field has only height - 1 lines with padding (containing > the top field) and one line without padding. > > The mpegvideo encoders sometimes copy the input frames for padding/ > alignment reasons and when doing so, there is a fast path in which > everything is copied with one memcpy() of height * linesize. And > this is wrong as explained above. Use av_image_copy_plane() instead > of our ad-hoc code for copying. > > Fixes ticket #10754 (discovered by Zeng Yunxiang). > > (The above discussion presupposes linesize > 0 and would need some > adaptation for negative linesizes; the code removed seems even more > buggy for negative linesizes.) > > Signed-off-by: Andreas Rheinhardt > --- > 1. One could also use av_image_copy(). > 2. The "direct" (non-copy) path only ensures a height mod 16, yet > the non-direct mode sometimes pads to 32 (for non-progressive mpeg2). > Seems fishy. > > libavcodec/mpegvideo_enc.c | 19 ++++--------------- > 1 file changed, 4 insertions(+), 15 deletions(-) > > diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c > index 6d2d417454..fac9bb7ae7 100644 > --- a/libavcodec/mpegvideo_enc.c > +++ b/libavcodec/mpegvideo_enc.c > @@ -36,6 +36,7 @@ > #include > > #include "libavutil/emms.h" > +#include "libavutil/imgutils.h" > #include "libavutil/internal.h" > #include "libavutil/intmath.h" > #include "libavutil/mathematics.h" > @@ -1201,28 +1202,16 @@ static int load_input_picture(MpegEncContext *s, const AVFrame *pic_arg) > int w = s->width >> h_shift; > int h = s->height >> v_shift; > const uint8_t *src = pic_arg->data[i]; > - uint8_t *dst = pic->f->data[i]; > + uint8_t *dst = pic->f->data[i] + !s->avctx->rc_buffer_size * INPLACE_OFFSET; > int vpad = 16; > > + av_image_copy_plane(dst, dst_stride, src, src_stride, w, h); > + > if ( s->codec_id == AV_CODEC_ID_MPEG2VIDEO > && !s->progressive_sequence > && FFALIGN(s->height, 32) - s->height > 16) > vpad = 32; > > - if (!s->avctx->rc_buffer_size) > - dst += INPLACE_OFFSET; > - > - if (src_stride == dst_stride) > - memcpy(dst, src, src_stride * h); > - else { > - int h2 = h; > - uint8_t *dst2 = dst; > - while (h2--) { > - memcpy(dst2, src, w); > - dst2 += dst_stride; > - src += src_stride; > - } > - } > if ((s->width & 15) || (s->height & (vpad-1))) { > s->mpvencdsp.draw_edges(dst, dst_stride, > w, h, Will apply this patch 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".