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 379EF46B83 for ; Fri, 4 Aug 2023 17:35:36 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 94F8968C648; Fri, 4 Aug 2023 20:35:33 +0300 (EEST) Received: from nef.ens.fr (nef2.ens.fr [129.199.96.40]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A946168C389 for ; Fri, 4 Aug 2023 20:35:27 +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 374HZQbk018654 for ; Fri, 4 Aug 2023 19:35:26 +0200 Received: by phare.normalesup.org (Postfix, from userid 1001) id 73D4BEB5B7; Fri, 4 Aug 2023 19:35:26 +0200 (CEST) Date: Fri, 4 Aug 2023 19:35:26 +0200 From: Nicolas George To: FFmpeg development discussions and patches Message-ID: References: <20230802125521.GG7802@pb2> <20230802142026.GI7802@pb2> <61649ed7-f0d3-4f16-8e68-c8e258e96aaa@betaapp.fastmail.com> <20230803174505.GN7802@pb2> <20230803192533.GO7802@pb2> <20230804170918.GQ7802@pb2> MIME-Version: 1.0 In-Reply-To: <20230804170918.GQ7802@pb2> X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.4.3 (nef.ens.fr [129.199.96.32]); Fri, 04 Aug 2023 19:35:26 +0200 (CEST) Subject: Re: [FFmpeg-devel] What is FFmpeg and what should it be 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="===============3919722329452528892==" Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: --===============3919722329452528892== Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="S9DWKWTVU5ou9Y9V" Content-Disposition: inline --S9DWKWTVU5ou9Y9V Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Michael Niedermayer (12023-08-04): > Everything is there for a reason. > Every part of mp4 has a use, still we extract the data and setup various > structs like AVStream, AVPacket, AVProgram and so on. > We do not return raw mp4/mov atoms > the seperation between programs in a stream of bits/bytes looses meaning > once the frames are in AVPackets with AVStream/AVProgram. > If there is more data in any framing that people want, theres a wide range > of ways to preserve and export that data. > OTOH outputting AAC in TS or AAC is other framing is painfull to handle > especially when it is muxed into something again. because it then needs > the right framing and even if it comes in as DAB framing and the output > wants DAB framing, it is unlikely everything in the framing will be corre= ct > for the output. > The same is true for TS. I surely can take raw TS from 3 programs but if > i just take these and concatenate them into something that suppports TS > thats quite likely going to blow up somehow. > All this framing stuff should IMHO be "removed" on the demuxer side > usefull data be extracted and properly exported. And if anything > on the muxing side needs something similar it needed to rebuild it all. >=20 > I may be missing something but i dont think the raw framing is too usefull > to the user. I recommend you do what feels most simple, or most elegant, or most logical, whichever feels right. If somebody else, or you later, find a use for the framing, the code that removes it can be turned into code that extract information from it or reshape it. If and when that happens is the good time to figure out how to bring that information to the user, because that will be when what is necessary will be known. This is why the demands that you design a clean API first are absurd: at this point, you do not know exactly where this code is going, what kind of information or control you will need to expose. All this depends on which direction the codes takes, which in turns depends on you inspiration. And as the code progresses, the necessary API will emerge, and at one point it will be just a matter of thinking on it carefully to cut it cleanly. I suppose this is what the buzzword-living industry calls =E2=80=9Cagile programming=E2=80=9D. But the industry cannot do it right because it needs return on investment quick. Only a real Libre Software project like FFmpeg can do that. Regards, --=20 Nicolas George --S9DWKWTVU5ou9Y9V Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEE6ooRQGBoNzw0KnwPcZVLI8pNxgwFAmTNNtwACgkQcZVLI8pN xgzzOw/8CRhoDVUna2jaqpKA1/ttA3HHTR6yWbieNcqYEwIbWB7hpa6in/X+reVB eiFWBsW61An5o7kprDMbnJhSZtw8vm+LH3eyglU7e2Gsgvwq9dQqKPPpZ1yLyTFa /StdPoABqn9own3sGDmyjct3nZr5CGt2Oy8YDXHeilRtyRQXxTuySfQU1+LWx3p5 H2eW6kFwpMb30P2356v4fMBN8M5pfEp24JDzWoxet4v7ktWW4EOI61tdrRkuP17E watUQCUppY3uUes9nwcP3PRjeMcDVhm6wcc4zHvQQma1NbD1q0epd2Qt2626Q4tv nsPFKBCjA+ZNcYxRlP1sfX20nG43EpzKECeRJHdrP+6uxR0rluRWG3WlFaLXdikH kHgyIwzBZYQmmHSRQ9cpbgdCcNilIC17l0Trt6E5PE2ucCwdl41R6So5KaFLbLoH azfHh0EsXs5VLbPJEAvkzwWgwzgN/A0bEF7rB2dYZEbWrny89zR+FvJuU1UDnbg5 GCq92ScsinNUFRnazCDomVEfKwZ1S/o2/aIZnAhtIQ5H/U2sa6FTsPUwUnUccwsm EXE6F22xlD+N9EI88Mhm4hfW44owJD2sKmkVsKSEcPTjskKima3pi+Ofgx5jHcm6 llMHBaJbJqfFSwIlKuBuuxWmuu7ci6CH3NnK5/tOh4qLFpSkmb8= =vegg -----END PGP SIGNATURE----- --S9DWKWTVU5ou9Y9V-- --===============3919722329452528892== 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". --===============3919722329452528892==--