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 677AE4B8A3 for <ffmpegdev@gitmailbox.com>; Wed, 26 Mar 2025 23:26:28 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 8E5F7687BD6; Thu, 27 Mar 2025 01:26:24 +0200 (EET) Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10olkn2036.outbound.protection.outlook.com [40.92.42.36]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 43F49687B95 for <ffmpeg-devel@ffmpeg.org>; Thu, 27 Mar 2025 01:26:17 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=rk/oDnD/PPVfCbU7xy4FdHEY000vCkDGnz600z4q/XAMFCnM8K1ZP1+siU/mHqh4JRedygjVydARuR9yVyCUM8nhXXRWSwT7SbisVklaQhN2fJWFjWpj5JkaCTt1gtW1OdPZ92xx3XBYZ+IL3io/8ZWLc/k86sqi4lRo2rDJmodqur1cU7Fs4E960oXraMUgDBRVpZT34prPHVViMofWl9c3J1Ustu1YR3O70Qa02hfZckz/ZlRHD58WhZFw+OIWb1YWwwDiB0kkudVpZiHREOkUKik2TVT/jvRs6RdOfwTYxb8Q5z3EHH2hYKEG+zgDcCHcxNKa2M9WeFofiv8TbA== 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=CEhXKzs+i1sOdbp+kfhDSls8MhjlK4cIus1DPXQS1zs=; b=L+BJMJcXS2eq+WBntJdVBTz4wCD/Z9KGxN0zewHam8PjYf2VmgCSfxJEmC56EEItN6RGyIreo7xTpgpmWQ0uSonNeZ7LdObyZ7cmHLg3A8bNmq0f8yVb+NzJ3ohquqRTQztKr9DHop08HRDvMzFdQCdgQSMhZYKQ4PUKIJMStG0ZjFgcNNvVFvr55/ElQDjbX8R/B6ADPB53quDsr8BKQWZccLBI5zlKMPCX9XmRJhMJFXr/bXyxuCYLYc2qquZeSHv1x6UkXCy1idWN4wxW5XfRDVrLW3ITFpY0gLnftFFRwjW+OGqIXsoPliez+QQTSyLNWvex9FhX8o0OClI24w== 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=CEhXKzs+i1sOdbp+kfhDSls8MhjlK4cIus1DPXQS1zs=; b=ambqJkPt568Pt6e4xqb2cIOT7YdM90/4sDeCVzt93AEwV16B2WMYWDldAl/iVm0Ii59vKlJgTAhT6F5hAZePwr7FwG72duUcDYYsawAEMcEaq7XtL9GhF7a92kNe1l8qH10sIz/ymwRe+dCXK2HwI/MM/HOZRj2RaswUYKX+g7xgzdoTZF3ly3d4gvMu0vd9N2Bh0Q+YIs8VOuRiObnwLKhrQ1n2oYH/l1RsOUJlb4EbHzW3kWh+v4WiMVeCTzoErLcqHHVzGQURq1AJIljZ/FTNA1+WGJgvsCG5T+yaVDe8IIWiUqGuMGwTsFrcBOngFSCcB+uax858Rv9g9/IrBg== Received: from DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM (2603:10b6:8:b::20) by LV1P223MB1304.NAMP223.PROD.OUTLOOK.COM (2603:10b6:408:2b4::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.44; Wed, 26 Mar 2025 23:26:13 +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.043; Wed, 26 Mar 2025 23:26:13 +0000 From: "softworkz ." <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+ABA9ftAAAAxWIw Date: Wed, 26 Mar 2025 23:26:13 +0000 Message-ID: <DM8P223MB03652B84BC0DFD2216E4A35EBAA62@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM> References: <DM8P223MB0365AB64AECCC838CF7CB41DBADE2@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM> <Z92viSTlKU0La9Ua@mariano> <DM8P223MB036550001F5BE5292F899C3FBADB2@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM> <Z+SFLmfGERrM6a70@mariano> In-Reply-To: <Z+SFLmfGERrM6a70@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_|LV1P223MB1304:EE_ x-ms-office365-filtering-correlation-id: 0dc01278-17af-4f37-e466-08dd6cbd9936 x-microsoft-antispam: BCL:0; ARA:14566002|461199028|8062599003|19110799003|8060799006|15080799006|7092599003|10035399004|3412199025|4302099013|440099028|102099032|1602099012; x-microsoft-antispam-message-info: =?iso-8859-1?Q?cbRsqdHcT7qhGKzxBxK21HgtSKrSNsLvSOqXojT8qTM+vrW4QvhqNhygdE?= =?iso-8859-1?Q?ikJCcZPy/PGByZf46HFWLWRTcucmbb5+I7vjMXJ+G4fYbdHWwFgELDyoN1?= =?iso-8859-1?Q?tWo8V6J9hHCgt2Jdmx2tvdL5TFF6IALscCZ0l6xe2ezH3oehPu8CAY6otX?= =?iso-8859-1?Q?PJDLuJkFxkmI50PJE69DL30Ha5K3g1mgeuWX0KD9fIp+8UMh0GQa8P7JEB?= =?iso-8859-1?Q?B+WRRFgZiIU60NHGw3m5uco7oy+0nQ+UU2xYgDbBkQAtAMGwhkM71kQmV8?= =?iso-8859-1?Q?W6Gw+iUDyvh8+oXYzXTIw1mvekR4c/yXweiaWa0lrNawq/DEfDub78uTu/?= =?iso-8859-1?Q?1KIhPUEkntTL+7YKCzhci0CcDoJyGFmZu3jL1zW/a16fjt2oSIphdyPXGK?= =?iso-8859-1?Q?+75apR+xqBt8BeK8G3pGFGTJ1q3CDWbZgLxzCZA/u6BmZbm4sTFCF47BDJ?= =?iso-8859-1?Q?Uql6PXAz+j5qiSKH/Bli5PfWSAXlCK2pDmvlvoP1sSW0UzdIk+1vo7ivac?= =?iso-8859-1?Q?LQBOpqJLmCJkgMmT63WGb2agk4dU0vvLPgthyFte2S1To/v79DUKdwIZjq?= =?iso-8859-1?Q?jT37GJSoNHfDYDQ/F4HNuwWYMRfnCw9hOndvm591lcDposdoReCjTKFSIJ?= =?iso-8859-1?Q?+Nqv0DcJBtZcsmskaSdT8t6Jf5XnO16H3sWySJ6OhmzirqbA7jjC0Q0iaM?= =?iso-8859-1?Q?59fuWz53Mc5HFtJNIeedcw3xWBIadjngKC18AR3FyS/PF4o/0SV0PqlvZU?= =?iso-8859-1?Q?0L6ZnqsodSfZO0smaXGTrCnATe64g+qbcJ0MC17Lj68L9Iq4k3Y3QViIBa?= =?iso-8859-1?Q?CMrdrm8WxooqOA4iS4mQJKGOli9FiDXkSO0wD319mwuEX67WM6JPdX0hbL?= =?iso-8859-1?Q?iObfWIOO0V4Be/7ErgTlOvJt/SI1CI428JmB9/OiBH9Jh4sjIDKOflVy/G?= =?iso-8859-1?Q?zJRJ8DRX+a2nSd65TohN6cJyfxhFt7trVyoYMu2a22hvFcQQWhWT2M/6jH?= =?iso-8859-1?Q?O8gix7ISkt7u4iX5czvLEwJQJJ+WVLKNUgQ6QVsUd1rIn5XN6fA0TbEj8j?= =?iso-8859-1?Q?+xs9Bh8xEJeUMObgRASKNOwfVfPX8y2ibDJT3JuoxKhbCY1dT11J4VNrT0?= =?iso-8859-1?Q?uGgXrcabDwnknf5XhFNBtB7hZUp7LNwWPp3a6r7fQdnyiwRc+YTQMXjLy6?= =?iso-8859-1?Q?/7itdVRjc353BHZJWb+FUo/GUvaeGEQ62iLtnx5ee3ZBmyA4vXewJixf4j?= =?iso-8859-1?Q?O/ig/kBYrOcE5u5PBAcHyTH6nHbYUjngnhYMUwMB0=3D?= x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?mPmfKxNj7Li/krIUhHX1Co+sPrArdtdwp1q8ppjVMQjXoat+sTMIHcMMqR?= =?iso-8859-1?Q?j7ADBQ8TMqLLRiyTpp+tW614SCl/QNdwyxNYVRaRZXKv3CrXdV3ri69WDn?= =?iso-8859-1?Q?QwwCGwP/WVSr6mRnaIdGWpaYbo0pjhCEOA8W0QhBcWhHU0yIlmE0xifTHr?= =?iso-8859-1?Q?mP6vXtk83TI2J8JS2x3lBlAR+E/aglNOFI1tjPeaB9co0fzHy2d6Ox0SyK?= =?iso-8859-1?Q?ZmQfrHECBEBUzLqAmcdzeZbikz829dQER0er466rZhrdWA/Ga/lxjEZHTG?= =?iso-8859-1?Q?+o3f9vqnBFVWagP4fftFFuzVyxcImU6N6RWsks+lt14qgQbN7Nnvc4Qz8J?= =?iso-8859-1?Q?vDg+OY/voqRlAjzvpxddzToAjl1f+Rjebw+59z6EDHBs5Qi5I2aA5DLF7X?= =?iso-8859-1?Q?YtXTM3uwwZyVyCBN/FwyNMzXSW0/r/0vva4kXHb6f71qzIm+xwljUkJ7ID?= =?iso-8859-1?Q?ZB0N2tiMFCmH3hCTMsePICxtowVlgmTkbuKoCiyYZI8VrDCdxVsFOU55zP?= =?iso-8859-1?Q?dt4/GjNwo7zFipu58BU+Q8+xVXJFzEv3ACXe9JE3Ep9UBPk27O14S0fHLb?= =?iso-8859-1?Q?6Y5vtAGSiCWYYGaI5B4YsWRnhdbqG6UsXr8DYncH69Yu2uK2D7C7ecp9SE?= =?iso-8859-1?Q?akAffgwOU4AsJPaWQN7kfgM/A+Vx7iUeZxsfLKQT9zqUcTD+Djwzl7JTLf?= =?iso-8859-1?Q?beaGKQa+pBteU6x8kTEuqiAWAgdmi18Y0TmEI5xfPIY5OqYNlSFnRqFNYa?= =?iso-8859-1?Q?8rtefZ+pNcAkItZGh5Lx8vranXqVXhVLKwa1fUuty5e0gnr8gUakP/0Nyr?= =?iso-8859-1?Q?wk0RbHrFRW+Zq4guPMlp+yAQQVZ+jsKsb/jwZqSkFMVcCT7nOWV7o40slP?= =?iso-8859-1?Q?qh/cMc+CzDUV8ETIieG4h9DyNo4royuXnAF9iT+FZ2jrlYpu6e4x5emRGi?= =?iso-8859-1?Q?BcVzUSkAj56TqJtYOSyUEy8AeSQA7xbOIm/IQqOXGxJJUbNklzlFGpjwiA?= =?iso-8859-1?Q?Qpha1YdBCQHAJoN5qo1wBKIZh5+j8UdSV5OT+zRCHqyZWwqb1d6DOHy6nK?= =?iso-8859-1?Q?6tXX5r5JadlyiAsIIULyyhC0OTQfzdyMmUO8CTHNmkbttcZFHtnMBbjRMA?= =?iso-8859-1?Q?+/g0Ybqhdpv5an0iiyxsoF8sudRNJsGtNRYONbDLiGeYiUPXyWJepIiozN?= =?iso-8859-1?Q?3GbYl4pZ6Lc7mN99n8xj3rtbuohtQb8hscrwHatiqfRJJh6v47Qlz5D98k?= =?iso-8859-1?Q?jU8zGmYsDJcqWVDYjEdbq8G5WGOAmt6YoYN8oRx00=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: 0dc01278-17af-4f37-e466-08dd6cbd9936 X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Mar 2025 23:26:13.1499 (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: LV1P223MB1304 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/DM8P223MB03652B84BC0DFD2216E4A35EBAA62@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: Mittwoch, 26. M=E4rz 2025 23:53 > To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> > Subject: Re: [FFmpeg-devel] [RFC] FFmpeg Execution Graph Visualization > = > On date Friday 2025-03-21 20:11:29 +0000, Soft Works wrote: > [...] > > > 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 that (and how) it can fit into the writer/textformatter > > patterns, the result is rather simple and it requires only some > > moderate extensions to the writer/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 link-producing sections they indicate the names of > > the keys to use for building 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 > > "SectionContext" struct, which is a somewhat alternative > > direction. > = > So basically a graph can be represented as a collection of subraphs, > each subgraphs containing shapes, and links. Yes, and link can exist at the top level (of nesting) and otherwise at any = position in the document. > > I kept it for the moment as suggestion because I didn't > > know which ideas you have for the API to evolve, so that's just > > something for discussion. > = > One of the possible uses is to expose the data printed by > filters. E.g. detection filters are printing the information either in > the stderr using custom formats, this should really be converted to > something easier to consume (whatever formats for which you don't > need a custom parser). > = > The metadata muxer also might benefit from using a text writer, to > avoid again the need for a custom parser, and probably there are more > use cases easy to spot. > = > So at some point we want to make this API accessbile from the > libraries, that is to move them into libavutil. Again, it's fine to > expose this at the tools level first so we can experiment and refine > the interface before moving to a stable one. > _______________________________________________ Yes, I see quite a number use cases as well. It's still a work in progress, but I've set up a GitHub repo for documentat= ion and as a place of interaction. It's not for ffmpeg code, but there are = tests, examples and a documentation Wiki: https://github.com/softworkz/ffmpeg_output_apis/wiki (a number of things are still incomplete) I'm also exploring a way for self-printing the data schema for each use cas= e. On the repo Wiki there are Entity-Relationship diagrams for the FFprobe = and the Graphs schema. I'll follow up with more details.. 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".