Firefox on Linux has GStreamer but it's turned off at build time. Developers can build with it to test it. At some point it'll be enabled by default, or distros can enable it for their builds, to get H.264 support.
Firefox only supports H.264 on Win7 and above because MS provided a plugin for the MS-provided codec.
I don't believe that OSX or Linux provide it, which is why Firefox does not support it natively. Hopefully this means that they've finally worked out an agreement for licensing, and can support it.
On Linux Firefox will use GStreamer, the same backend also used in Firefox OS, its not enabled in the nightly builds since not all distros have the right version of GStreamer and it ca not be loaded dynamically right now (https://bugzilla.mozilla.org/show_bug.cgi?id=794282)
We are implementing support on desktop using OS frameworks where we can. So far we have:
- support for Linux via GStreamer landed but not built by default. It needs a bit more work.
- support for Windows 7 and above which the OP post is about
- Mac OS X is not yet underway but is planned.
- Hardware H.264 decoding on Android phones via libstagefright. Some phones supported and enabled by default. Some supported but disabled at the moment. Some unsupported.
- Hardware H.264 decoding on Firefox OS/B2G enabled by default, implemented via libstagefright. Phone vendors provide the binary blobs to do the decoding.
will you enable H.264 support only on desktops once you have working backends for Windows/Linux/OS X or will they be enabled by default as they are working? Just wondering if there will be stable releases of Firefox where some platforms have H.264 decodes and some don't.
They will be enabled by default as they are working. We already have the issue of some platforms having it and others not. Some Android devices have it with Firefox for Android and some don't for example. Linux distro's could enable the GStreamer backend and gain it while others don't as another.
For detection sites should use the API "canPlayType" and similar functionality to detect if the browser supports playback.
It was a pretty big deal a while ago that quicktime support H.264; off hand, I'm pretty sure they supported it for years before MS did. If firefox supports quicktime, they support H.264.
EDIT: Well, I'll eat my hat. I'm not sure why Firefox needs a different licensing agreement on OSX when they COULD just hook into quicktime without any licensing fees at all. I'm probably grossly misunderstanding the situation.
EDIT2: Ok, so I guess AVFoundation is just the objective-c frontend for OSX's media libs. I can't for the life of me understand why it took them so long to implement.
a) We decided not to support h.264 for non-technical reasons (patent-encumbrance etc) for quite some time.
b) We don't have infinite developer resources, so it just hasn't gotten done since then.