-
Notifications
You must be signed in to change notification settings - Fork 1.3k
/
lcevc.js
111 lines (96 loc) · 2.61 KB
/
lcevc.js
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
/*! @license
* Shaka Player
* Copyright 2023 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/
/**
* @fileoverview Externs for LcevcDec
* compiler.
*
* @externs
*/
// This empty namespace is declared to check if LcevcDec libraries are loaded.
/** @const */
var libDPIModule = {};
/** @const */
var LCEVCdec = {};
/**
* LCEVC Dec constructor
* @constructor
*/
LCEVCdec.LCEVCdec = class {
/**
* @param {HTMLVideoElement} media
* @param {HTMLCanvasElement} canvas
* @param {shaka.extern.LcevcConfiguration} lcevcConfig
*/
constructor(media, canvas, lcevcConfig) {
}
/**
* Append the video buffers before they are appended to
* Media Source Extensions SourceBuffer. Here the lcevc data
* will be parsed and managed to enhance frames based on timestamps.
*
* @param {!BufferSource} data Video Buffer Data.
* @param {string} type Type of Video Buffer Data.
* @param {number} variantId Variant that the fragment belongs to.
* @param {number} timestampOffset Timestamp offset for appended segments
*/
appendBuffer(data, type, variantId, timestampOffset) {}
/**
* Set current variant as variantId to the LCEVC decoder
* @param {!number} variantId
* @param {!boolean} autoBufferSwitch is lcevcDec mode that switches variant
* when the downloaded buffer from last variant has finished playing and
* buffers from the new variant starts to play.
*/
setLevelSwitching(variantId, autoBufferSwitch) {}
/**
* Set container Format for LCEVC Data Parsing.
* @param {!number} containerFormat container type of the stream.
*/
setContainerFormat(containerFormat) {}
/**
* Set streaming Format for LCEVC Data Parsing.
* @param {!number} streamingFormat container type of the stream.
*/
setStreamingFormat(streamingFormat) {}
/**
* Close LCEVC DEC
*/
close() {}
};
/**
* The older module interface, for backward compatibility.
* Typed to the same interface, but under a different name.
* @type {typeof LCEVCdec.LCEVCdec}
*/
LCEVCdec.LcevcDil;
/**
* LCEVC Support Check
*/
LCEVCdec.SupportObject = {
/**
* Check if canvas has WebGL support
* @param {HTMLCanvasElement} canvas
* @return {boolean} true if requirements are met.
*/
webGLSupport(canvas) {},
};
/**
* LCEVC Support Checklist Result
* @type {boolean}
*/
LCEVCdec.SupportObject.SupportStatus;
/**
* LCEVC Support CheckList Error if any.
* @type {string}
*/
LCEVCdec.SupportObject.SupportError;
/**
* Typedef for the module interface. Both LCEVCdec (new module) and LcevcDil
* (old module) implement roughly the same interface.
*
* @typedef {typeof LCEVCdec}
*/
var LCEVCmodule;