3 ms·
In general, it seems like FOSS multimedia software blows proprietary software out of the water with regards to format support, and that proprietary software wor
by rossy 11y ago
In general, it seems like FOSS multimedia software blows proprietary software out of the water with regards to format support, and that proprietary software works at a disadvantage, because for them, adding support for a new format means navigating a patent minefield and paying licence fees, but for FOSS, supporting every format is as simple as including FFmpeg.
- gioele 11y agoI have a theory that I call "just one small fix". I think FOSS media players can handle more video files (not just formats) because most of the times the errors that makes them unplayable are just small mistakes in the way things are encoded. Does a certain camera produces only even timestamps? Let's check for that fix it, it is "just one small fix: one if and a division". Is that MPEG encoded with swapped croma? Let's detect it and fix it, it is "just ome small fix: one if and a swap". Over the time FOSS projects accumulate all these fixes and one day you realize that they can read practically everything as if a single person sat down and wrote that super-robust code in one go. Proprietary software cannot benefit from this kind of drive-by contributions.
- Bouncingsoul1 11y agoOne "if" here a "dirty bool flag" there and sooner or later your code is unmaintainable, I think OpenSource + Review prevents this kind of code.
- TeMPOraL 11y agoIf you figure out early enough that you need this kind of feature, you can architecture your code in such a way that those "drive-by fixes" are actually pluggable and maintainable.
- nfriedly 11y agoIndeed - at my last job, we built a js widget that would go on customers websites, and we learned pretty quickly that we would need pluggable, sometimes customers-specific hacks. Things like old versions of Prototype.js that broke JSON.stringify or forcing Internet Explorer 8+ into IE7 emulation mode. One customer overwrote Array.prototype.forEach with a broken version that lost the scope. Fun times.
- AndrewUnmuted 11y agoYour theory definitely has some weight to it. You should peruse the FFmpeg git server and see what the commits consist of. Most of the time, the changes comprise no more than one line, and involve the changing of an operator or adding on to an if statement. Media codecs take a really long time to disrupt the continuum, and often times, decoders can play back other kinds of media by just changing some header information in the file.