4 ms·
The 'right' solution would be to just use system codecs for everything. Many apps need good implementations of image codecs. They just need to be implemented on
by captainmuon 3y ago
The 'right' solution would be to just use system codecs for everything. Many apps need good implementations of image codecs. They just need to be implemented once by the OS vendor (or the toolkit on Linux).
Now somebody is going to say that's bad because it will fragment the ecosystem, and people will rely on something that works on one platform but not another. But you know what, that's not much different from something that works in one browser and not in another. Just file a bug against your OS. There are only finitely many image formats in the world. I'm sure Qt, .NET, Cocoa, ... have every format that you could conceivably need, and if not it should be easy to add them once.
- n2d4 3y ago> But you know what, that's not much different from something that works in one browser and not in another. The idea behind standardization is precisely to not let that happen.
- account42 3y agoRight. We already made that mistake with fonts and still only have provided workarounds (esentially the same as polyfills) instead of just standardizing a reasonable base set. This would be even worse with image formats.
- dspillett 3y ago> The 'right' solution would be to just use system codecs for everything. That doesn't always work. VLC became as popular as it is partly through bundling its own selection of codecs for its own use, when getting certain things to play in some places was quite a faf. If doing it the right way is hassle to the end user, we'll often sidestep rather than campaigning for fixes where they should be made.
- deleted 3y ago[deleted]
- Avamander 3y ago> The 'right' solution would be to just use system codecs for everything. Many apps need good implementations of image codecs. They just need to be implemented once by the OS vendor (or the toolkit on Linux). Windows has done this and is still doing this, but the decade-long track history so far is that this does not work well. It can work, in a very limited scope and if you have a lot of influence. Sure, it's really nice if an 8K@60Hz HDR HEVC video plays perfectly straight in your browser or desktop app, but more often than not, it just won't. You don't have the right browser, the extension installed (due to license agreements), good enough graphics drivers or someone has forgotten a flag yet again. And we haven't even gotten to the immense amount of variation each codec introduces or the potential attack surface. How shit the situation is with just HEVC (and thus also basically HEIC): https://github.com/StaZhu/enable-chromium-hevc-hardware-decoding https://github.com/StaZhu/enable-chromium-hevc-hardware-deco... > Just file a bug against your OS. In the end that "just" carries a lot of burden, it can't be the users reporting these issues. It's just way easier to leech off of ffmpeg and similar, and let it deal with all the formats. Instead of hoping that maybe you can leverage what the OS gives you, that it works and works correctly in all your edge-cases. Though not everything is that gloomy, there are Vulkan extensions that might (in the future) simplify cross-platform image and video decoding (and HW acceleration).