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 ESMTPS id 5F7DA4D3BE for ; Fri, 21 Feb 2025 09:42:18 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 71F6668C72C; Fri, 21 Feb 2025 11:42:14 +0200 (EET) Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12olkn2079.outbound.protection.outlook.com [40.92.22.79]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id EA66868C5E3 for ; Fri, 21 Feb 2025 11:42:06 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=nA14jpq9zEZq4YNrtp4QAJCaSGnmnKJaVBX9IqdBnkeX+YrPZ1PCMs0iq1zjGjGAhCOJj+HoNBdlU7J1uSxt6ZI3eJxD+Ix6qWFK+Xr8UzVxL7PfocUeXkvG4zascQf3tyl2SY2Zu/PBCyhFMGsu/1IsKXC9iba87SZjGO6HNA6jdXz6NaxaHtHWcrTrUqqdQx9ZBrBHWXybMyFHUq+9IxetO3+BmWXAW0LtTDn3wlg/Wkb1r+PG550c/Z7nIAsryhF+ahiU/y+6sDArA2ZRZoMME2yPev2SQeUTNPo/zOFrzsSCpfu8No4n4TtwnJLGVYHCIraV33Ok8WgzDrYGnw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=6Pv0omkwAFv5OtdM+0BQ9HGuO7yk7YmVFveuHpITGDU=; b=Thx1uQAHJnBDvLWdqdJX9iKA3xOGiV6Bw33sRk2QbzR8Lawty6hqC7ec3U+xyzUqLLAhlES1BnpmL/lbMac/HlsbcLeplXIdYm5x/C3EI0iyjamQo7tC9G7HGT/DY0msQXAyUzYROlCFexobkK9kXXwpu60+t/VhR9UjG3SrAA6re14zz5aZCsp4eG67f80ehs8ev0KithzDzWXRaPTYW7c4Yl2xse0nPjn3bySgdhuQ3j3050mAdNyLpyDhjLHuGwPN07IEKgPerkew3UadNPlex7S+65gtoe+P5hg/VuiuwM3x4eZzI1DE+7TFOO2covPdznIZtfviPlsErNkD4w== 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=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6Pv0omkwAFv5OtdM+0BQ9HGuO7yk7YmVFveuHpITGDU=; b=AHIeuLZ1bVLTP86u6FDc4XdADdrHlb+Ptrnx6lRUTjQHO4SDEvHhWtF/Qv1GjA5XJWiknt85TSZr4gOZtdKheTvqfPo0ha+VQlYeuP0cdXpFjT4G6xQia/kMZq61wPe46sBEwp2irrdT7b+m1fhm8LWIAQ54kZW9PHyxPHB9hd/auS5mXMqY+SGjMCSPjBbRLOqQYAcuWi5hwnQVX7nggkID6L3uGse9YiGp1IoK3vG4dxBtSVPN4At1F0j4DC/xxmrxd3rRo1n6k87+E5ZZPrceQg0mLKXMhD6B3eZRQQjndzBJEEmjZkQFLvRf95gv2/9BLOqxefjZeB/iR2N7GQ== Received: from DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM (2603:10b6:8:b::20) by PH7P223MB0666.NAMP223.PROD.OUTLOOK.COM (2603:10b6:510:1b7::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8466.16; Fri, 21 Feb 2025 09:42:03 +0000 Received: from DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM ([fe80::bf09:8e9:b07f:98a7]) by DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM ([fe80::bf09:8e9:b07f:98a7%7]) with mapi id 15.20.8466.016; Fri, 21 Feb 2025 09:42:03 +0000 From: Soft Works To: FFmpeg development discussions and patches Thread-Topic: [FFmpeg-devel] [PATCH 2/3] fftools/ffmpeg_graphprint: Add options for filtergraph printing Thread-Index: AQHbgrT8d1+trcFiaU+SbAzXkjfWmbNRftyAgAAAXYA= Date: Fri, 21 Feb 2025 09:42:03 +0000 Message-ID: References: <0750b971f9ae0fc38917e0a3b3ccb7ad2e8cd221.1739959172.git.ffmpegagent@gmail.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM8P223MB0365:EE_|PH7P223MB0666:EE_ x-ms-office365-filtering-correlation-id: e004e49a-3666-45eb-5609-08dd525bff59 x-microsoft-antispam: BCL:0; ARA:14566002|7092599003|461199028|15080799006|19110799003|8060799006|8062599003|102099032|3412199025|440099028|12091999003; x-microsoft-antispam-message-info: =?us-ascii?Q?xXSr6MbLKohmaBcELsalRHd+rTGX4jTAt5b7rMKHYi0lNUYRKsTridLUDGrj?= =?us-ascii?Q?qHJkVUnVPE9MvOUToBT3lTZjKhHnUt/NaBiLFERgv75FDAUc0x6Rq/NkcQDL?= =?us-ascii?Q?DotURScELLNejL7/r/DO/KDsRKSWnmOpbRzGnMLBx4FXh5v4qzN52BTu1yHp?= =?us-ascii?Q?dQF8Nxmixy+1BJ8J8KU9aUEy5s9CSmqSLfkfiVm5Gj/jULr6arPM6lYubGGw?= =?us-ascii?Q?CgUzxah9xapu6ab/QWlKW57QNOlSCCg/0qW6uII5W9aHH189N7YJxqdoH96P?= =?us-ascii?Q?JyiomtCnH5szKsEhvuMabqBJw+5VRIsGPqGHYaHxU06ktOsl12+MMYxdeiHc?= =?us-ascii?Q?y9qvikx2DFk7KVDiqjKusDo+T+g2EB2WNI/89e+8m+NGATBIaWgYZx1XAr2Z?= =?us-ascii?Q?zdhmwrYC4TlEk1iM7JlFaYVjZ5MFVKfqSU0oW/zgQZwGgXssfFAcGN2l+2Br?= =?us-ascii?Q?DPV5opD/LjWawwGcxIvwkj5ydiphVgjNhcaV1+Hctm/ipkyzaHqp6r4nKlPx?= =?us-ascii?Q?S3LWBiyF/BDg/JYxrIDJ+K7kg4PLbVomoYvY2QUcNhRbVOmqRZG2uh4yqnBx?= =?us-ascii?Q?7TnIZdjGMeu3X+BO/3oE+YkxlLJTdyXfpGLTmb1r8ACxkNXnCVm83BgsusuZ?= =?us-ascii?Q?GTHPD/tvf9al1iOGFdutOGs2GSYns7nuP8UaDeBZCyRgNwLX/q2Q/137UUhL?= =?us-ascii?Q?L9Jdi74GCzweTEICvqXshC780kLWd5uUzSboetHZwQIIfa2ih2pjidpYxRPQ?= =?us-ascii?Q?+zXN9n1qrBiODH9R/wYQJMuBaQLF+S2rxNgra6di3bdfXGFYp3VCjyt7ejcK?= =?us-ascii?Q?gZju3U96izC+EMf/g2JRnGyFWhDKGdmSM9jCbo+jXFgJxojJ2Sdq9A00Hont?= =?us-ascii?Q?NdSa4xyE5zcBLlJMSyY8+SUA31JyqHlRJ3L8ReX42W9jnVVIEtGzD3jHZkS+?= =?us-ascii?Q?UZDGOHK1HzedqufTmulb/ebhJ0SMZyOvGskrnF2g0he3gSUoQzTfLhcm0Dkv?= =?us-ascii?Q?GMVQ9gdJP1G9b/jkBhYiInnDi21pFbmRtgKK5Q2gJq1pR6cGFFf23y12035Z?= =?us-ascii?Q?1WsD5nVPqJYQh5s1hS0ZFefuYHi/pN3PxA/aSRHjSNPdu/4kQIU=3D?= x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?plrgkHgo3rkbSQMsjgNL8UzMmyJLWnIcj0K3DbHPVJo1BWDvUEasFgPEV6HA?= =?us-ascii?Q?h6Z3Jfcv+P/DVOHC5siqm/pVwjmyiW3C+M5jDbGcaURL3brX7jloln28Qv1G?= =?us-ascii?Q?Vd4j+rk0bIvVFo1V0XtrwgIat3N/k1E3DMkiVcP+0d/BvThw6wVc6hlxmtW8?= =?us-ascii?Q?kkqjXh0ldxLEG79sZbs3qELq+MrdumF0d0ZxtDSULxJ9rbjFD91Gcs2jzbQm?= =?us-ascii?Q?FKPE3abvh6t+QLo1D/Km0LAxxiBSQCCp5EUltbYJ1hfqDJ2drxTvkE83S92A?= =?us-ascii?Q?Bj95IyHxRb3yDakVQLQF7XCaU198hOIZC/JQjfEE8bv4xGIJjTGcV7B2Pkys?= =?us-ascii?Q?EuLy6FoyGVqHhn/fYDi5wD1RtxrTPKvvxHPXNEnntHcciz5+5tvUXN5877aw?= =?us-ascii?Q?aerGpQwZ6UcG/56BPUP+yd277YS5vLxPpHjIBn7tzN2kjecxLzCWuUK8FkPL?= =?us-ascii?Q?NzqWVmxwaMg3h38dbztVgciWDWY1zURq83aD6rsKqpw5UQ6odHOVq4n7o1aF?= =?us-ascii?Q?bJE9ZzadAwg0nt9HwoiFMeV6S0PIWzNJIB1HMfOq4g2JhL0Kf9rSb2eDhKTf?= =?us-ascii?Q?YLyX9B+MGXWRDyGcKMbOk9d3H9Gqwbxvd9lAopoXnfu1XgEKJX3D3Y+r8uRi?= =?us-ascii?Q?i0fZ4oAj/9mntaavksIFrpdR3W8jOPYIIW/poInqSYrpDi4b9tTzQie4hQGS?= =?us-ascii?Q?PElPLFhoUkwXdrr3tIcxUMZjSOZMzUtSzJrA1BC5PmGu8EI8rCtA6eZmzR5x?= =?us-ascii?Q?otpR4z4nsnkIpZzi1FVebBYLJPEQlCYBFfUWoiFGOU9eOMxbG8a7AYTYMqVy?= =?us-ascii?Q?eU65IO5ZtBWfW+4nvR63vS93utdBwn94bFZ4FPRapeWnR1+kJiJx/6BrbkDx?= =?us-ascii?Q?HehVqz8OEUcmlrdu+y9abNdjiYcrMQyNu+71tURsN3+su4v/kapjz213SscC?= =?us-ascii?Q?/kN6Sr68aINAeZUKDL2jzki6KdB4juOegfGNkH1rEgmdoqXh5mxikn8NpxMz?= =?us-ascii?Q?G8CXh/bmaXMeA3Wa8Hm0zQgA5fm500RihWGE8pWau7sdWtYBTEXEpjTzS/+x?= =?us-ascii?Q?6fy5lZcTaaXtp6/Rd0EDyfnzG/nTqNXnKPQZntS3ZPcC9DI/otqDsafbVWAK?= =?us-ascii?Q?tWhXevs7WJR7sSGWMSDUw+mYfhpnuRduxjmg8jWBY/vff9jEtt/vBvYzroWS?= =?us-ascii?Q?FwZCUN60/I6gVLsjKRviSfyZsW2bTUQuDNjH/xA9L1fQUXbdQAE8D+RxG9o?= =?us-ascii?Q?=3D?= MIME-Version: 1.0 X-OriginatorOrg: sct-15-20-7719-20-msonline-outlook-92255.templateTenant X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: e004e49a-3666-45eb-5609-08dd525bff59 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Feb 2025 09:42:03.5940 (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: PH7P223MB0666 Subject: Re: [FFmpeg-devel] [PATCH 2/3] fftools/ffmpeg_graphprint: Add options for filtergraph printing 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: > -----Original Message----- > From: ffmpeg-devel On Behalf Of > Andreas Rheinhardt > Sent: Freitag, 21. Februar 2025 10:23 > To: ffmpeg-devel@ffmpeg.org > Subject: Re: [FFmpeg-devel] [PATCH 2/3] fftools/ffmpeg_graphprint: Add > options for filtergraph printing > > softworkz: > > From: softworkz > > > > The key benefits are: > > > > - Different to other graph printing methods, this is outputting: > > - all graphs with runtime state > > (including auto-inserted filters) > > - each graph with its inputs and outputs > > - all filters with their in- and output pads > > - all connections between all input- and output pads > > - for each connection: > > - the runtime-negotiated format and media type > > - the hw context > > - if video hw context, both: hw pixfmt + sw pixfmt > > - Output can either be printed to stdout or written to specified file > > - Output is machine-readable > > - Use the same output implementation as ffprobe, supporting multiple > > formats > > > > Note: This commit includes only the default and JSON writers. > > > > Signed-off-by: softworkz > > --- > > fftools/Makefile | 1 + > > fftools/ffmpeg.h | 3 + > > fftools/ffmpeg_graphprint.c | 1152 > +++++++++++++++++++++++++++++++++++ > > fftools/ffmpeg_graphprint.h | 224 +++++++ > > fftools/ffmpeg_opt.c | 12 + > > 5 files changed, 1392 insertions(+) > > create mode 100644 fftools/ffmpeg_graphprint.c > > create mode 100644 fftools/ffmpeg_graphprint.h > > > > diff --git a/fftools/Makefile b/fftools/Makefile > > index 4499799818..189feb4e2a 100644 > > --- a/fftools/Makefile > > +++ b/fftools/Makefile > > @@ -19,6 +19,7 @@ OBJS-ffmpeg += \ > > fftools/ffmpeg_mux_init.o \ > > fftools/ffmpeg_opt.o \ > > fftools/ffmpeg_sched.o \ > > + fftools/ffmpeg_graphprint.o \ > > fftools/sync_queue.o \ > > fftools/thread_queue.o \ > > > > diff --git a/fftools/ffmpeg.h b/fftools/ffmpeg.h > > index 6cc0da05a0..432954b4cc 100644 > > --- a/fftools/ffmpeg.h > > +++ b/fftools/ffmpeg.h > > @@ -714,6 +714,9 @@ extern float max_error_rate; > > extern char *filter_nbthreads; > > extern int filter_complex_nbthreads; > > extern int vstats_version; > > +extern int print_graphs; > > +extern char* print_graphs_file; > > +extern char* print_graphs_format; > > extern int auto_conversion_filters; > > > > extern const AVIOInterruptCB int_cb; > > diff --git a/fftools/ffmpeg_graphprint.c b/fftools/ffmpeg_graphprint.c > > new file mode 100644 > > index 0000000000..77f143b8c2 > > --- /dev/null > > +++ b/fftools/ffmpeg_graphprint.c > > @@ -0,0 +1,1152 @@ > > +/* > > + * Copyright (c) 2018 - softworkz > > + * > > + * 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 > > + * output writers for filtergraph details > > + */ > > + > > +#include "config.h" > > + > > +#include > > + > > +#include "ffmpeg_graphprint.h" > > +#include "ffmpeg_filter.h" > > + > > +#include "libavutil/avassert.h" > > +#include "libavutil/avstring.h" > > +#include "libavutil/opt.h" > > +#include "libavutil/pixdesc.h" > > +#include "libavutil/dict.h" > > +#include "libavutil/intreadwrite.h" > > +#include "libavutil/common.h" > > +#include "libavfilter/avfilter.h" > > +#include "libavfilter/filters.h" > > That's an internal header which must not be used by fftools. Thanks Andreas, I know, but isn't fftools itself "internal"? What's the alternative? I could move AVFilterPad to avfilter.h. It's prefixed with 'AV', so isn't it meant to be public anyway? And then there's the hw_frames_ctx does it make sense to move it to AVFilterLink? Or rather add a function to access it? Thanks, sw _______________________________________________ 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".