summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/interfaces/media-source.idl
blob: 11059437f625a53caf328b488cad6e2018e01a19 (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
// 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)]
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;
};