Clarifications on which tracks are exposed

This PR corresponds to https://www.w3.org/Bugs/Public/show_bug.cgi?id=26923
If agreeable, I'd like to make a pass on the whole spec to use normative statements (shall, must, ...) so that we can clearly check conformance on the spec.
From: Silvia Pfeiffer <notifications@github.com<mailto:notifications@github.com>> Date: Thursday, 6 November 2014 01:55

In index.html:

> @@ -131,6 +131,8 @@
>        <p>
>          The specification maintains mappings from in-band audio, video and other data tracks of media resources to HTML VideoTrack, AudioTrack, and TextTrack objects and their attribute values.
>        </p>
> +      <p>This specification defines the mapping of tracks from media resources depending on the MIME type of that resource. If an implementation claims to support that MIME type and exposes a track from a resource of that type, the exposed track must conform to this specification.</p>
> +      <p>The actual tracks exposed by a user agent is implementation dependent. A user agent may expose tracks, for which it supports parsing, decoding and rendering, for playback selection by the web application or user. In that case, the track content may or may not be exposed to the web application. A user agent may also decide to expose tracks coded in formats it does not support for processing by the web application.</p>


Nigel, you said: "A user agent may also decide to expose the existence of tracks coded in formats it does not support."

I disagree. If it can't do anything with it, why would it expose its existence? It may not even be able to decide what that actually is that it found.

It's less than worthwhile to say "hmm, I think I found some extra data in this video file, but really I don't know what it is or what you can do with it, but hey, here it is just in case you wanted to know - oh, and I'm marking it as metadata, you know, simply because I have no clue what it is - could be captions or text descriptions for all I know, or maybe it's this new track thing that I heard about where somebody invented a game that they serialised into a track - anyway - gotta move on - enjoy!"

You've gone one step further than I intended here by including any untyped data stream. What about the set of data streams with an identified type where that type can not be processed by the user agent natively?

I suggest a middle way here, in which only tracks whose type is identified should be exposed, not ones that could be "any other thing that I don't understand".


A browser would rather shut up about such a track than to mention it to the Web developer - and that's the polite thing to do.

There are clearly instances where exposing a data stream to a [set of] private decoder[s] is good for the user even if the web developer can't process them.

Nigel