From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <ffmpeg-devel-bounces@ffmpeg.org> Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id 0B0FE45F86 for <ffmpegdev@gitmailbox.com>; Fri, 21 Mar 2025 20:27:40 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 17124687C17; Fri, 21 Mar 2025 22:27:37 +0200 (EET) Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11olkn2026.outbound.protection.outlook.com [40.92.18.26]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id CC254687BAB for <ffmpeg-devel@ffmpeg.org>; Fri, 21 Mar 2025 22:27:30 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=P8kqzvqJDq+8VKO756fWI6+nYODj/NPy+2keUMsMK0pvYypSX4WH/I7+WnRDwUkmutxnW/tZ23e7DNidy3kWxWksJneW13nCx6oQuU9nhXjZyQbOURz7b2OMwXQHaaYa3xU4NzeKMHIbtOgEvYRz9+oIKb2RM7IZa6i3ptXVUl/wrfuMJls8DPgTh394D+cpcKbZ87DLJ74J6TeNCN0AlQx4VnC7Yy6THNAyX57SEDoBc6W4Fwko9eBT4B6Vae2Tw/BHmENEkxBErNk8wHODFL+hVQ7wUYZ55GULAnokVr5x9t2nC5T4PipD2gpnEe37kyOuSexNoqHwGAI9XkfbCw== 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=m/SJuTNa2bCPSE36iBdcAqTZ4iW1qHfeeLu12dtXV1M=; b=ERITG/uwuJ67CDmmqI/5FJRiVvfXELwhi8c0AmEnD10ea7TRr89eAJ6LXEtT6pzcZHQOCYZFSCOxaSz72bD6gAh9i3Gk83LiX+96kSGGzE49nVHSrP8kBf8GstB0k+QLAaSkQJc5c0swMeQ9YaIITbItjlOEeNvHOiUkpNQNzws+WyQX8+CB9urwWSkF/hAkVpvppqvQFU9OQCUIsYOHsDatIDUIrAks9EpUexzgOCO1f+7eqdgxVom11gTX0TgZ/dUY2di/GXhYvL8M6ssbOqVO0iT87iqhXC1KB8zttR8BYe5p+7v9xN4PBwladLL+Gw/LG+ecKN0K7HQZ9F0qiA== 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=m/SJuTNa2bCPSE36iBdcAqTZ4iW1qHfeeLu12dtXV1M=; b=lTlPYcRjaMR9C17LjQG9AIgdyf3hTAsMRuiHcIcmmsQi4KszlwJ1N6vNazZ7J2qrEa9r+MFRBhrrdZmCHzpXhlwQZxYVCKidovuUI5ay75VEOJq0RlRXlyK5nu1Mv3U639hg2gI59H+ttmY63Hu75YPc47eES7JgvSSnxx2S7jiixnVOkpehw21Asky+8wsXlwyAMDhgLal5lRMYnfXX42gviUwgsqIwaPDUou429e4qd6deB+qQAaYR/ZEgWYaEHmJU6t6E8zHzWKqlQchsD3hh91QBmtwtrO0UrnwW7zutoi5EaDjPuMp3OgT7H7fjXuSUzk06Q8utaZUdU4p0hg== Received: from DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM (2603:10b6:8:b::20) by SA1P223MB1030.NAMP223.PROD.OUTLOOK.COM (2603:10b6:806:3ad::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.36; Fri, 21 Mar 2025 20:11:30 +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.8534.031; Fri, 21 Mar 2025 20:11:30 +0000 From: Soft Works <softworkz-at-hotmail.com@ffmpeg.org> To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> Thread-Topic: [FFmpeg-devel] [RFC] FFmpeg Execution Graph Visualization Thread-Index: AduXnlObQK5dsG0ZQZicU/lpURDPYQC8I6uAAADft+A= Date: Fri, 21 Mar 2025 20:11:29 +0000 Message-ID: <DM8P223MB036550001F5BE5292F899C3FBADB2@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM> References: <DM8P223MB0365AB64AECCC838CF7CB41DBADE2@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM> <Z92viSTlKU0La9Ua@mariano> In-Reply-To: <Z92viSTlKU0La9Ua@mariano> 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_|SA1P223MB1030:EE_ x-ms-office365-filtering-correlation-id: dcc598ab-3f62-4ef7-89ed-08dd68b4916e x-microsoft-antispam: BCL:0; ARA:14566002|8060799006|7092599003|15080799006|19110799003|461199028|8062599003|56899033|102099032|1602099012|440099028|10035399004|3412199025|4302099013; x-microsoft-antispam-message-info: =?iso-8859-1?Q?e77EWjNyITE3cWp2RPI78gAa19wsD+ZqO6BWMEmLlSDqPZeGaQZT8hX2PC?= =?iso-8859-1?Q?fK32o6Tyqzp41cC814gtxoKtGCnfPSjP9iA2h/7kcHeEz09Z5Sg0740nFF?= =?iso-8859-1?Q?5ZNeV9bxsduZoaGuSfPHHhlbqPIiO1hxU3EJ6CLmoZhMH3Xv8/yptD1jQ1?= =?iso-8859-1?Q?h4PdRRdUm6DQ0cJkYfe/9m/WSGLFrDXOvdQB+cfWmmvSLd/mDNb29cso3E?= =?iso-8859-1?Q?0Vy8v6rdKwuEy1XEEmuEmn6WiycHjYeQA7hpaj8pFqtvjmXk6WdZYJfsyY?= =?iso-8859-1?Q?nztCylPI9/onSz7Y+qnm/bJU6EKdKD4eAjbMcMuuhDASBtP6Aty7fX9LY9?= =?iso-8859-1?Q?ywvNfUF385ibWMmxpiCS2u6e1uy5lpQFy/i6tml9X5pMNtlqnOzE9pSIDX?= =?iso-8859-1?Q?qDb+K4PEjr67PmuxpG/jTlBB8nt9oG3GDLjJLby1xXRPNmhIqGL2NnZ7sV?= =?iso-8859-1?Q?ACVdKTqYiDEH91/Bo1AlbW+duFD5SU8VGXDa8n9yGH1HwWSvoOa4+BERjx?= =?iso-8859-1?Q?LkCcLHU+mA6ypxo5EiHXckxpQTf4rNQimpV0OIIlP/pxkqcd7Y4yPEvzLJ?= =?iso-8859-1?Q?GmPu+Umz455uxanK3aKRxoPRVr6lfAn3aQKCQ0fTE2bbhGQtM6EiMdhlnC?= =?iso-8859-1?Q?wW6FELsKYXRTU82yEyQQZrQFvNlgIURZ6hkGeeYBeMAli00ru31DXgOCWd?= =?iso-8859-1?Q?8WiGNYP4FE3DTh54s1mScdQ0x3EwPbGS6IoSSiukeyopgxADHlgYKhuAxj?= =?iso-8859-1?Q?kDMEjjbtLVB8ZD5vPWOno963T0241lWv/ClFSed5VV0yHGxc6UJn+nNATa?= =?iso-8859-1?Q?2yWwAJ9rlMmarc7LhOHMb67kasrGMelN1rhv+uS9zcitQLKFfNkwOE6GBq?= =?iso-8859-1?Q?K5JeuSbaVoQuSRQC4MK4ej2j0e/HOD3QH2Yl3ECj93k86E63+ee3rU1f9E?= =?iso-8859-1?Q?4Vzr8QYqL43rimByfnsVrtxVG+KT8/syNlNsWdc3CaKjEliLXdLFh2VVFi?= =?iso-8859-1?Q?uQWK0Yyay/Pq5jMA/9pB9x9ve76mcwT4QITlymXtuqOXOcfjolnPqKMopA?= =?iso-8859-1?Q?dy2R6O8UVi/bXp2M2TgerUSflmcAn0J+gumKlfYc4zzJin3TSgJGWs04eC?= =?iso-8859-1?Q?I2mpuuynYSzpeUQVVsN11eqtnjsA1Y0/QVoKoEmiGWxUxPC60sAdXt8F7l?= =?iso-8859-1?Q?0uMrRDAs7TMD5vd3iZCU28VP/bAcIANmNGpnudSndohO6m7Rlmvl3hoiRp?= =?iso-8859-1?Q?tkwsgIlbuyWGSLwDpAiYz3Csf10V3X9bUP5b7zc04=3D?= x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?sLYfLHL/mNSg0sMurR3GHKVHi9CS+45EGpE6ajf03kftUZ7A9Wj5nnSlXS?= =?iso-8859-1?Q?dbakn6lkHPqrwaE3bRjR7GznJfm+HUfGauE+91NyMSpJuDN9P6Goem0Wem?= =?iso-8859-1?Q?IGUsn3Yokj5lbhi3bdARDQrTPNLT7atGH565+L1QpMJyKxo81ltJ09slqV?= =?iso-8859-1?Q?/5/CwYDwH2R7nLm/7fbTsH5MSvEt/vrlFbeOKUYI7NplZ7OfeNnHSlIiu1?= =?iso-8859-1?Q?pmaAZUKGLnnJ3SnvCdlDMmWhUEakuiBv7K8qdwGe0NYZjf+uecPjhl5Sx0?= =?iso-8859-1?Q?eRKdWecpAX5vSpp/fE/MDcBX8VRqUER2csBuLmjpYjIn7CFnGIOJESqMb/?= =?iso-8859-1?Q?qymd4WLBbOd6reu2ThLCDMAlzTNFfzCKpjzgPwam15X5KZ2KkzaQmE27BU?= =?iso-8859-1?Q?R6pcu8J9uMwkeh125wuDOQzthXQbth6s/dbHehTIhL5QQIUvvPUW5FqPQq?= =?iso-8859-1?Q?PFP4UOsKIEIR8y2knb0WgmkmVt1YdO2Kh0hm4DCSuDl5u8uOvM2C++b8L9?= =?iso-8859-1?Q?jJg8/XHj1w+g/m/mT6syNBW5sUO/+eB2tmzOVhTcSgsRWhGOx3vqgrfjTP?= =?iso-8859-1?Q?JrjISgdBQ3EijPfPpCxfQD5XLzvGi43LRTbRS2+CT2nn1eTlu+UrmcnORX?= =?iso-8859-1?Q?7bpwDe89hEL3kT/MDVEuhAQPu3OmfNfHL1s5PyCtezUSB4OotFfbxKVvSd?= =?iso-8859-1?Q?3WbFjrWORU2CKt607p6JTnjQvWQazsls6yjjSjtoCw3T/CcYzsLgJjDkjN?= =?iso-8859-1?Q?oDs075lzpjEExH10DUaOhjgJCJw9pxO7yZBta2ZZJo/F1lNFjzyOh1RdYN?= =?iso-8859-1?Q?PtDrb32nfl4UJKLXCvuNSc/Ekerrx6VyKk4eaEcVvvNyPOaueKZ8vmLFuz?= =?iso-8859-1?Q?NBSJW9Ws7qufiHEOIDRPEOB44Y5ytYYLbS7rygJJIxXGIFyU5GY5RdJ1v6?= =?iso-8859-1?Q?W0qfYVyJYC7Jvuo7bi/RZ1kHchA7iE/sgGtpRUdVOrCpMoOrGf96YJseN5?= =?iso-8859-1?Q?AivZWJxO2YWcIWqzfWRg7krgL2CBk+bEqny18re2khbncm8Hnxb/yOp1lF?= =?iso-8859-1?Q?CqhOfxY7edmG6tkSEWusm4qI5qUyYwUzfFKqiRQTLdxp/QyBZU433yxTsR?= =?iso-8859-1?Q?5pd260ljK+mY0RyzaNQ7iFDcO3LCNHwdNe086FEDG7UYiotHHso+Cg6j9Z?= =?iso-8859-1?Q?Q+XcjfNv8F5OjfZGtCqrFmg9CeVrus7AcLA8QjSo9JUTcWqjztA6ahuyxb?= =?iso-8859-1?Q?kmu/EjvLnGzcHNHXDENv5CuCYhrbsiN/nZxuCw6Sc=3D?= MIME-Version: 1.0 X-OriginatorOrg: sct-15-20-4755-11-msonline-outlook-1ff67.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: dcc598ab-3f62-4ef7-89ed-08dd68b4916e X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Mar 2025 20:11:29.9241 (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: SA1P223MB1030 Subject: Re: [FFmpeg-devel] [RFC] FFmpeg Execution Graph Visualization X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches <ffmpeg-devel.ffmpeg.org> List-Unsubscribe: <https://ffmpeg.org/mailman/options/ffmpeg-devel>, <mailto:ffmpeg-devel-request@ffmpeg.org?subject=unsubscribe> List-Archive: <https://ffmpeg.org/pipermail/ffmpeg-devel> List-Post: <mailto:ffmpeg-devel@ffmpeg.org> List-Help: <mailto:ffmpeg-devel-request@ffmpeg.org?subject=help> List-Subscribe: <https://ffmpeg.org/mailman/listinfo/ffmpeg-devel>, <mailto:ffmpeg-devel-request@ffmpeg.org?subject=subscribe> Reply-To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" <ffmpeg-devel-bounces@ffmpeg.org> Archived-At: <https://master.gitmailbox.com/ffmpegdev/DM8P223MB036550001F5BE5292F899C3FBADB2@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM/> List-Archive: <https://master.gitmailbox.com/ffmpegdev/> List-Post: <mailto:ffmpegdev@gitmailbox.com> > -----Original Message----- > From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of > Stefano Sabatini > Sent: Freitag, 21. M=E4rz 2025 19:27 > To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> > Subject: Re: [FFmpeg-devel] [RFC] FFmpeg Execution Graph Visualization > = > On date Tuesday 2025-03-18 02:32:13 +0000, Soft Works wrote: > > Hello everybody, > > > > working on the subject of writing out filtergraph information > > obviously implies the goal of being able to visualize that data in > > some way. While I do have something for long, it's tailored for > > specific workflows and is hardly useful for most. > > > > Anyway, it shouldn't be required to use once another software for > > visualize the output. This decimates the usability for any such > > feature by far. Few days ago, I was thinking about ways for making > > this feature really useful for everybody without needing to jump > > through any extra hoops. We have that range of writers (now "text > > formatters"), and so I wondered whether there isn't some text format > > that is meant to directly represent a graph for visualization > [...] > > Examples > > > > I've created a Gist with some examples of the output here: > > > > https://gist.github.com/softworkz/a196b2d0e9e2df49f766abd92f508551 > > > > (also includes a zip with html file examples) > > Questions > > > > I'm curious what you think about it! > > > > - What's good, what's bad, what should be changed/improved? > > > > - What about the displayed information, should something be added? > > > > - I'm folding out the buffer source/sink filters to simplify the view, > is that ok? > > Should the TRIM filters be excluded as well? > > > > - Since it's no longer just about filter graphs - what do you think > about the term > > "Ffmpeg Execution Graph"? > > (other ideas welcome) > > > > - Does anybody have some complex command lines for me to test? > > (no need to include media files, I can try to replicate > > something similar) > > > = > Thanks for working on this, from the examples it looks pretty amazing. > = > What it's not clear to me is how this builds up on top of text > formatters, since they are meant to render a tree structure in a > generic way. From this you can have a description of a graph, but then > you need specialized ad-hoc logic to convert it to a graph format. > = > What am I missing? Hehe, that's been a bit tricky indeed, but more in terms of figuring out th= at (and how) it can fit into the writer/textformatter patterns, the result = is rather simple and it requires only some moderate extensions to the write= r/formatter APIs: It is using a Mermaid Flowchart graph with only 3 kinds of elements: - Shapes i.e. "boxes", can't be nested - Subgraphs Container for shapes, can be nested - Links connection from one shape to another A simple graph with 2 shapes in a subgraph looks like this: ... flowchart TD subgraph s1["Subgraph 1"] A("Shape A") --> B("Shape B") end ... There's a link from A to B - but: it can also be written in a different way: ... flowchart TD subgraph s1["Subgraph 1"] A("Shape A") B("Shape B") end A --> B ... This does the same thing. The link definitions can be at a different place = in the document - which is one of the key points to make it work. Then there are three new section flags to denote subgraph, shapes and links= and two fields in the section struct (source_id_key, dest_id_key). For lin= k-producing sections they indicate the names of the keys to use for buildin= g a link. A section can also produce both - shapes and links when the flags= are set accordingly. I also use another (existing) mechanism, which is the data object that can = be provided on section start, only that it's a (publicly) defined "SectionC= ontext" struct, which is a somewhat alternative direction. I kept it for th= e moment as suggestion because I didn't know which ideas you have for the A= PI to evolve, so that's just something for discussion. Best, 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".