diff --git a/index.html b/index.html index 6158936..8b5e4be 100644 --- a/index.html +++ b/index.html @@ -908,15 +908,15 @@ "publisher": "W3C" } }, - "publishISODate": "2020-01-27T00:00:00.000Z", - "generatedSubtitle": "Editor's Draft 27 January 2020" + "publishISODate": "2020-01-28T00:00:00.000Z", + "generatedSubtitle": "Editor's Draft 28 January 2020" } -
+

Media Source Extensions™

W3C Editor's Draft - +

This version:
@@ -1036,7 +1036,7 @@

Abstract

- This specification extends HTMLMediaElement [HTML51] to allow + This specification extends HTMLMediaElement [HTML] to allow JavaScript to generate media streams for playback. Allowing JavaScript to generate streams facilitates a variety of use cases like adaptive streaming and time shifting live streams. @@ -1118,10 +1118,10 @@

1.2 DefinitionsMediaSource object URL
-

A MediaSource object URL is a unique Blob URI [FILE-API] created by createObjectURL(). It is used to attach a MediaSource object to an HTMLMediaElement.

+

A MediaSource object URL is a unique Blob URI [FILE-API] created by createObjectURL(). It is used to attach a MediaSource object to an HTMLMediaElement.

These URLs are the same as a Blob URI, except that anything in the definition of that feature that refers to File and Blob objects is hereby extended to also apply to MediaSource objects.

The origin of the MediaSource object URL is the relevant settings object of this during the call to createObjectURL().

-
Note

For example, the origin of the MediaSource object URL affects the way that the media element is consumed by canvas.

+
Note

For example, the origin of the MediaSource object URL affects the way that the media element is consumed by canvas.

Parent Media Source
@@ -1208,15 +1208,16 @@

2. MediaSource Object
Note

JavaScript applications SHOULD use this status code to terminate playback with a decode error. For example, if a parsing error occurs while processing out-of-band media data.

-
WebIDL[Constructor]
-interface MediaSource : EventTarget {
+
WebIDL[Exposed=Window]
+interface MediaSource : EventTarget {
+    constructor();
     readonly        attribute SourceBufferList    sourceBuffers;
     readonly        attribute SourceBufferList    activeSourceBuffers;
     readonly        attribute ReadyState          readyState;
                     attribute unrestricted double duration;
-                    attribute EventHandler        onsourceopen;
-                    attribute EventHandler        onsourceended;
-                    attribute EventHandler        onsourceclose;
+                    attribute EventHandler        onsourceopen;
+                    attribute EventHandler        onsourceended;
+                    attribute EventHandler        onsourceclose;
     SourceBuffer   addSourceBuffer (DOMString type);
     void           removeSourceBuffer (SourceBuffer sourceBuffer);
     void           endOfStream (optional EndOfStreamError error);
@@ -1325,14 +1326,14 @@ 

2.1 AttributessourceBuffer attribute on the AudioTrack object to null.
  • Remove the AudioTrack object from the HTMLMediaElement audioTracks list.
    Note

    - This should trigger AudioTrackList [HTML51] logic to queue a task to fire a trusted event named removetrack, that does not bubble and is not cancelable, and that uses the TrackEvent interface, with the track attribute initialized to the AudioTrack object, at the HTMLMediaElement audioTracks list. - If the enabled attribute on the AudioTrack object was true at the beginning of this removal step, then this should also trigger AudioTrackList [HTML51] logic to queue a task to fire a simple event named change at the HTMLMediaElement audioTracks list + This should trigger AudioTrackList [HTML] logic to queue a task to fire a trusted event named removetrack, that does not bubble and is not cancelable, and that uses the TrackEvent interface, with the track attribute initialized to the AudioTrack object, at the HTMLMediaElement audioTracks list. + If the enabled attribute on the AudioTrack object was true at the beginning of this removal step, then this should also trigger AudioTrackList [HTML] logic to queue a task to fire a simple event named change at the HTMLMediaElement audioTracks list

  • Remove the AudioTrack object from the SourceBuffer audioTracks list.
    Note

    - This should trigger AudioTrackList [HTML51] logic to queue a task to fire a trusted event named removetrack, that does not bubble and is not cancelable, and that uses the TrackEvent interface, with the track attribute initialized to the AudioTrack object, at the SourceBuffer audioTracks list. - If the enabled attribute on the AudioTrack object was true at the beginning of this removal step, then this should also trigger AudioTrackList [HTML51] logic to queue a task to fire a simple event named change at the SourceBuffer audioTracks list + This should trigger AudioTrackList [HTML] logic to queue a task to fire a trusted event named removetrack, that does not bubble and is not cancelable, and that uses the TrackEvent interface, with the track attribute initialized to the AudioTrack object, at the SourceBuffer audioTracks list. + If the enabled attribute on the AudioTrack object was true at the beginning of this removal step, then this should also trigger AudioTrackList [HTML] logic to queue a task to fire a simple event named change at the SourceBuffer audioTracks list

  • @@ -1349,14 +1350,14 @@

    2.1 AttributessourceBuffer attribute on the VideoTrack object to null.
  • Remove the VideoTrack object from the HTMLMediaElement videoTracks list.
    Note

    - This should trigger VideoTrackList [HTML51] logic to queue a task to fire a trusted event named removetrack, that does not bubble and is not cancelable, and that uses the TrackEvent interface, with the track attribute initialized to the VideoTrack object, at the HTMLMediaElement videoTracks list. - If the selected attribute on the VideoTrack object was true at the beginning of this removal step, then this should also trigger VideoTrackList [HTML51] logic to queue a task to fire a simple event named change at the HTMLMediaElement videoTracks list + This should trigger VideoTrackList [HTML] logic to queue a task to fire a trusted event named removetrack, that does not bubble and is not cancelable, and that uses the TrackEvent interface, with the track attribute initialized to the VideoTrack object, at the HTMLMediaElement videoTracks list. + If the selected attribute on the VideoTrack object was true at the beginning of this removal step, then this should also trigger VideoTrackList [HTML] logic to queue a task to fire a simple event named change at the HTMLMediaElement videoTracks list

  • Remove the VideoTrack object from the SourceBuffer videoTracks list.
    Note

    - This should trigger VideoTrackList [HTML51] logic to queue a task to fire a trusted event named removetrack, that does not bubble and is not cancelable, and that uses the TrackEvent interface, with the track attribute initialized to the VideoTrack object, at the SourceBuffer videoTracks list. - If the selected attribute on the VideoTrack object was true at the beginning of this removal step, then this should also trigger VideoTrackList [HTML51] logic to queue a task to fire a simple event named change at the SourceBuffer videoTracks list + This should trigger VideoTrackList [HTML] logic to queue a task to fire a trusted event named removetrack, that does not bubble and is not cancelable, and that uses the TrackEvent interface, with the track attribute initialized to the VideoTrack object, at the SourceBuffer videoTracks list. + If the selected attribute on the VideoTrack object was true at the beginning of this removal step, then this should also trigger VideoTrackList [HTML] logic to queue a task to fire a simple event named change at the SourceBuffer videoTracks list

  • @@ -1374,14 +1375,14 @@

    2.1 AttributessourceBuffer attribute on the TextTrack object to null.
  • Remove the TextTrack object from the HTMLMediaElement textTracks list.
    Note

    - This should trigger TextTrackList [HTML51] logic to queue a task to fire a trusted event named removetrack, that does not bubble and is not cancelable, and that uses the TrackEvent interface, with the track attribute initialized to the TextTrack object, at the HTMLMediaElement textTracks list. - If the mode attribute on the TextTrack object was "showing" or "hidden" at the beginning of this removal step, then this should also trigger TextTrackList [HTML51] logic to queue a task to fire a simple event named change at the HTMLMediaElement textTracks list. + This should trigger TextTrackList [HTML] logic to queue a task to fire a trusted event named removetrack, that does not bubble and is not cancelable, and that uses the TrackEvent interface, with the track attribute initialized to the TextTrack object, at the HTMLMediaElement textTracks list. + If the mode attribute on the TextTrack object was "showing" or "hidden" at the beginning of this removal step, then this should also trigger TextTrackList [HTML] logic to queue a task to fire a simple event named change at the HTMLMediaElement textTracks list.

  • Remove the TextTrack object from the SourceBuffer textTracks list.
    Note

    - This should trigger TextTrackList [HTML51] logic to queue a task to fire a trusted event named removetrack, that does not bubble and is not cancelable, and that uses the TrackEvent interface, with the track attribute initialized to the TextTrack object, at the SourceBuffer textTracks list. - If the mode attribute on the TextTrack object was "showing" or "hidden" at the beginning of this removal step, then this should also trigger TextTrackList [HTML51] logic to queue a task to fire a simple event named change at the SourceBuffer textTracks list. + This should trigger TextTrackList [HTML] logic to queue a task to fire a trusted event named removetrack, that does not bubble and is not cancelable, and that uses the TrackEvent interface, with the track attribute initialized to the TextTrack object, at the SourceBuffer textTracks list. + If the mode attribute on the TextTrack object was "showing" or "hidden" at the beginning of this removal step, then this should also trigger TextTrackList [HTML] logic to queue a task to fire a simple event named change at the SourceBuffer textTracks list.

  • @@ -1503,7 +1504,7 @@

    2.4.1 Atta a media provider object that is a MediaSource object or a URL record whose object is a MediaSource object, then let mode be local, skip the first step in the resource fetch algorithm (which may otherwise set mode to remote) and add the steps and clarifications below to the "Otherwise (mode is local)" section of the resource fetch algorithm. -

    Note

    The resource fetch algorithm's first step is expected to eventually align with selecting local mode for URL records whose objects are media provider objects. The intent is that if the HTMLMediaElement's src attribute or selected child <source>'s src attribute is a blob: URL matching a MediaSource object URL when the respective src attribute was last changed, then that MediaSource object is used as the media provider object and current media resource in the local mode logic in the resource fetch algorithm. This also means that the remote mode logic that includes observance of any preload attribute is skipped when a MediaSource object is attached. Even with that eventual change to [HTML51], the execution of the following steps at the beginning of the local mode logic is still required when the current media resource is a MediaSource object.

    +

    Note

    The resource fetch algorithm's first step is expected to eventually align with selecting local mode for URL records whose objects are media provider objects. The intent is that if the HTMLMediaElement's src attribute or selected child <source>'s src attribute is a blob: URL matching a MediaSource object URL when the respective src attribute was last changed, then that MediaSource object is used as the media provider object and current media resource in the local mode logic in the resource fetch algorithm. This also means that the remote mode logic that includes observance of any preload attribute is skipped when a MediaSource object is attached. Even with that eventual change to [HTML], the execution of the following steps at the beginning of the local mode logic is still required when the current media resource is a MediaSource object.

    Note

    Relative to the action which triggered the media element's resource selection algorithm, these steps are asynchronous. The resource fetch algorithm is run after the task that invoked the resource selection algorithm is allowed to continue and a stable state is reached. Implementations may delay the steps in the "Otherwise" clause, below, until the MediaSource object is ready for use.

    If readyState is NOT set to "closed"
    @@ -1524,7 +1525,7 @@

    2.4.1 Atta

    -
    Note

    An attached MediaSource does not use the remote mode steps in the resource fetch algorithm, so the media element will not fire "suspend" events. Though future versions of this specification will likely remove "progress" and "stalled" events from a media element with an attached MediaSource, user agents conforming to this version of the specification may still fire these two events as these [HTML51] references changed after implementations of this specification stabilized.

    +
    Note

    An attached MediaSource does not use the remote mode steps in the resource fetch algorithm, so the media element will not fire "suspend" events. Though future versions of this specification will likely remove "progress" and "stalled" events from a media element with an attached MediaSource, user agents conforming to this version of the specification may still fire these two events as these [HTML] references changed after implementations of this specification stabilized.

    @@ -1543,7 +1544,7 @@

    2.4.2 De
  • Queue a task to fire a simple event named sourceclose at the MediaSource.
  • -
    Note

    Going forward, this algorithm is intended to be externally called and run in any case where the attached MediaSource, if any, must be detached from the media element. It MAY be called on HTMLMediaElement [HTML51] operations like load() and resource fetch algorithm failures in addition to, or in place of, when the media element transitions to NETWORK_EMPTY. Resource fetch algorithm failures are those which abort either the resource fetch algorithm or the resource selection algorithm, with the exception that the "Final step" [HTML51] is not considered a failure that triggers detachment.

    +
    Note

    Going forward, this algorithm is intended to be externally called and run in any case where the attached MediaSource, if any, must be detached from the media element. It MAY be called on HTMLMediaElement [HTML] operations like load() and resource fetch algorithm failures in addition to, or in place of, when the media element transitions to NETWORK_EMPTY. Resource fetch algorithm failures are those which abort either the resource fetch algorithm or the resource selection algorithm, with the exception that the "Final step" [HTML] is not considered a failure that triggers detachment.

    @@ -1560,7 +1561,7 @@

    2.4.3 SeekingHTMLMediaElement.readyState attribute is greater than HAVE_METADATA, then set the HTMLMediaElement.readyState attribute to HAVE_METADATA. -
    Note

    Per HTMLMediaElement ready states [HTML51] logic, HTMLMediaElement.readyState changes may trigger events on the HTMLMediaElement.

    +
    Note

    Per HTMLMediaElement ready states [HTML] logic, HTMLMediaElement.readyState changes may trigger events on the HTMLMediaElement.

  • The media element waits until an appendBuffer() call causes the coded frame processing algorithm to set the HTMLMediaElement.readyState attribute to a value greater than HAVE_METADATA. @@ -1610,7 +1611,7 @@

    2.4.4 SourceBuf
    1. Set the HTMLMediaElement.readyState attribute to HAVE_METADATA. -
      Note

      Per HTMLMediaElement ready states [HTML51] logic, HTMLMediaElement.readyState changes may trigger events on the HTMLMediaElement.

    2. +
      Note

      Per HTMLMediaElement ready states [HTML] logic, HTMLMediaElement.readyState changes may trigger events on the HTMLMediaElement.

    3. Abort these steps.
    @@ -1618,7 +1619,7 @@

    2.4.4 SourceBuf
    1. Set the HTMLMediaElement.readyState attribute to HAVE_ENOUGH_DATA. -
      Note

      Per HTMLMediaElement ready states [HTML51] logic, HTMLMediaElement.readyState changes may trigger events on the HTMLMediaElement.

    2. +
      Note

      Per HTMLMediaElement ready states [HTML] logic, HTMLMediaElement.readyState changes may trigger events on the HTMLMediaElement.

    3. Playback may resume at this point if it was previously suspended by a transition to HAVE_CURRENT_DATA.
    4. Abort these steps.
    @@ -1627,7 +1628,7 @@

    2.4.4 SourceBuf
    1. Set the HTMLMediaElement.readyState attribute to HAVE_FUTURE_DATA. -
      Note

      Per HTMLMediaElement ready states [HTML51] logic, HTMLMediaElement.readyState changes may trigger events on the HTMLMediaElement.

      +
      Note

      Per HTMLMediaElement ready states [HTML] logic, HTMLMediaElement.readyState changes may trigger events on the HTMLMediaElement.

    2. Playback may resume at this point if it was previously suspended by a transition to HAVE_CURRENT_DATA.
    3. Abort these steps.
    4. @@ -1637,7 +1638,7 @@

      2.4.4 SourceBuf
      1. Set the HTMLMediaElement.readyState attribute to HAVE_CURRENT_DATA. -
        Note

        Per HTMLMediaElement ready states [HTML51] logic, HTMLMediaElement.readyState changes may trigger events on the HTMLMediaElement.

        +
        Note

        Per HTMLMediaElement ready states [HTML] logic, HTMLMediaElement.readyState changes may trigger events on the HTMLMediaElement.

      2. Playback is suspended at this point since the media element doesn't have enough data to advance the media timeline.
      3. Abort these steps.
      4. @@ -1804,21 +1805,22 @@

        3. SourceBuffer Object<

        -
        WebIDLinterface SourceBuffer : EventTarget {
        +
        WebIDL[Exposed=Window]
        +interface SourceBuffer : EventTarget {
                             attribute AppendMode          mode;
             readonly        attribute boolean             updating;
        -    readonly        attribute TimeRanges          buffered;
        +    readonly        attribute TimeRanges          buffered;
                             attribute double              timestampOffset;
        -    readonly        attribute AudioTrackList      audioTracks;
        -    readonly        attribute VideoTrackList      videoTracks;
        -    readonly        attribute TextTrackList       textTracks;
        +    readonly        attribute AudioTrackList      audioTracks;
        +    readonly        attribute VideoTrackList      videoTracks;
        +    readonly        attribute TextTrackList       textTracks;
                             attribute double              appendWindowStart;
                             attribute unrestricted double appendWindowEnd;
        -                    attribute EventHandler        onupdatestart;
        -                    attribute EventHandler        onupdate;
        -                    attribute EventHandler        onupdateend;
        -                    attribute EventHandler        onerror;
        -                    attribute EventHandler        onabort;
        +                    attribute EventHandler        onupdatestart;
        +                    attribute EventHandler        onupdate;
        +                    attribute EventHandler        onupdateend;
        +                    attribute EventHandler        onerror;
        +                    attribute EventHandler        onabort;
             void appendBuffer (BufferSource data);
             void abort ();
             void remove (double start, unrestricted double end);
        @@ -2346,12 +2348,12 @@ 

        3.5.7 I
      5. Add new audio track to the audioTracks attribute on this SourceBuffer object.
        Note

        - This should trigger AudioTrackList [HTML51] logic to queue a task to fire a trusted event named addtrack, that does not bubble and is not cancelable, and that uses the TrackEvent interface, with the track attribute initialized to new audio track, at the AudioTrackList object referenced by the audioTracks attribute on this SourceBuffer object. + This should trigger AudioTrackList [HTML] logic to queue a task to fire a trusted event named addtrack, that does not bubble and is not cancelable, and that uses the TrackEvent interface, with the track attribute initialized to new audio track, at the AudioTrackList object referenced by the audioTracks attribute on this SourceBuffer object.

      6. Add new audio track to the audioTracks attribute on the HTMLMediaElement.
        Note

        - This should trigger AudioTrackList [HTML51] logic to queue a task to fire a trusted event named addtrack, that does not bubble and is not cancelable, and that uses the TrackEvent interface, with the track attribute initialized to new audio track, at the AudioTrackList object referenced by the audioTracks attribute on the HTMLMediaElement. + This should trigger AudioTrackList [HTML] logic to queue a task to fire a trusted event named addtrack, that does not bubble and is not cancelable, and that uses the TrackEvent interface, with the track attribute initialized to new audio track, at the AudioTrackList object referenced by the audioTracks attribute on the HTMLMediaElement.

      @@ -2399,12 +2401,12 @@

      3.5.7 I
    5. Add new video track to the videoTracks attribute on this SourceBuffer object.
      Note

      - This should trigger VideoTrackList [HTML51] logic to queue a task to fire a trusted event named addtrack, that does not bubble and is not cancelable, and that uses the TrackEvent interface, with the track attribute initialized to new video track, at the VideoTrackList object referenced by the videoTracks attribute on this SourceBuffer object. + This should trigger VideoTrackList [HTML] logic to queue a task to fire a trusted event named addtrack, that does not bubble and is not cancelable, and that uses the TrackEvent interface, with the track attribute initialized to new video track, at the VideoTrackList object referenced by the videoTracks attribute on this SourceBuffer object.

    6. Add new video track to the videoTracks attribute on the HTMLMediaElement.
      Note

      - This should trigger VideoTrackList [HTML51] logic to queue a task to fire a trusted event named addtrack, that does not bubble and is not cancelable, and that uses the TrackEvent interface, with the track attribute initialized to new video track, at the VideoTrackList object referenced by the videoTracks attribute on the HTMLMediaElement. + This should trigger VideoTrackList [HTML] logic to queue a task to fire a trusted event named addtrack, that does not bubble and is not cancelable, and that uses the TrackEvent interface, with the track attribute initialized to new video track, at the VideoTrackList object referenced by the videoTracks attribute on the HTMLMediaElement.

    @@ -2449,12 +2451,12 @@

    3.5.7 I

  • Add new text track to the textTracks attribute on this SourceBuffer object.
    Note

    - This should trigger TextTrackList [HTML51] logic to queue a task to fire a trusted event named addtrack, that does not bubble and is not cancelable, and that uses the TrackEvent interface, with the track attribute initialized to new text track, at the TextTrackList object referenced by the textTracks attribute on this SourceBuffer object. + This should trigger TextTrackList [HTML] logic to queue a task to fire a trusted event named addtrack, that does not bubble and is not cancelable, and that uses the TrackEvent interface, with the track attribute initialized to new text track, at the TextTrackList object referenced by the textTracks attribute on this SourceBuffer object.

  • Add new text track to the textTracks attribute on the HTMLMediaElement.
    Note

    - This should trigger TextTrackList [HTML51] logic to queue a task to fire a trusted event named addtrack, that does not bubble and is not cancelable, and that uses the TrackEvent interface, with the track attribute initialized to new text track, at the TextTrackList object referenced by the textTracks attribute on the HTMLMediaElement. + This should trigger TextTrackList [HTML] logic to queue a task to fire a trusted event named addtrack, that does not bubble and is not cancelable, and that uses the TrackEvent interface, with the track attribute initialized to new text track, at the TextTrackList object referenced by the textTracks attribute on the HTMLMediaElement.

  • @@ -2480,7 +2482,7 @@

    3.5.7 I these steps.
  • Set the HTMLMediaElement.readyState attribute to HAVE_METADATA.
    Note

    - Per HTMLMediaElement ready states [HTML51] logic, HTMLMediaElement.readyState changes may trigger events on the HTMLMediaElement. This particular transition should trigger HTMLMediaElement logic to queue a task to fire a simple event named loadedmetadata at the media element. + Per HTMLMediaElement ready states [HTML] logic, HTMLMediaElement.readyState changes may trigger events on the HTMLMediaElement. This particular transition should trigger HTMLMediaElement logic to queue a task to fire a simple event named loadedmetadata at the media element.

  • @@ -2488,7 +2490,7 @@

    3.5.7 I
  • If the active track flag equals true and the HTMLMediaElement.readyState attribute is greater than HAVE_CURRENT_DATA, then set the HTMLMediaElement.readyState attribute to HAVE_METADATA. -
    Note

    Per HTMLMediaElement ready states [HTML51] logic, HTMLMediaElement.readyState changes may trigger events on the HTMLMediaElement.

    +
    Note

    Per HTMLMediaElement ready states [HTML] logic, HTMLMediaElement.readyState changes may trigger events on the HTMLMediaElement.

  • @@ -2671,15 +2673,15 @@

    3.5.8 Coded Fram
  • If the HTMLMediaElement.readyState attribute is HAVE_METADATA and the new coded frames cause HTMLMediaElement.buffered to have a TimeRange for the current playback position, then set the HTMLMediaElement.readyState attribute to HAVE_CURRENT_DATA.

    -
    Note

    Per HTMLMediaElement ready states [HTML51] logic, HTMLMediaElement.readyState changes may trigger events on the HTMLMediaElement.

    +
    Note

    Per HTMLMediaElement ready states [HTML] logic, HTMLMediaElement.readyState changes may trigger events on the HTMLMediaElement.

  • If the HTMLMediaElement.readyState attribute is HAVE_CURRENT_DATA and the new coded frames cause HTMLMediaElement.buffered to have a TimeRange that includes the current playback position and some time beyond the current playback position, then set the HTMLMediaElement.readyState attribute to HAVE_FUTURE_DATA.

    -
    Note

    Per HTMLMediaElement ready states [HTML51] logic, HTMLMediaElement.readyState changes may trigger events on the HTMLMediaElement.

    +
    Note

    Per HTMLMediaElement ready states [HTML] logic, HTMLMediaElement.readyState changes may trigger events on the HTMLMediaElement.

  • If the HTMLMediaElement.readyState attribute is HAVE_FUTURE_DATA and the new coded frames cause HTMLMediaElement.buffered to have a TimeRange that includes the current playback position and enough data to ensure uninterrupted playback, then set the HTMLMediaElement.readyState attribute to HAVE_ENOUGH_DATA.

    -
    Note

    Per HTMLMediaElement ready states [HTML51] logic, HTMLMediaElement.readyState changes may trigger events on the HTMLMediaElement.

    +
    Note

    Per HTMLMediaElement ready states [HTML] logic, HTMLMediaElement.readyState changes may trigger events on the HTMLMediaElement.

  • If the media segment contains data beyond the current duration, then run the duration change algorithm with new duration set to the maximum of the current duration and the group end timestamp.
  • @@ -2728,7 +2730,7 @@

    3.5.9 Cod

    If this object is in activeSourceBuffers, the current playback position is greater than or equal to start and less than the remove end timestamp, and HTMLMediaElement.readyState is greater than HAVE_METADATA, then set the HTMLMediaElement.readyState attribute to HAVE_METADATA and stall playback.

    -
    Note

    Per HTMLMediaElement ready states [HTML51] logic, HTMLMediaElement.readyState changes may trigger events on the HTMLMediaElement.

    +
    Note

    Per HTMLMediaElement ready states [HTML] logic, HTMLMediaElement.readyState changes may trigger events on the HTMLMediaElement.

    Note

    This transition occurs because media data for the current position has been removed. Playback cannot progress until media for the current playback position is appended or the selected/enabled tracks change.

    @@ -2890,10 +2892,11 @@

    3.5.13 Tex

    4. SourceBufferList Object

    SourceBufferList is a simple container object for SourceBuffer objects. It provides read-only array access and fires events when the list is modified.

    -
    WebIDLinterface SourceBufferList : EventTarget {
    +
    WebIDL[Exposed=Window]
    +interface SourceBufferList : EventTarget {
         readonly        attribute unsigned long length;
    -                    attribute EventHandler  onaddsourcebuffer;
    -                    attribute EventHandler  onremovesourcebuffer;
    +                    attribute EventHandler  onaddsourcebuffer;
    +                    attribute EventHandler  onremovesourcebuffer;
         getter SourceBuffer (unsigned long index);
     };
    @@ -2972,7 +2975,7 @@

    5. URL Object Extensi

    This section specifies extensions to the URL[FILE-API] object definition.

    WebIDL[Exposed=Window]
    -partial interface URL {
    +partial interface URL {
         static DOMString createObjectURL (MediaSource mediaSource);
     };

    5.1 Methods

    createObjectURL, static

    Creates URLs for MediaSource objects.

    @@ -3038,9 +3041,9 @@

    6. HTMLMediaEle

    7. AudioTrack Extensions

    -

    This section specifies extensions to the HTML AudioTrack definition.

    +

    This section specifies extensions to the [HTML] AudioTrack definition.

    -
    WebIDLpartial interface AudioTrack {
    +      
    WebIDLpartial interface AudioTrack {
         readonly        attribute SourceBuffer? sourceBuffer;
     };

    Attributes

    sourceBuffer of type SourceBuffer, readonly , nullable

    Returns the SourceBuffer that created this track. Returns null if this track was not created by a SourceBuffer or the SourceBuffer has been removed from the sourceBuffers attribute of its parent media source.

    @@ -3049,9 +3052,9 @@

    7. AudioTrack Extensi

    8. VideoTrack Extensions

    -

    This section specifies extensions to the HTML VideoTrack definition.

    +

    This section specifies extensions to the [HTML] VideoTrack definition.

    -
    WebIDLpartial interface VideoTrack {
    +      
    WebIDLpartial interface VideoTrack {
         readonly        attribute SourceBuffer? sourceBuffer;
     };

    Attributes

    sourceBuffer of type SourceBuffer, readonly , nullable

    Returns the SourceBuffer that created this track. Returns null if this track was not created by a SourceBuffer or the SourceBuffer has been removed from the sourceBuffers attribute of its parent media source.

    @@ -3060,9 +3063,9 @@

    8. VideoTrack Extensi

    9. TextTrack Extensions

    -

    This section specifies extensions to the HTML TextTrack definition.

    +

    This section specifies extensions to the [HTML] TextTrack definition.

    -
    WebIDLpartial interface TextTrack {
    +      
    WebIDLpartial interface TextTrack {
         readonly        attribute SourceBuffer? sourceBuffer;
     };

    Attributes

    sourceBuffer of type SourceBuffer, readonly , nullable

    Returns the SourceBuffer that created this track. Returns null if this track was not created by a SourceBuffer or the SourceBuffer has been removed from the sourceBuffers attribute of its parent media source.

    @@ -3274,7 +3277,7 @@

    A. VideoPlaybackQuality

    B. References

    B.1 Normative references

    -
    [FILE-API]
    File API. Marijn Kruisselbrink; Arun Ranganathan. W3C. 11 September 2019. W3C Working Draft. URL: https://www.w3.org/TR/FileAPI/
    [HTML]
    HTML Standard. Anne van Kesteren; Domenic Denicola; Ian Hickson; Philip Jägenstedt; Simon Pieters. WHATWG. Living Standard. URL: https://html.spec.whatwg.org/multipage/
    [HTML51]
    HTML 5.1 2nd Edition. Steve Faulkner; Arron Eicholz; Travis Leithead; Alex Danilo. W3C. 3 October 2017. W3C Recommendation. URL: https://www.w3.org/TR/html51/
    [MSE-REGISTRY]
    Media Source Extensions™ Byte Stream Format Registry. Matthew Wolenetz; Jerry Smith; Aaron Colwell. W3C. URL: byte-stream-format-registry.html
    [RFC2119]
    Key words for use in RFCs to Indicate Requirement Levels. S. Bradner. IETF. March 1997. Best Current Practice. URL: https://tools.ietf.org/html/rfc2119
    [RFC8174]
    Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words. B. Leiba. IETF. May 2017. Best Current Practice. URL: https://tools.ietf.org/html/rfc8174
    [WEBIDL]
    Web IDL. Boris Zbarsky. W3C. 15 December 2016. W3C Editor's Draft. URL: https://heycam.github.io/webidl/
    +
    [dom]
    DOM Standard. Anne van Kesteren. WHATWG. Living Standard. URL: https://dom.spec.whatwg.org/
    [FILE-API]
    File API. Marijn Kruisselbrink; Arun Ranganathan. W3C. 11 September 2019. W3C Working Draft. URL: https://www.w3.org/TR/FileAPI/
    [HTML]
    HTML Standard. Anne van Kesteren; Domenic Denicola; Ian Hickson; Philip Jägenstedt; Simon Pieters. WHATWG. Living Standard. URL: https://html.spec.whatwg.org/multipage/
    [MSE-REGISTRY]
    Media Source Extensions™ Byte Stream Format Registry. Matthew Wolenetz; Jerry Smith; Aaron Colwell. W3C. URL: byte-stream-format-registry.html
    [RFC2119]
    Key words for use in RFCs to Indicate Requirement Levels. S. Bradner. IETF. March 1997. Best Current Practice. URL: https://tools.ietf.org/html/rfc2119
    [RFC8174]
    Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words. B. Leiba. IETF. May 2017. Best Current Practice. URL: https://tools.ietf.org/html/rfc8174
    [url]
    URL Standard. Anne van Kesteren. WHATWG. Living Standard. URL: https://url.spec.whatwg.org/
    [WEBIDL]
    Web IDL. Boris Zbarsky. W3C. 15 December 2016. W3C Editor's Draft. URL: https://heycam.github.io/webidl/

    B.2 Informative references