PCs used to be a niche product. They used to be for people who would do things like "copy a few cells in their favourite spreadsheet program". Most people never did that, or understood what meant.
Then, computers started doing things that were useful to regular people. That's when they really took off, and soon everyone had one. Now, all those people are starting to move on to mobile devices and tablets that can do everything they care about.
And that means the PC is going back to what it once was: A niche product for people who care about spreadsheets.
It might [currently] be the most popular format, but W3C rules prohibit it from being a standard.
No matter what the W3C says, it is the video format used on the web. Standards are not merely dictated by standards bodies. De facto standards are just as important, or more so.
That's one hell of an advantage.
Not really. h.264 is cheap if you are making money off it, and it saves you money by having the best compression ratios. Using something else might very well end up costing you more, even if the format is free.
You are a bit confused about JPEG2000. It does not really use any features of JPEG, it is an entirely different kind of compression. It adds an optional lossless mode. Also, it definitely isn't "developed by photographers".
In the end, it also didn't really end up any better than JPEG. Sometimes it is even worse.
Bzip2 and LZMA are not really replacements for the Huffman stage of JPEG. They are algorithms for compressing regular files, while Huffman compresses symbol streams.
However, there are better algorithms, yes, like arithmetic coding. The JPEG format even supports one kind of arithmetic coder, but hardly any software supports this. You could probably come up with even better methods than the one JPEG defines.
However, since nothing supports this, it would be a huge undertaking to get it accepted and implemented everywhere. If you could pull that off, then it would be stupid to just update one stage of the JPEG algorithm. All the other parts of JPEG are showing their age too, and we could do much, much better now if we started from scratch.
Actually, though, we wouldn't need to and shouldn't start from scratch. JPEG is approximately the same as the MPEG-1 keyframe format. Just taking the keyframe format from a more modern codec, like h.264 or VP8 would give a huge gain over JPEG. In fact, Google is trying to do exactly that with their WebP image format. Microsoft also has done the same with their JPEG XR format which I think is based on VC-1. We'll see how that works out in practice, though. So far they haven't exactly caught on, but these things take time.
Of course I have. It is not an accepted standard yet, and it is supported in a single browser, as far as I know. The reference implementation of PNG does not support it. What I wrote stands as written.
In most cases PNG IS indeed a replacement for JPG; there is exactly one meaningful feature that PNG lacks, lossy compression.
Which is, you know, the entire point of the JPEG format.
PNG is not at all a replacement for JPG. It has nowhere near the same feature set. PNG is a replacement for non-animated GIF only.
Also, your analogy falters: h.264 is already the standard format for video on the web. It's what Flash uses. Pretty much every single video you see uses h.264. WebM is in the same position as PNG was in replacing the widely-used GIF. And PNG was actually better than GIF, while WebM's only real advantage is that it is free.
Apple changed the agreement once already to appease the GPL crowd. But apparently it was not enough for this guy.
He could have tried to work with Apple constructively to figure out what changes he needed. But he didn't, he just stirred up drama on the internet instead, so Apple just pulled the app.
If you need to add volatiles to your code to get it to run right, then either code is doing low-level hardware accesses, is multithreaded (and some say you shouldn't be using volatile even for that), or else it is completely broken. That, or the compiler is broken.
I have a really hard time thinking up a scenario where adding a volatile like that would actually be the correct fix, and not just a change that makes the code work by random chance. It sure seems like the actual problem should be elsewhere.
PCs used to be a niche product. They used to be for people who would do things like "copy a few cells in their favourite spreadsheet program". Most people never did that, or understood what meant.
Then, computers started doing things that were useful to regular people. That's when they really took off, and soon everyone had one. Now, all those people are starting to move on to mobile devices and tablets that can do everything they care about.
And that means the PC is going back to what it once was: A niche product for people who care about spreadsheets.
"WebM" is not really the container, it's an overall name for VP8 and Vorbis in a container that is a subset of the MKV format.
Also, they probably did not choose Ogg because it is a bit of a horrible mess and programmers in general don't like it at all.
Look, if I wanted my actions to have consequences, I'd be living real life, not playing video games!
Just give me a good, linear narrative with lots of explosions.
It might [currently] be the most popular format, but W3C rules prohibit it from being a standard.
No matter what the W3C says, it is the video format used on the web. Standards are not merely dictated by standards bodies. De facto standards are just as important, or more so.
That's one hell of an advantage.
Not really. h.264 is cheap if you are making money off it, and it saves you money by having the best compression ratios. Using something else might very well end up costing you more, even if the format is free.
1.04, then, perhaps.
You are a bit confused about JPEG2000. It does not really use any features of JPEG, it is an entirely different kind of compression. It adds an optional lossless mode. Also, it definitely isn't "developed by photographers".
In the end, it also didn't really end up any better than JPEG. Sometimes it is even worse.
Bzip2 and LZMA are not really replacements for the Huffman stage of JPEG. They are algorithms for compressing regular files, while Huffman compresses symbol streams.
However, there are better algorithms, yes, like arithmetic coding. The JPEG format even supports one kind of arithmetic coder, but hardly any software supports this. You could probably come up with even better methods than the one JPEG defines.
However, since nothing supports this, it would be a huge undertaking to get it accepted and implemented everywhere. If you could pull that off, then it would be stupid to just update one stage of the JPEG algorithm. All the other parts of JPEG are showing their age too, and we could do much, much better now if we started from scratch.
Actually, though, we wouldn't need to and shouldn't start from scratch. JPEG is approximately the same as the MPEG-1 keyframe format. Just taking the keyframe format from a more modern codec, like h.264 or VP8 would give a huge gain over JPEG. In fact, Google is trying to do exactly that with their WebP image format. Microsoft also has done the same with their JPEG XR format which I think is based on VC-1. We'll see how that works out in practice, though. So far they haven't exactly caught on, but these things take time.
That is a video codec, not a video format.
Have you seriously never heard of animated PNG?
Of course I have. It is not an accepted standard yet, and it is supported in a single browser, as far as I know. The reference implementation of PNG does not support it. What I wrote stands as written.
In most cases PNG IS indeed a replacement for JPG; there is exactly one meaningful feature that PNG lacks, lossy compression.
Which is, you know, the entire point of the JPEG format.
APNG is a recent extension to the PNG format, which was not accepted by libpng, and is not widely supported.
One day PNG may be a replacement for animated GIF too, but that day is not today.
Chrome ships with Flash, you know.
If you want your web-based video to "Just Work", you use h.264 and Flash. Just like everyone is already doing.
No, WebM is a video format. It specifies a container, a video codec and an audio codec.
PNG is not at all a replacement for JPG. It has nowhere near the same feature set. PNG is a replacement for non-animated GIF only.
Also, your analogy falters: h.264 is already the standard format for video on the web. It's what Flash uses. Pretty much every single video you see uses h.264. WebM is in the same position as PNG was in replacing the widely-used GIF. And PNG was actually better than GIF, while WebM's only real advantage is that it is free.
Yes. Yes, it is. A VLC developer requested it be pulled, and Apple pulled it.
Apple changed the agreement once already to appease the GPL crowd. But apparently it was not enough for this guy.
He could have tried to work with Apple constructively to figure out what changes he needed. But he didn't, he just stirred up drama on the internet instead, so Apple just pulled the app.
What the hell do Apple think they are anyway?
People who respect software licenses when the license holders request software be removed from their store?
I hate to point this out to you, but you get an Apple-provided movie player for free with the device, and you always have.
Obviously, free software does not achieve success by making money.
It does, however, succeed by having people actually use it.
You know the creators of VLC were calling for it to be removed, yes?
And neither have you.
Providing a service to sell applications and games in a convenient way?
That really sounds like a questionable strategy on the part of the compiler. That doesn't seem like it should be kosher with the C spec.
If you need to add volatiles to your code to get it to run right, then either code is doing low-level hardware accesses, is multithreaded (and some say you shouldn't be using volatile even for that), or else it is completely broken. That, or the compiler is broken.
I have a really hard time thinking up a scenario where adding a volatile like that would actually be the correct fix, and not just a change that makes the code work by random chance. It sure seems like the actual problem should be elsewhere.
They... added a volatile?
What the hell is that function doing, if it requires that?