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 B072D4599A for ; Mon, 1 May 2023 09:47:07 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2266C68BF9E; Mon, 1 May 2023 12:47:04 +0300 (EEST) Received: from nef.ens.fr (unknown [129.199.96.40]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2FDEA68BF04 for ; Mon, 1 May 2023 12:46:54 +0300 (EEST) X-ENS-nef-client: 129.199.129.80 ( name = phare.normalesup.org ) Received: from phare.normalesup.org (phare.normalesup.org [129.199.129.80]) by nef.ens.fr (8.14.4/1.01.28121999) with ESMTP id 3419krYn017548 for ; Mon, 1 May 2023 11:46:53 +0200 Received: by phare.normalesup.org (Postfix, from userid 1001) id 8E176EB5BF; Mon, 1 May 2023 11:46:53 +0200 (CEST) Date: Mon, 1 May 2023 11:46:53 +0200 From: Nicolas George To: FFmpeg development discussions and patches Message-ID: References: <20230428095508.221826-1-george@nsup.org> <20230428095508.221826-5-george@nsup.org> <168276131126.3843.11789945625076765172@lain.khirnov.net> <168279285287.3843.114763781387602494@lain.khirnov.net> <20230430150636.GK275832@pb2> MIME-Version: 1.0 In-Reply-To: <20230430150636.GK275832@pb2> X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.4.3 (nef.ens.fr [129.199.96.32]); Mon, 01 May 2023 11:46:53 +0200 (CEST) Subject: Re: [FFmpeg-devel] [PATCH 5/8] lavu: add a JSON writer API (WIP) 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: multipart/mixed; boundary="===============8509079029342794857==" Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: --===============8509079029342794857== Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="C46MsTetciDld2+z" Content-Disposition: inline --C46MsTetciDld2+z Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Michael Niedermayer (12023-04-30): > There are many projects which use libavcodec, format, filter > Human users use these projects >=20 > If the standarization is at a C struct level only then the human interface > for each application can be different. > Thats fine if the 2 cases use fundamentally different interfaces like a > GUI draging, droping and connecting components vs some command line > interface. > But if 2 applications both use command line / string based interfaces > it would be nice to the human user if she could use/learn the same syntax > and transfer a working example / script from one to the other. >=20 > So i think strings do matter for C libs because of that. Thank you for stating it that way. I think I can make it even a little stronger: The API of the avlibraries is so rich that applications cannot realistically cover all of them, and this is why we have the options system: so that applications can expose all the knobs and controls of avlibs without having to maintain code for every one of them. But the options system has severe limitations, including the occasional need for half-a-dozen backslashes or more for escaping and the inability to define AV_OPT_TYPE_SOMETHING if SOMETHING is defined in another library than lavu or nor generic enough. Overcoming the limitations of the options system is a project I have had for a long time, and it connects to the project of embedding the documentation into the libraries (which has received some support). http://ffmpeg.org/pipermail/ffmpeg-devel/2015-December/184525.html (the technical details in my mind have evolved a little, but not much) http://ffmpeg.org/pipermail/ffmpeg-devel/2020-August/268389.html And for that, we absolutely need an efficient strings API (this is now supported by a majority of developers, thankfully) and standardized serialization functions. In the libraries, not the avtools. To say it in a more concise way: The avlibraries must not only perform work for applications, they also must help applications communicate with users about that work, and that is done with text. Regards, --=20 Nicolas George --C46MsTetciDld2+z Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEE6ooRQGBoNzw0KnwPcZVLI8pNxgwFAmRPiosACgkQcZVLI8pN xgyZKA//XrBCyCnMBj3kU6+2h0Ia9ezfC5Wpb1JJu0mtyQv1qGLr3knSrLyjhKoK EqgT9Gg+ioN7e5wtvdrQzc3fjg2sCvOPBhLbzOIgZ64mXa8RGCK9h4/iAx25LnN5 NO4TrdN2aOHUwl2TVO4h2P6A83JWnwd9kzj8bt5c9HuL5NG3Fb4RgfK6/xIUKfRT nnpSG7iobozr5F/r6NeUDqiQKsoOLOLJpFAtzmSE8Wy7unU8r4cjVLzNvp5XdtHU pCRvfkqE3u5uZkb+xiByMp+wxkoV35DH2MrSBEjE2EdczSHR4CZ11DEpU+WfG9T1 aXSY1CMZ3agdZMIEW7qyzpQS7IxsKh/I6+VBYvq7Xh8y2me//Q2AuX5t1APdyywA CGdEwMdyK9alW8OmBW62mkpvJicVlGL+3CRwCez6QO5nahmDjQfK29nAunv5lV0L Xm7TScP2hAtBcJXFFEaxw22zoq8zBKK8NyMCszakulU3numQaiyouMcq0gAi38kf qPdV6+swbOV7vrK3ZfA5BQf3BtY4XxAoN0ykb8UYDOsKVNU7v9tyjY+fVJdaNpa9 LcVCxbr/OSMbc8bbwt7FuIHZNXYafiXNoqoB5uwDXxnewoQdRLNMm9/O1OSeIC3q Oc8ZsGgIU2YBZOdE+doXbMRnp5QHQyC8XBES4EMleG3S30Bb9P4= =84QO -----END PGP SIGNATURE----- --C46MsTetciDld2+z-- --===============8509079029342794857== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ 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". --===============8509079029342794857==--