W3C home > Mailing lists > Public > whatwg@whatwg.org > July 2009

[whatwg] Serving up Theora <video> in the real world

From: Maciej Stachowiak <mjs@apple.com>
Date: Thu, 09 Jul 2009 20:04:42 -0700
Message-ID: <91E03C43-7D2F-4F37-9634-505766E3C5C7@apple.com>

On Jul 9, 2009, at 7:46 PM, Gregory Maxwell wrote:

> On Thu, Jul 9, 2009 at 10:35 PM, Robert O'Callahan<robert at ocallahan.org 
> > wrote:
>> 2009/7/10 Ian Fette (????????) <ifette at google.com>
>>>
>>> To me, this seems like a great test if "canPlayType" actually  
>>> works in
>>> practice. In the perfect world, it would be great to do
>>> getElementById('video'), createElement, and
>>> then canPlayType('video/whatever','theora').
>>> If this simple use case doesn't work, I would ask if it's even worth
>>> keeping canPlayType in the spec.
>>
>> var v = document.getElementById("video");
>> if (v.canPlayType && v.canPlayType("video/ogg;  
>> codecs=vorbis,theora")) {
>>   ...
>> } else {
>>   ...
>> }
>>
>> should work great. Certainly does in Firefox.
>
> It works. Except where it doesn't. It's the "where it doesn't" that
> counts. At the moment Safari has issues. Out of two widely used
> production browsers with HTML5 support, one is broken. Not good odds,
> but I'm hopeful for the future.

Robert's code is a bit buggy; canPlayType returns a string, not a  
boolean, so it will always appear to say yes. Corrected sample code  
below. I tested, and the following is tragically broken in Safari  
4.0.2 even with XiphQT installed, but works as expected in WebKit  
nightlies and will very likely work in the next Safari dot release. In  
Safari 4.0.2 it will always say no, even with XiphQT installed. If you  
are patient, I would say just use this test and it will work as  
desired Real Soon. Please note, the 4.0.2 bug is just a bug, and not a  
design flaw in canPlayType.

<script>
var v = document.createElement("video");

if (v.canPlayType && v.canPlayType("video/ogg; codecs=vorbis,theora") ! 
= "no") {
     document.write("I CAN HAS OGG");
} else {
     document.write("OH NOES");
}
</script>


Regards,
Maciej
Received on Thursday, 9 July 2009 20:04:42 UTC

This archive was generated by hypermail 2.4.0 : Wednesday, 22 January 2020 16:59:14 UTC