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 9EEA14C655 for ; Sun, 9 Mar 2025 18:55:41 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 24B0568E68A; Sun, 9 Mar 2025 20:55:37 +0200 (EET) Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10olkn2046.outbound.protection.outlook.com [40.92.40.46]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C24CF68E4AC for ; Sun, 9 Mar 2025 20:55:25 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=RhKAHZUiDvvialhPZ1F9EXvLaFRio8ehMkfPKMy5PO2RpDy7ULRnMMT9RCeYnf+6742iNC5gX1z9HuoizhG2qSPPgNt/7xzaWDvjIeHgw8N+EZo5C5QzZ91648SOrt8kzSrTTdceRHBF9tWRMZTc5Mloh7VlDm0BGnb5kzHv+N77mXc9Ha8NHyNYe3uFsSJpOo5EZMQfCtFse3mVGU/hQwIgXvWX+JTu4F0tMKqTzyhy2plc0e3/Ah1gD1xip64j7Cb7vvflgvNbnY5WV8VA2A8wG10nTQoVezHLQBqqQc8dcGjuiSdUpipb8KYpj39MuTADGV15bGtdedcFQhzGgw== 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=TJm6+ZDhWc4Vw5UZyHllMqJKlWm6D1YpM7K1ZjjLQqs=; b=aBvLKso8lZ8o/EWCGx1kiPW7MQHtFCW4T4CiClTuQsZZYx9+xE3KdG/YADZJfxAEKLeu9aQA8UaXybuIi2dVXgUBw2kf9NW34ObgCap4cBI+PelyvRGO+aJKu89aEeYQUf1TVE9k6m6LciKL+UuO0tiOdpLSTvuYzllIT9vgBcGIh4UavokQWD1Tj217fzyM8+PuiZ3UL6/7U4iSaxeMCPG6uW7eHqnmMCezsoNXX5PqJYGeQiC8LPGcs3ztgvS8uNNDzlDLIdLtuVLZSb1SWMpRyNUD0UDZ4cMpvM2rPZf3zZqO3mbXsK+ubmPcNwkAsEN6gvWmSJLgHqmgKuHNvA== 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=TJm6+ZDhWc4Vw5UZyHllMqJKlWm6D1YpM7K1ZjjLQqs=; b=D5YNRH9wfqqXPcCChF9hOeRB6oFeu13Qji7iEk7ACFymb3avyekC8kn9/UO4cjZ/tA2r1++xp5KWypQBYqjO0zm8rvj0I5vxE2tUa2HGLyh38undBXRXgSfIz0pyiagLbQa28qfIdgowcZRyUUtQ7kBLf5jXTc3zLw3JtTetx2ZM4BIyzWZZjMN5flAmD8Bqq5/fUAWZhqEoCQejIjUDuUxBDMIqjSGoKRkIrcVVW4aRUx3X/8e8K9rK8Cr26GpwKp5rxEvVyDIOgAlHppWvcvKs0FGvqhU1CDq/Pi9bavpyml9al58rQeHjDIGl8CRnJK47HkaF1F9VoQLzhI/AjA== Received: from DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM (2603:10b6:8:b::20) by CH0P223MB0203.NAMP223.PROD.OUTLOOK.COM (2603:10b6:610:f7::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.26; Sun, 9 Mar 2025 18:55:23 +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.8511.025; Sun, 9 Mar 2025 18:55:23 +0000 From: Soft Works To: Stefano Sabatini , FFmpeg development discussions and patches Thread-Topic: [FFmpeg-devel] [PATCH v3 1/7] fftools/textformat: Extract and generalize textformat api from ffprobe.c Thread-Index: AQHbipEFizx1C9jbWEO+DATMb/mrbbNpWdgAgAHXXSA= Date: Sun, 9 Mar 2025 18:55:22 +0000 Message-ID: References: <6239813ba0e293bd427cecf8437aadef778ea3ee.1740823324.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_|CH0P223MB0203:EE_ x-ms-office365-filtering-correlation-id: 49663705-8de2-43d7-f34e-08dd5f3bf252 x-microsoft-antispam: BCL:0; ARA:14566002|8062599003|19110799003|461199028|7092599003|15080799006|8060799006|440099028|3412199025|102099032; x-microsoft-antispam-message-info: =?iso-8859-1?Q?Cf4wbWwrqsjdXg0BjKophmFVaG/jAJTI2ijnyX+JDLisJmc1vP6YlxOmuG?= =?iso-8859-1?Q?cjXH1TQC6iHsL7Th0yKnDVYvsiDp9BzUlXLdpeE2S00rSKYEtGD9KjNSRC?= =?iso-8859-1?Q?hhvLuAQldNHXrxfKaS8UWVVHQqISKjWD6DHT0yGRL2WkWycLQCy8uH1QVT?= =?iso-8859-1?Q?C05O/tG9M3lLNugli8/Zd1Gbu5h67UPHFITMSeUOo7KjdQp1/u23wjnwvL?= =?iso-8859-1?Q?PQ2j/qhVsKqNLcdDu/ACyP41SLvMwD9ooVxuFDF/2YZU6Jo2n6BLAxdbs6?= =?iso-8859-1?Q?q+QUBjvo9P/eVurxtboZ75lbHeTEWrzp+CtqGJCHEVVetQYYQvlzNl7UL7?= =?iso-8859-1?Q?f+8JeaxhroeL5A2g9TMV+KOKx6brw2aoSyDD+bBzayQ075SN/3BlKuAFq0?= =?iso-8859-1?Q?DqNfyfqVKyI4EzDiS5gpkOJGHAPPlFIQ6QhzDX0u5yNQeYKPFj+hVAWMan?= =?iso-8859-1?Q?CrWsjXBN1CNjs1Ckspz7Rq0QDIF/Y3N6WmtLLMTj2Ufrh/V0rGlO2R5gvV?= =?iso-8859-1?Q?HsrRB2ydPaB7f/7LVj2ovY4TGvtgDuPhUvhMK74tYgvHB1ZJL59SQKJ00F?= =?iso-8859-1?Q?YFeG5ddk+djSrnG5QYOetvHOdef0bzRwooV17n02knKHI30PYX7NHDdRtX?= =?iso-8859-1?Q?+iZjwt8O3vc/0/Plds169i6ISVCIk8mPl03yGaOdlVUdn30SBWdwFZJpkG?= =?iso-8859-1?Q?DeWp77tkeJsgV5biakW7Uvozc4P/ndIekA846xJKgnC6EgAGeYraIAX3hZ?= =?iso-8859-1?Q?XCaxQa19v6ausZ9HSnX6hwsgLYFfCA2prNSo/DK0R6K3qtkvRTyVDRf8Dp?= =?iso-8859-1?Q?p+0mYl0OkH7wVembHXLAxLSby4ijJzw++iZn1XD9XfLkMfMfhCnT7uQ4VR?= =?iso-8859-1?Q?XekvI+s4k5MISxwF+P20NF/Lk5Fac1jC4HR/vcbs1G7+xEAFDoOlGolq54?= =?iso-8859-1?Q?+NJrCA/ovF/O4YSHLexWhFtASAO3tKmESvVy3/BSxqSUJCWexwbpD/TCNp?= =?iso-8859-1?Q?kzL2DUsYEdMFPBKeEqWHVWhpJ3MLF6dwvV5i5RnohfZii1w5+xadx2qzHG?= =?iso-8859-1?Q?p40OsWgrtJrIvFWs4hCc90WCxc9n96Q3tsg4/5eM1hujMPva9G1arAnVa+?= =?iso-8859-1?Q?+PV8CMpA=3D=3D?= x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?urxYq+8dlTGmRroxvDEZD7JYFsv0oNM0cZHyC5cfnxB8h0Up/yIpphmrCF?= =?iso-8859-1?Q?2AfpyioldjQxZ1l8jnthX8Vow1saiHjpKZ2El9po6sUOugy9K5gIFKgzm/?= =?iso-8859-1?Q?zT8pNKdum1Vwx5kxj71O8e83GPdvgAfAjbNR0OKXlZlPSAT5t21HWl9xIB?= =?iso-8859-1?Q?c3hc/225eaUHlJKAeN5FB6rwHhJl45fjk4qt7WuHuLwY9+4nH5tdPSsbNi?= =?iso-8859-1?Q?2kY4WRylPGOV8motUiutFyPgicyQZ/XrCjlDWc+yG2382PRRjjFhSLJkpM?= =?iso-8859-1?Q?EKJdC3uCsEZbTVKeLfnfAA439mX/CSqqU8wpUE5MC5SYao/qlG1WojzkGf?= =?iso-8859-1?Q?sJEeNCopLyYqWWQnpzudoFdIXYBFnOtoMAS0i1fg9ekgqkVnuOj2iLrfAt?= =?iso-8859-1?Q?YV47Zgd9/38K9LcmmriLqhyL7oHi4/AHzXhBQKUSWm3T7ahla/bnULP6gC?= =?iso-8859-1?Q?gQurEqX9cl69jSlBEwpyUzcyrVTo23+NUukBPelxveviFiLAsLO4VZOTWy?= =?iso-8859-1?Q?GrCOkTks+Jxaotlu2GiLayBM+c7vh1UdwV8aH/QKAqyUUWYTIUwMPM07ZQ?= =?iso-8859-1?Q?6KOwOaW73r4xBStVPltpEfHXMIc/r56YvQGhIspsc/p92Y2pLVxIlXjMM/?= =?iso-8859-1?Q?0Z7J74UqfovXo6LNbsRkkEtcQJ09XYVIp5fhHnBh/m4MOWoW0NQZ7WWtEe?= =?iso-8859-1?Q?8vkrQlT4ffgg/apCB0GQ8lr+k7kzMSmlBCiZ3txuSMkm7zM7nG/iMMOSee?= =?iso-8859-1?Q?uNFUQzpvrWVow8zUX2MHWwNakQuM6wISP1+o6M9DQVIFmPVlsOFWcQOplB?= =?iso-8859-1?Q?+sZe2gTPBJRp+umO/qYV9nv6fao9hH58c8TUAwCRnzjzTldF7qWv912O/8?= =?iso-8859-1?Q?EphhzS1uhDnFbLjrbknzvrhH2cpXtl5A25qxK2VXci3sgQ99eJu4U1k0wn?= =?iso-8859-1?Q?J+OLmrDLAL0rX1QG92jOPv6aty1n1bkPKQbAGenkG0UoGYZIBVotla+n+l?= =?iso-8859-1?Q?j6wmLHRp9n/cSzfXnWycSCzmVds+qr7Sg0nhrVbLuILEN2PwLQgKzqBNK0?= =?iso-8859-1?Q?DO1t5wJJiJtL593P0QbFF3fGgt40+FcZwDUGXU2PaTvrXfLD4Fm+SQnp5a?= =?iso-8859-1?Q?4rIe0Gw0px7ka2VLkpSFw2gJuAlPSaiNsJedWnP+oKMaIjt/6M2yn9eE2o?= =?iso-8859-1?Q?m5DIJhRRdtwBrK8/lXfItuhjYbzGmYRlBOB0UckuT2FJnj7eat+JoEnV5i?= =?iso-8859-1?Q?ugVA6GWbLXwqYW/SUHE7LDA62rDx3hA0dHscw2C3k=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: 49663705-8de2-43d7-f34e-08dd5f3bf252 X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Mar 2025 18:55:22.9662 (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: CH0P223MB0203 Subject: Re: [FFmpeg-devel] [PATCH v3 1/7] fftools/textformat: Extract and generalize textformat api from ffprobe.c 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 Cc: Soft Works Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: > -----Original Message----- > From: Stefano Sabatini > Sent: Samstag, 8. M=E4rz 2025 15:37 > To: FFmpeg development discussions and patches > Cc: Soft Works ; softworkz > ; Andreas Rheinhardt > > Subject: Re: [FFmpeg-devel] [PATCH v3 1/7] fftools/textformat: Extract > and generalize textformat api from ffprobe.c > = > On date Saturday 2025-03-01 10:01:58 +0000, softworkz wrote: > [...] > = > > +int avtext_context_open(AVTextFormatContext **ptctx, const > AVTextFormatter *formatter, AVTextWriterContext *writer, const char > *args, > > + const struct AVTextFormatSection *sections, > int nb_sections, > > + int show_value_unit, > > + int use_value_prefix, > > + int use_byte_value_binary_prefix, > > + int use_value_sexagesimal_format, > > + int show_optional_fields, > > + char *show_data_hash); > = > writer -> writer_ctx? > = > I'm fine with changing this later to avoid massive rebase edits. > = > Also I notice there is some of the usual inconsistencies here: > av_X_Y against avXY and avX_Y that we have in the rest of the code. > = > Maybe let's stick to avX_Y or to av_X_Y. > = > Also this might be: > av_text_format_open(...) > av_text_format_close(...) > av_text_format_print_X(...) > = > Or to simplify we can just call the structure AVTextContext (I see > text as an evolution of a string, meant for structured formatted data, > which is implied by the fact that we need a formatter) and simplify > related functions naming to: > av_text_open(...) > av_text_close(...) > av_text_print_X(...) > = > av_text_formatter_... > av_text_writer_open... > av_text_writer_close... > = > In fact I don't think there is much gain in keeping "context" in the > name of the functions. > = > What do you think? > = > Again, since this is not public API (yet?) this should not be > considered a blocker (also I've been out of touch with FFmpeg and I > might be not aware of API conventions evolution). Hi Stefano, regarding the API naming I thought that maybe it's better to get it straigh= t right away. To make it fully consistent as mentioned, we should look at a= ll "public" API names. Here's a complete list: # "avtexformat.h" ## Defines AV_TEXTFORMAT_FLAG_SUPPORTS_OPTIONAL_FIELDS =3D> AV_TEXTFORMAT_FLAG_SUPPORTS_OP= TIONAL_FIELDS AV_TEXTFORMAT_FLAG_SUPPORTS_MIXED_ARRAY_CONTENT =3D> AV_TEXTFORMAT_FLAG_SUPPORTS_MI= XED_ARRAY_CONTENT AV_TEXTFORMAT_PRINT_STRING_OPTIONAL =3D> AV_TEXTFORMAT_PRINT_STRING_OPT= IONAL AV_TEXTFORMAT_PRINT_STRING_VALIDATE =3D> AV_TEXTFORMAT_PRINT_STRING_VAL= IDATE ## Enum StringValidation =3D> StringValidation AV_TEXTFORMAT_STRING_VALIDATION_FAIL =3D> AV_TEXTFORMAT_STRING_VALIDATIO= N_FAIL AV_TEXTFORMAT_STRING_VALIDATION_REPLACE =3D> AV_TEXTFORMAT_STRING_VALIDATIO= N_REPLACE AV_TEXTFORMAT_STRING_VALIDATION_IGNORE =3D> AV_TEXTFORMAT_STRING_VALIDATIO= N_IGNORE AV_TEXTFORMAT_STRING_VALIDATION_NB =3D> AV_TEXTFORMAT_STRING_VALIDATIO= N_NB ## Structs AVTextFormatSection =3D> AVTextFormatSection AVTextFormatter =3D> AVTextFormatter AVTextFormatContext =3D> AVTextFormatContext ## Functions avtext_context_open() =3D> avtext_context_open() avtext_context_close() =3D> avtext_context_close() avtext_print_section_header() =3D> avtext_print_section_header() avtext_print_section_footer() =3D> avtext_print_section_footer() avtext_print_integer() =3D> avtext_print_integer() avtext_print_string() =3D> avtext_print_string() avtext_print_unit_int() =3D> avtext_print_unit_int() avtext_print_rational() =3D> avtext_print_rational() avtext_print_time() =3D> avtext_print_time() avtext_print_ts() =3D> avtext_print_ts() avtext_print_data() =3D> avtext_print_data() avtext_print_data_hash() =3D> avtext_print_data_hash() avtext_print_integers() =3D> avtext_print_integers() avtext_get_formatter_by_name() =3D> avtext_get_formatter_by_name() # "avtextwriters.h" ## Structs AVTextWriter =3D> AVTextWriter AVTextWriterContext =3D> AVTextWriterContext ## Functions avtextwriter_context_open() =3D> avtextwriter_context_open() avtextwriter_context_close() =3D> avtextwriter_context_close() avtextwriter_create_stdout() =3D> avtextwriter_create_stdout() avtextwriter_create_avio() =3D> avtextwriter_create_avio() avtextwriter_create_file() =3D> avtextwriter_create_file() avtextwriter_create_buffer() =3D> avtextwriter_create_buffer() If you could edit the right sides in the way you think it should be, I'll m= ake the changes accordingly. 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".