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 2B06C40FFC for ; Sat, 12 Feb 2022 06:46:04 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 835F768B27E; Sat, 12 Feb 2022 08:46:02 +0200 (EET) Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-oln040092075011.outbound.protection.outlook.com [40.92.75.11]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1214768B0E2 for ; Sat, 12 Feb 2022 08:45:56 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LiTVsSAdocTPkl5KEtBSWttn/JT9FpcVCagIdHykYfYYgfgyPMBT8vl6BsBjYf84Qb124iG1c16mHEIs0vOEELGkT7Vr3c04W6tVf4Pu9o1uF9uo44To/ii4leVPR3C67Bg0hVDO2WXytxjdikWRYYWn4NAl/6LGuIDXIgfeVcu/ytEsFT2oSyxo/8MhIUZcYFMQi0wv4tqKC7JKlg9kgzuoU21Or1ffcBEDpwocGGXQ7u397H6pLMLM65Ff/y6DunIDs0CqxVsmnTs7nmDq9NAzKiytNHnwT8IpWYdiJOXYmwAQS2qTeUnJMdVP/8NBnnkJi0A8QQZU1dasUP5iog== 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=cXCmdxfZFtVlhx4itcAUadNshryFXDv6Li6zbWpLroE=; b=nJt5GZcEvvrryGoJS248pXhUxG5k8FaYcauun0JbreRMe7a4rxgPM+jlS++6oliXL97nLOHQyr/AgBNounpT8e01kyQRSnEJH4pgmTDD47USKnKMw2S4Po37D0JHd1VB25cF4iOluf6SlWaCogq8DAMdIdWeCAG4ssOuO6EaGQJC0Mxga696c3oVoShFTZONAiyVAA2YJhvdocvEm1G16ewxt2FsiqZEk1UrJLIznaje6/edvZGQHlDUDGAWCuL0ZzhvEdwuE5oHpRsLTnL6Q0gUfL8KH//BFWjHewBEycu5qvBQFHxJz7hewL7M15P/cz6j7+Tr/BnpOm14YyVI1w== 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=cXCmdxfZFtVlhx4itcAUadNshryFXDv6Li6zbWpLroE=; b=qzZAL34EGwUQg+nrQunzNXIlpR1l9BJprd+nGSeF9wRY9u3Mkyjh80p4IkEqkb3e5DpEMdMG2PZagAhmgQgKVMc5IcKoyBOnf+67hYKtp3vSmKBSImT1XRnHkubvWa3FtcYAtTkhtwtVpovoHpcrdQfO8l6lU7twQwyB3RDBTc13s7K/AzE9IUGX8TLWutgSLW4yNvbBJXCYBMqeKVbgcZv6PteN0VXZQh3qYAJucJLOwK9uO5zYavXSklRNm+ZHXDaz91psKIBKouhcWK/0dpDm6zq+qGzxtVTyp5O8X+8gCbG1u5umQjs6wu6pveuJORb9x5lNkM23DK4X2Pu65A== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by HE1PR0301MB2363.eurprd03.prod.outlook.com (2603:10a6:3:68::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4975.11; Sat, 12 Feb 2022 06:45:55 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::ac56:2ff4:d304:ab22]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::ac56:2ff4:d304:ab22%5]) with mapi id 15.20.4975.011; Sat, 12 Feb 2022 06:45:55 +0000 Message-ID: Date: Sat, 12 Feb 2022 07:45:54 +0100 Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <20220212001301.4090-1-jamrial@gmail.com> From: Andreas Rheinhardt In-Reply-To: <20220212001301.4090-1-jamrial@gmail.com> X-TMN: [1gPQ0adOrxRhqzngjPt+89dH0REbSRC7] X-ClientProxiedBy: AM6PR10CA0075.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:209:8c::16) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: c10450fa-e5b2-45a2-a466-08d9edf3516c X-MS-TrafficTypeDiagnostic: HE1PR0301MB2363:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: T+CCTYt8xKGcYp0GnD6SKHf/7/w8jGflHkUybQOgpbMs1a05yGfqtAkP87fx5fJpBouJPkoOk0N2bqUHPr06mKM2je0H2aDOZSpornHdzONyfwiWcEAgIKsRwG5DovoH3yJEz6DKld5rR+qLLoWn3LVsaqtEn4yO3m5w1mkSuRjETI9clD97Ejj7KeThWjF1PhVjAX2eviAbfu1huxFTwEsm2WyrvIGmNW6yzY8RsUnZYVSlXzGQQciN5G2QOJt/4uQB6XKsbnbxktd6ZfH6iWIAZzz6fOKrA4h1dvPbs4KfbsVWZC2o/e7DRbgArlaxQ1ft+6Dq6eJV4KD7vcf67QSJ98APrRV6W0o6ZYCFa/j6KvHcXledlSVcDXsXCDP8mOmhjFMWgM4A/8mqtnnC+vL7Lthx7esEqQkFRNyQHCUwaRghXhbb9dmm7GuirZuxUoGk/sQPj24+KV6+uKa7hHdPpNqo6/Z1FPleXwJfPFjEKHuCCsFmGCWbxScKONv4GoOLchsRUK15jMHnbx6I6vIw2/421tPvarn/pRIT1q0fKqG3uU6+NDhYWiRL01qsL8LruYwQ0uJ4ScpsYZvg3w== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?NHJmQlkvVFZacmUxNTB2cUlZaUxybzlCUXJCbkFvTW1JTjdyeHBwWEhsends?= =?utf-8?B?cGJFZGkya1c3MlVqdzBSME1aSXdsVU16U0dRT0k1UmV5aHRRbW8rRmZ2T0g5?= =?utf-8?B?WG1jaCtBb1lXdksxQmtLeENEcVY2dmNzNWw2T0hqYnBnT1JHSmtqUGhvb3hI?= =?utf-8?B?NFpzcVQ0WHpQQ2kwSTJUZWNuSFZDMXBPYm1JZWFxYzBmM2krWTlacGdrVDAz?= =?utf-8?B?U05QTEw5Ty8zdEFZaG85NGFqcnZ0NkxWRFpzeENPVkNmeWljOEZFQ2NXWGoy?= =?utf-8?B?d1ZaVXZZTytEazF1TVhTYW5KVVo5MlZ0dTUrdVBZZUE0Q2lNSmdRMmFPazV4?= =?utf-8?B?dDQwZUhCWm1ubVIrSDJEVFg3YmFCM2FRd2d3VWtIL2M5NzhNMlNjNlFGZFJQ?= =?utf-8?B?b28yYmszamh0RVp6K3lvTWZLOEdUTUErZm9vUVBCYU1UelRJTC9YOTFrQ1hN?= =?utf-8?B?b1hMbFpiWnU1VWVsTDZ1dGx6UE55UGFsNHdybkdxZlJtYWkxenk3VytBanNo?= =?utf-8?B?S2dHZmtmbVc3c3pMM0N5VFRqbUxrR2xoSWw5bnN3aEVDVkVtZzY1ZUJQRHFj?= =?utf-8?B?WmZkbldxLzM1U1U0b0gremRkRlo0YWxlZTZEZFgvK1ZBcEkyWDVod2paQThF?= =?utf-8?B?Q3hoNUVrUDhkUkJKMk9PZlVPUnd1TTVzMHZGdzRqaXVMM2FNdjBPSE9PcEJ0?= =?utf-8?B?M0FBaDdESWpHTWlHMjkva1hXalFhdDJXamhRb2J2bHdpcnkzbGVmR3FvWWVU?= =?utf-8?B?eHd0SVRsQkRJRDBTQ1RJK2NKY1QrbjBDZ0lkUFVlNTU3QmxPdVU1VHBscGlK?= =?utf-8?B?NXphUTVRdFJFSmpKYnRBaVhLdE9JdzAwUFI0TElTVzA5TGtCVFFBRVZ0UVNI?= =?utf-8?B?K3IyakZVTDdTZWc0dmU4S3F5TWRNOHAxcWtBQkFNQkNZYjhVcmJtckNrYlk5?= =?utf-8?B?WmxNck5CR1IrdHhjdHVDRlRVRVEzUTBrQXRHb1p0RU1Sb3FxOFllbS81aEpO?= =?utf-8?B?bVdPdHVUU29LMFFDeEpMZWplNUU2aDN4b09ZNlpTYTNnWk15dFlmWit2RnEz?= =?utf-8?B?M0s5eDdpS0p1YStrbEMvYjg3cDlZT2FhQ1FXL084ditpQzNGSFBpNWJreFk5?= =?utf-8?B?dzMzWnZQdlRoTjZ3TmJIM3IybUFrNXdNMVd2cXR3akt1Q3BwOThCNXQ3WXY1?= =?utf-8?B?OWRwU1prTzVuRU0yM2crclpzNjJQTGtNUzRtdUtQMjVTZVJyUWRnRGljeW1y?= =?utf-8?B?NUViVGF2UXB5LzFJcjRSQnVRU0JmMEFzdDVHZXF5eTJBTDJzZz09?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c10450fa-e5b2-45a2-a466-08d9edf3516c X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Feb 2022 06:45:55.0420 (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: HE1PR0301MB2363 Subject: Re: [FFmpeg-devel] [RFC][PATCH 1/4] avutil/frame: add an internal field to store the size of AVFrame 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: James Almer: > This is unfortunately needed to remove (or reduce the awfulness) of certain > modules violating the AVFrame API and using sizeof(AVFrame). > With this, the sizeof(AVFrame) value of the libavutil loaded at runtime can be > used instead of the compile time value of whatever library included frame.h > > Signed-off-by: James Almer > --- > This is sucks, but at least less so than the current situation. > > I don't see wrapped_avframe going away anytime soon, so something must be done, > and last time i tried to change how the packets are generated my approach was > shut down, so here's another attempt. > Where can I find this earlier approach? (Also why don't we just switch to something like what is done for uncoded frames in libavformat/mux.c?) > libavutil/frame.c | 3 +++ > libavutil/frame_internal.h | 33 +++++++++++++++++++++++++++++++++ > 2 files changed, 36 insertions(+) > create mode 100644 libavutil/frame_internal.h > > diff --git a/libavutil/frame.c b/libavutil/frame.c > index 8997c85e35..a63d2979db 100644 > --- a/libavutil/frame.c > +++ b/libavutil/frame.c > @@ -23,6 +23,7 @@ > #include "cpu.h" > #include "dict.h" > #include "frame.h" > +#include "frame_internal.h" > #include "imgutils.h" > #include "mem.h" > #include "samplefmt.h" > @@ -33,6 +34,8 @@ > (frame)->channels == \ > av_get_channel_layout_nb_channels((frame)->channel_layout)) > > +const size_t avpriv_avframe_size = sizeof(AVFrame); > + > #if FF_API_COLORSPACE_NAME > const char *av_get_colorspace_name(enum AVColorSpace val) > { > diff --git a/libavutil/frame_internal.h b/libavutil/frame_internal.h > new file mode 100644 > index 0000000000..07c246f86a > --- /dev/null > +++ b/libavutil/frame_internal.h > @@ -0,0 +1,33 @@ > +/* > + * 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 > + */ > + > +#ifndef AVUTIL_FRAME_INTERNAL_H > +#define AVUTIL_FRAME_INTERNAL_H > + > +#include > + > +#include "frame.h" This header is completely unnecessary. > + > +/** > + * sizeof(AVFrame). If you think you need to use it, then you need to change > + * your code so you don't instead. > + * Meant for exceptions like wrapped_avframe. > + */ > +extern const size_t avpriv_avframe_size; > + > +#endif /* AVUTIL_FRAME_INTERNAL_H */ _______________________________________________ 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".