summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/interfaces/media-source.idl
blob: 7a86a7a43c8fe9ac92922609495db637568dae75 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
// GENERATED CONTENT - DO NOT EDIT
// Content was automatically extracted by Reffy into webref
// (https://github.com/w3c/webref)
// Source: Media Source Extensions™ (https://w3c.github.io/media-source/)

enum ReadyState {
  "closed",
  "open",
  "ended",
};

enum EndOfStreamError {
  "network",
  "decode",
};

[Exposed=(Window,DedicatedWorker)]
interface MediaSource : EventTarget {
    constructor();

    [ SameObject, Exposed=DedicatedWorker ]
    readonly              attribute MediaSourceHandle   handle;

    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;
    static readonly       attribute boolean canConstructInDedicatedWorker;
    SourceBuffer          addSourceBuffer (DOMString type);
    undefined             removeSourceBuffer (SourceBuffer sourceBuffer);
    undefined             endOfStream (optional EndOfStreamError error);
    undefined             setLiveSeekableRange (double start, double end);
    undefined             clearLiveSeekableRange ();
    static boolean        isTypeSupported (DOMString type);
};

[Transferable, Exposed=(Window,DedicatedWorker)]
interface MediaSourceHandle {};

enum AppendMode {
  "segments",
  "sequence",
};

[Exposed=(Window,DedicatedWorker)]
interface SourceBuffer : EventTarget {
                    attribute AppendMode          mode;
    readonly        attribute boolean             updating;
    readonly        attribute TimeRanges          buffered;
                    attribute double              timestampOffset;
    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;
    undefined appendBuffer (BufferSource data);
    undefined abort ();
    undefined changeType (DOMString type);
    undefined remove (double start, unrestricted double end);
};

[Exposed=(Window,DedicatedWorker)]
interface SourceBufferList : EventTarget {
    readonly        attribute unsigned long length;
                    attribute EventHandler  onaddsourcebuffer;
                    attribute EventHandler  onremovesourcebuffer;
    getter SourceBuffer (unsigned long index);
};

[Exposed=(Window,DedicatedWorker)]
interface ManagedMediaSource : MediaSource {
  constructor();
  readonly attribute boolean streaming;
  attribute EventHandler onstartstreaming;
  attribute EventHandler onendstreaming;
};

[Exposed=(Window,DedicatedWorker)]
interface BufferedChangeEvent : Event {
  constructor(DOMString type, optional BufferedChangeEventInit eventInitDict = {});

  [SameObject] readonly attribute TimeRanges addedRanges;
  [SameObject] readonly attribute TimeRanges removedRanges;
};

dictionary BufferedChangeEventInit : EventInit {
  TimeRanges addedRanges;
  TimeRanges removedRanges;
};

[Exposed=(Window,DedicatedWorker)]
interface ManagedSourceBuffer : SourceBuffer {
  attribute EventHandler onbufferedchange;
};

[Exposed=(Window,DedicatedWorker)]
partial interface AudioTrack {
    readonly        attribute SourceBuffer? sourceBuffer;
};

[Exposed=(Window,DedicatedWorker)]
partial interface VideoTrack {
    readonly        attribute SourceBuffer? sourceBuffer;
};

[Exposed=(Window,DedicatedWorker)]
partial interface TextTrack {
    readonly        attribute SourceBuffer? sourceBuffer;
};