[whatwg] <video> resource selection algorithm and NETWORK_NO_SOURCE

Silvia Pfeiffer silviapfeiffer1 at gmail.com
Mon Jul 26 15:01:26 PDT 2010

On Tue, Jul 27, 2010 at 1:37 AM, Philip Jägenstedt <philipj at opera.com>wrote:

> On Mon, 26 Jul 2010 16:53:43 +0200, Silvia Pfeiffer <
> silviapfeiffer1 at gmail.com> wrote:
>  On Mon, Jul 26, 2010 at 11:25 PM, Philip Jägenstedt <philipj at opera.com
>> >wrote:
>>    <video controls width="400px">
>>>   </video>
>>>   <script type="text/javascript">
>>>     var video = document.querySelector("video");
>>>     var exts = ["mp4", "webm", "ogv"];
>>>     exts.forEach(function(ext) {
>>>       var source = document.createElement("source");
>>>       source.src = "HelloWorld."+ext;
>>>       source.type = "video/"+ext;
>>>       video.appendChild(source);
>>>     });
>>>     video.play();
>>>   </script>
>> Does this actually work in Opera now?
> Yes, when I have a HelloWorld.webm file available it starts playing. It
> also works in Firefox 4b1 and it should work in Chrome and Safari too unless
> they are buggy.

Right, so it works if you create the <source> elements newly, but it still
doesn't work when you have previously created the <source> element just with
an empty @src attribute (which I think is legal). Both of these work in all
the other browsers, btw.

Right, I realize there are actually situations where it isn't a pointless
> exercise as in the above. If you're already using scripts, though, you could
> actually call canPlayType yourself and use the first one that works:
>      exts.forEach(function(ext) {
>        if (video.canPlayType("video/"+ext)) {
>          video.src = "movie_300."+ext;
>          return false;
>        }
>      });

> I expect this will be interoperable right now and it's easier to understand
> exactly what's going on.

Yes, it is and works in all browsers. But I still see it as a bug if you're
not allowed to change the @src on the <source> elements and get the video
reloaded. Why would @src on <source> elements be mutable in the first place

> Looking again at the resource selection algorithm, the second step is to
> await a stable state, i.e. wait until the current script has finished. Given
> that, it wouldn't be a big problem to let modification of src attributes on
> source elements trigger resource selection, you won't get the 3-2-1 problem
> I mentioned earlier. However, then I would argue that modifying type and
> media should also have the same effect, as those affect the outcome of
> resource selection. In the end, my suggestion is still no spec change,
> except for editorial changes to clarify.

No matter what we call it, there is currently no mention of @src change (and
indeed @type and @media change) on <source> to cause resource selection and
this has caused diverging implementations in browsers. A clarification is
certainly necessary.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.whatwg.org/pipermail/whatwg-whatwg.org/attachments/20100727/1451efdf/attachment-0002.htm>

More information about the whatwg mailing list