@supraio/client-daemon-js 0.0.0-mznacl.255 → 0.0.0-mznacl.256
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/daemon.html +1 -1
- package/daemon.js +2 -2
- package/nacl-decoder.js +316 -308
- package/package.json +1 -1
- package/screen.html +1 -1
- package/screen.js +6 -6
- package/screen.js.map +2 -2
- package/sdk.js +8 -8
- package/sdk.js.map +2 -2
- package/supra-client-daemon.js +1488 -730
- package/supra-client-daemon.js.map +1 -1
- package/supra-client-daemon.wasm +0 -0
- package/supra-client-screen.js +1722 -602
- package/supra-client-screen.js.map +1 -1
- package/supra-client-screen.wasm +0 -0
package/nacl-decoder.js
CHANGED
|
@@ -60,326 +60,334 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
60
60
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
61
61
|
};
|
|
62
62
|
// Initialization
|
|
63
|
-
function
|
|
64
|
-
|
|
65
|
-
var listenerEl = document.createElement("div");
|
|
66
|
-
listenerEl.setAttribute("id", "listener");
|
|
67
|
-
listenerEl.addEventListener("message", handleMessage, true);
|
|
68
|
-
listenerEl.addEventListener("load", handleLoad, true);
|
|
69
|
-
listenerEl.addEventListener("crash", handleCrash, true);
|
|
70
|
-
document.body.appendChild(listenerEl);
|
|
71
|
-
var baseHref = (_b = (_a = document.getElementsByTagName("base")[0]) === null || _a === void 0 ? void 0 : _a.href) !== null && _b !== void 0 ? _b : location.href;
|
|
72
|
-
var nmpPath = new URL("nacl-decoder.nmf", baseHref).href;
|
|
73
|
-
var naclModuleEl = document.createElement("embed");
|
|
74
|
-
naclModuleEl.setAttribute("width", "1920");
|
|
75
|
-
naclModuleEl.setAttribute("height", "1080");
|
|
76
|
-
naclModuleEl.setAttribute("src", nmpPath);
|
|
77
|
-
naclModuleEl.setAttribute("type", "application/x-nacl");
|
|
78
|
-
naclModuleEl.setAttribute("id", "nacl_module");
|
|
79
|
-
listenerEl.appendChild(naclModuleEl);
|
|
80
|
-
return {
|
|
81
|
-
listenerEl: listenerEl,
|
|
82
|
-
naclModuleEl: naclModuleEl,
|
|
83
|
-
};
|
|
63
|
+
function isNaClSupported() {
|
|
64
|
+
return navigator.mimeTypes["application/x-nacl"] !== undefined;
|
|
84
65
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
var
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
66
|
+
if (isNaClSupported()) {
|
|
67
|
+
function createNaClModule() {
|
|
68
|
+
var _a, _b;
|
|
69
|
+
if (!isNaClSupported()) {
|
|
70
|
+
throw new Error("NaCl is not supported in this browser.");
|
|
71
|
+
}
|
|
72
|
+
var listenerEl = document.createElement("div");
|
|
73
|
+
listenerEl.setAttribute("id", "listener");
|
|
74
|
+
listenerEl.addEventListener("message", handleMessage, true);
|
|
75
|
+
listenerEl.addEventListener("load", handleLoad, true);
|
|
76
|
+
listenerEl.addEventListener("crash", handleCrash, true);
|
|
77
|
+
document.body.appendChild(listenerEl);
|
|
78
|
+
var baseHref = (_b = (_a = document.getElementsByTagName("base")[0]) === null || _a === void 0 ? void 0 : _a.href) !== null && _b !== void 0 ? _b : location.href;
|
|
79
|
+
var nmpPath = new URL("nacl-decoder.nmf", baseHref).href;
|
|
80
|
+
var naclModuleEl = document.createElement("embed");
|
|
81
|
+
naclModuleEl.setAttribute("width", "1920");
|
|
82
|
+
naclModuleEl.setAttribute("height", "1080");
|
|
83
|
+
naclModuleEl.setAttribute("src", nmpPath);
|
|
84
|
+
naclModuleEl.setAttribute("type", "application/x-nacl");
|
|
85
|
+
naclModuleEl.setAttribute("id", "nacl_module");
|
|
86
|
+
listenerEl.appendChild(naclModuleEl);
|
|
87
|
+
return {
|
|
88
|
+
listenerEl: listenerEl,
|
|
89
|
+
naclModuleEl: naclModuleEl,
|
|
90
|
+
};
|
|
91
91
|
}
|
|
92
|
-
var
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
function
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
}
|
|
101
|
-
// Helpers
|
|
102
|
-
var JSToNaClMessageType;
|
|
103
|
-
(function (JSToNaClMessageType) {
|
|
104
|
-
JSToNaClMessageType[JSToNaClMessageType["Render"] = 0] = "Render";
|
|
105
|
-
JSToNaClMessageType[JSToNaClMessageType["Initialize"] = 1] = "Initialize";
|
|
106
|
-
JSToNaClMessageType[JSToNaClMessageType["Decode"] = 2] = "Decode";
|
|
107
|
-
JSToNaClMessageType[JSToNaClMessageType["GetPicture"] = 3] = "GetPicture";
|
|
108
|
-
JSToNaClMessageType[JSToNaClMessageType["Flush"] = 4] = "Flush";
|
|
109
|
-
JSToNaClMessageType[JSToNaClMessageType["Reset"] = 5] = "Reset";
|
|
110
|
-
JSToNaClMessageType[JSToNaClMessageType["RecyclePicture"] = 6] = "RecyclePicture";
|
|
111
|
-
})(JSToNaClMessageType || (JSToNaClMessageType = {}));
|
|
112
|
-
var NaClToJSMessageType;
|
|
113
|
-
(function (NaClToJSMessageType) {
|
|
114
|
-
NaClToJSMessageType[NaClToJSMessageType["RenderResult"] = 0] = "RenderResult";
|
|
115
|
-
NaClToJSMessageType[NaClToJSMessageType["InitializeResult"] = 1] = "InitializeResult";
|
|
116
|
-
NaClToJSMessageType[NaClToJSMessageType["DecodeResult"] = 2] = "DecodeResult";
|
|
117
|
-
NaClToJSMessageType[NaClToJSMessageType["GetPictureResult"] = 3] = "GetPictureResult";
|
|
118
|
-
NaClToJSMessageType[NaClToJSMessageType["FlushResult"] = 4] = "FlushResult";
|
|
119
|
-
NaClToJSMessageType[NaClToJSMessageType["ResetResult"] = 5] = "ResetResult";
|
|
120
|
-
NaClToJSMessageType[NaClToJSMessageType["UnknownDataType"] = 254] = "UnknownDataType";
|
|
121
|
-
NaClToJSMessageType[NaClToJSMessageType["UnknownMessageType"] = 255] = "UnknownMessageType";
|
|
122
|
-
})(NaClToJSMessageType || (NaClToJSMessageType = {}));
|
|
123
|
-
function convertMessageToArrayBuffer(message) {
|
|
124
|
-
var _a, _b;
|
|
125
|
-
var arrayBuffer = new ArrayBuffer(1 + ((_b = (_a = message.payload) === null || _a === void 0 ? void 0 : _a.byteLength) !== null && _b !== void 0 ? _b : 0));
|
|
126
|
-
var uint8Array = new Uint8Array(arrayBuffer);
|
|
127
|
-
uint8Array[0] = message.type;
|
|
128
|
-
if (message.payload) {
|
|
129
|
-
uint8Array.set(new Uint8Array(message.payload), 1);
|
|
92
|
+
var _a = createNaClModule(), listenerEl = _a.listenerEl, naclModuleEl_1 = _a.naclModuleEl;
|
|
93
|
+
// Bridge logic
|
|
94
|
+
var messageListeners_1 = new Set();
|
|
95
|
+
function handleMessage(event) {
|
|
96
|
+
if (!(event.data instanceof ArrayBuffer)) {
|
|
97
|
+
throw new Error("Unexpected message data type. Only ArrayBuffer is supported.");
|
|
98
|
+
}
|
|
99
|
+
var message = convertArrayBufferToMessage(event.data);
|
|
100
|
+
messageListeners_1.forEach(function (listener) { return listener(message); });
|
|
130
101
|
}
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
function convertArrayBufferToMessage(arrayBuffer) {
|
|
134
|
-
var uint8Array = new Uint8Array(arrayBuffer);
|
|
135
|
-
var type = uint8Array[0];
|
|
136
|
-
var payload = arrayBuffer.slice(1);
|
|
137
|
-
return { type: type, payload: payload };
|
|
138
|
-
}
|
|
139
|
-
function sendMessageWithoutResult(message) {
|
|
140
|
-
naclModuleEl.postMessage(convertMessageToArrayBuffer(message));
|
|
141
|
-
}
|
|
142
|
-
function sendMessageWithResult(message, resultMessageType) {
|
|
143
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
144
|
-
var arrayBuffer;
|
|
145
|
-
return __generator(this, function (_a) {
|
|
146
|
-
arrayBuffer = convertMessageToArrayBuffer(message);
|
|
147
|
-
return [2 /*return*/, new Promise(function (resolve) {
|
|
148
|
-
// TODO add timeout
|
|
149
|
-
var listener = function (message) {
|
|
150
|
-
if (message.type !== resultMessageType) {
|
|
151
|
-
return;
|
|
152
|
-
}
|
|
153
|
-
messageListeners.delete(listener);
|
|
154
|
-
resolve(message);
|
|
155
|
-
};
|
|
156
|
-
messageListeners.add(listener);
|
|
157
|
-
naclModuleEl.postMessage(arrayBuffer);
|
|
158
|
-
})];
|
|
159
|
-
});
|
|
160
|
-
});
|
|
161
|
-
}
|
|
162
|
-
var VideoProfile;
|
|
163
|
-
(function (VideoProfile) {
|
|
164
|
-
VideoProfile[VideoProfile["H264Baseline"] = 0] = "H264Baseline";
|
|
165
|
-
VideoProfile[VideoProfile["H264Main"] = 1] = "H264Main";
|
|
166
|
-
VideoProfile[VideoProfile["H264Extended"] = 2] = "H264Extended";
|
|
167
|
-
VideoProfile[VideoProfile["H264High"] = 3] = "H264High";
|
|
168
|
-
VideoProfile[VideoProfile["H264High10Profile"] = 4] = "H264High10Profile";
|
|
169
|
-
VideoProfile[VideoProfile["H264High422Profile"] = 5] = "H264High422Profile";
|
|
170
|
-
VideoProfile[VideoProfile["H264High444PredictiveProfile"] = 6] = "H264High444PredictiveProfile";
|
|
171
|
-
VideoProfile[VideoProfile["H264ScalableBaseline"] = 7] = "H264ScalableBaseline";
|
|
172
|
-
VideoProfile[VideoProfile["H264ScalableHigh"] = 8] = "H264ScalableHigh";
|
|
173
|
-
VideoProfile[VideoProfile["H264StereoHigh"] = 9] = "H264StereoHigh";
|
|
174
|
-
VideoProfile[VideoProfile["H264MultiviewHigh"] = 10] = "H264MultiviewHigh";
|
|
175
|
-
VideoProfile[VideoProfile["VP8Any"] = 11] = "VP8Any";
|
|
176
|
-
VideoProfile[VideoProfile["VP9Any"] = 12] = "VP9Any";
|
|
177
|
-
VideoProfile[VideoProfile["Max"] = 12] = "Max";
|
|
178
|
-
})(VideoProfile || (VideoProfile = {}));
|
|
179
|
-
var HWAcceleration;
|
|
180
|
-
(function (HWAcceleration) {
|
|
181
|
-
HWAcceleration[HWAcceleration["Only"] = 0] = "Only";
|
|
182
|
-
HWAcceleration[HWAcceleration["WithFallback"] = 1] = "WithFallback";
|
|
183
|
-
HWAcceleration[HWAcceleration["None"] = 2] = "None";
|
|
184
|
-
HWAcceleration[HWAcceleration["Last"] = 2] = "Last";
|
|
185
|
-
})(HWAcceleration || (HWAcceleration = {}));
|
|
186
|
-
var ResultStatus;
|
|
187
|
-
(function (ResultStatus) {
|
|
188
|
-
ResultStatus[ResultStatus["Ok"] = 0] = "Ok";
|
|
189
|
-
ResultStatus[ResultStatus["OkCompletionPending"] = -1] = "OkCompletionPending";
|
|
190
|
-
ResultStatus[ResultStatus["ErrorFailed"] = -2] = "ErrorFailed";
|
|
191
|
-
ResultStatus[ResultStatus["ErrorAborted"] = -3] = "ErrorAborted";
|
|
192
|
-
ResultStatus[ResultStatus["ErrorBadArgument"] = -4] = "ErrorBadArgument";
|
|
193
|
-
ResultStatus[ResultStatus["ErrorBadResource"] = -5] = "ErrorBadResource";
|
|
194
|
-
ResultStatus[ResultStatus["ErrorNoInit"] = -6] = "ErrorNoInit";
|
|
195
|
-
ResultStatus[ResultStatus["ErrorNoAccess"] = -7] = "ErrorNoAccess";
|
|
196
|
-
ResultStatus[ResultStatus["ErrorNoMemory"] = -8] = "ErrorNoMemory";
|
|
197
|
-
ResultStatus[ResultStatus["ErrorNoSpace"] = -9] = "ErrorNoSpace";
|
|
198
|
-
ResultStatus[ResultStatus["ErrorNoQuota"] = -10] = "ErrorNoQuota";
|
|
199
|
-
ResultStatus[ResultStatus["ErrorInProgress"] = -11] = "ErrorInProgress";
|
|
200
|
-
ResultStatus[ResultStatus["ErrorNotSupported"] = -12] = "ErrorNotSupported";
|
|
201
|
-
ResultStatus[ResultStatus["ErrorBlocksMainThread"] = -13] = "ErrorBlocksMainThread";
|
|
202
|
-
// TODO add all errors from pp_errors.h
|
|
203
|
-
})(ResultStatus || (ResultStatus = {}));
|
|
204
|
-
var GLTexture;
|
|
205
|
-
(function (GLTexture) {
|
|
206
|
-
GLTexture[GLTexture["Texture2D"] = 3553] = "Texture2D";
|
|
207
|
-
GLTexture[GLTexture["TextureRectangleARB"] = 34037] = "TextureRectangleARB";
|
|
208
|
-
GLTexture[GLTexture["TextureExternal"] = 36197] = "TextureExternal";
|
|
209
|
-
})(GLTexture || (GLTexture = {}));
|
|
210
|
-
// Implementation
|
|
211
|
-
/**
|
|
212
|
-
* Wrapper over pp::VideoDecoder
|
|
213
|
-
* See https://chromium.googlesource.com/chromium/src/+/master/ppapi/cpp/video_decoder.h
|
|
214
|
-
*/
|
|
215
|
-
var NaClDecoder = /** @class */ (function () {
|
|
216
|
-
function NaClDecoder() {
|
|
102
|
+
function handleLoad(event) {
|
|
103
|
+
console.log("nacl load", event);
|
|
217
104
|
}
|
|
218
|
-
|
|
105
|
+
function handleCrash(event) {
|
|
106
|
+
console.log("nacl crash", event);
|
|
107
|
+
}
|
|
108
|
+
// Helpers
|
|
109
|
+
var JSToNaClMessageType = void 0;
|
|
110
|
+
(function (JSToNaClMessageType) {
|
|
111
|
+
JSToNaClMessageType[JSToNaClMessageType["Render"] = 0] = "Render";
|
|
112
|
+
JSToNaClMessageType[JSToNaClMessageType["Initialize"] = 1] = "Initialize";
|
|
113
|
+
JSToNaClMessageType[JSToNaClMessageType["Decode"] = 2] = "Decode";
|
|
114
|
+
JSToNaClMessageType[JSToNaClMessageType["GetPicture"] = 3] = "GetPicture";
|
|
115
|
+
JSToNaClMessageType[JSToNaClMessageType["Flush"] = 4] = "Flush";
|
|
116
|
+
JSToNaClMessageType[JSToNaClMessageType["Reset"] = 5] = "Reset";
|
|
117
|
+
JSToNaClMessageType[JSToNaClMessageType["RecyclePicture"] = 6] = "RecyclePicture";
|
|
118
|
+
})(JSToNaClMessageType || (JSToNaClMessageType = {}));
|
|
119
|
+
var NaClToJSMessageType = void 0;
|
|
120
|
+
(function (NaClToJSMessageType) {
|
|
121
|
+
NaClToJSMessageType[NaClToJSMessageType["RenderResult"] = 0] = "RenderResult";
|
|
122
|
+
NaClToJSMessageType[NaClToJSMessageType["InitializeResult"] = 1] = "InitializeResult";
|
|
123
|
+
NaClToJSMessageType[NaClToJSMessageType["DecodeResult"] = 2] = "DecodeResult";
|
|
124
|
+
NaClToJSMessageType[NaClToJSMessageType["GetPictureResult"] = 3] = "GetPictureResult";
|
|
125
|
+
NaClToJSMessageType[NaClToJSMessageType["FlushResult"] = 4] = "FlushResult";
|
|
126
|
+
NaClToJSMessageType[NaClToJSMessageType["ResetResult"] = 5] = "ResetResult";
|
|
127
|
+
NaClToJSMessageType[NaClToJSMessageType["UnknownDataType"] = 254] = "UnknownDataType";
|
|
128
|
+
NaClToJSMessageType[NaClToJSMessageType["UnknownMessageType"] = 255] = "UnknownMessageType";
|
|
129
|
+
})(NaClToJSMessageType || (NaClToJSMessageType = {}));
|
|
130
|
+
function convertMessageToArrayBuffer(message) {
|
|
131
|
+
var _a, _b;
|
|
132
|
+
var arrayBuffer = new ArrayBuffer(1 + ((_b = (_a = message.payload) === null || _a === void 0 ? void 0 : _a.byteLength) !== null && _b !== void 0 ? _b : 0));
|
|
133
|
+
var uint8Array = new Uint8Array(arrayBuffer);
|
|
134
|
+
uint8Array[0] = message.type;
|
|
135
|
+
if (message.payload) {
|
|
136
|
+
uint8Array.set(new Uint8Array(message.payload), 1);
|
|
137
|
+
}
|
|
138
|
+
return arrayBuffer;
|
|
139
|
+
}
|
|
140
|
+
function convertArrayBufferToMessage(arrayBuffer) {
|
|
141
|
+
var uint8Array = new Uint8Array(arrayBuffer);
|
|
142
|
+
var type = uint8Array[0];
|
|
143
|
+
var payload = arrayBuffer.slice(1);
|
|
144
|
+
return { type: type, payload: payload };
|
|
145
|
+
}
|
|
146
|
+
function sendMessageWithoutResult(message) {
|
|
147
|
+
naclModuleEl_1.postMessage(convertMessageToArrayBuffer(message));
|
|
148
|
+
}
|
|
149
|
+
function sendMessageWithResult(message, resultMessageType) {
|
|
219
150
|
return __awaiter(this, void 0, void 0, function () {
|
|
220
|
-
var
|
|
151
|
+
var arrayBuffer;
|
|
221
152
|
return __generator(this, function (_a) {
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
153
|
+
arrayBuffer = convertMessageToArrayBuffer(message);
|
|
154
|
+
return [2 /*return*/, new Promise(function (resolve) {
|
|
155
|
+
// TODO add timeout
|
|
156
|
+
var listener = function (message) {
|
|
157
|
+
if (message.type !== resultMessageType) {
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
messageListeners_1.delete(listener);
|
|
161
|
+
resolve(message);
|
|
230
162
|
};
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
resultStatus = new Int32Array(resultMessage.payload)[0];
|
|
235
|
-
return [2 /*return*/, resultStatus];
|
|
236
|
-
}
|
|
163
|
+
messageListeners_1.add(listener);
|
|
164
|
+
naclModuleEl_1.postMessage(arrayBuffer);
|
|
165
|
+
})];
|
|
237
166
|
});
|
|
238
167
|
});
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
168
|
+
}
|
|
169
|
+
var VideoProfile = void 0;
|
|
170
|
+
(function (VideoProfile) {
|
|
171
|
+
VideoProfile[VideoProfile["H264Baseline"] = 0] = "H264Baseline";
|
|
172
|
+
VideoProfile[VideoProfile["H264Main"] = 1] = "H264Main";
|
|
173
|
+
VideoProfile[VideoProfile["H264Extended"] = 2] = "H264Extended";
|
|
174
|
+
VideoProfile[VideoProfile["H264High"] = 3] = "H264High";
|
|
175
|
+
VideoProfile[VideoProfile["H264High10Profile"] = 4] = "H264High10Profile";
|
|
176
|
+
VideoProfile[VideoProfile["H264High422Profile"] = 5] = "H264High422Profile";
|
|
177
|
+
VideoProfile[VideoProfile["H264High444PredictiveProfile"] = 6] = "H264High444PredictiveProfile";
|
|
178
|
+
VideoProfile[VideoProfile["H264ScalableBaseline"] = 7] = "H264ScalableBaseline";
|
|
179
|
+
VideoProfile[VideoProfile["H264ScalableHigh"] = 8] = "H264ScalableHigh";
|
|
180
|
+
VideoProfile[VideoProfile["H264StereoHigh"] = 9] = "H264StereoHigh";
|
|
181
|
+
VideoProfile[VideoProfile["H264MultiviewHigh"] = 10] = "H264MultiviewHigh";
|
|
182
|
+
VideoProfile[VideoProfile["VP8Any"] = 11] = "VP8Any";
|
|
183
|
+
VideoProfile[VideoProfile["VP9Any"] = 12] = "VP9Any";
|
|
184
|
+
VideoProfile[VideoProfile["Max"] = 12] = "Max";
|
|
185
|
+
})(VideoProfile || (VideoProfile = {}));
|
|
186
|
+
var HWAcceleration = void 0;
|
|
187
|
+
(function (HWAcceleration) {
|
|
188
|
+
HWAcceleration[HWAcceleration["Only"] = 0] = "Only";
|
|
189
|
+
HWAcceleration[HWAcceleration["WithFallback"] = 1] = "WithFallback";
|
|
190
|
+
HWAcceleration[HWAcceleration["None"] = 2] = "None";
|
|
191
|
+
HWAcceleration[HWAcceleration["Last"] = 2] = "Last";
|
|
192
|
+
})(HWAcceleration || (HWAcceleration = {}));
|
|
193
|
+
var ResultStatus = void 0;
|
|
194
|
+
(function (ResultStatus) {
|
|
195
|
+
ResultStatus[ResultStatus["Ok"] = 0] = "Ok";
|
|
196
|
+
ResultStatus[ResultStatus["OkCompletionPending"] = -1] = "OkCompletionPending";
|
|
197
|
+
ResultStatus[ResultStatus["ErrorFailed"] = -2] = "ErrorFailed";
|
|
198
|
+
ResultStatus[ResultStatus["ErrorAborted"] = -3] = "ErrorAborted";
|
|
199
|
+
ResultStatus[ResultStatus["ErrorBadArgument"] = -4] = "ErrorBadArgument";
|
|
200
|
+
ResultStatus[ResultStatus["ErrorBadResource"] = -5] = "ErrorBadResource";
|
|
201
|
+
ResultStatus[ResultStatus["ErrorNoInit"] = -6] = "ErrorNoInit";
|
|
202
|
+
ResultStatus[ResultStatus["ErrorNoAccess"] = -7] = "ErrorNoAccess";
|
|
203
|
+
ResultStatus[ResultStatus["ErrorNoMemory"] = -8] = "ErrorNoMemory";
|
|
204
|
+
ResultStatus[ResultStatus["ErrorNoSpace"] = -9] = "ErrorNoSpace";
|
|
205
|
+
ResultStatus[ResultStatus["ErrorNoQuota"] = -10] = "ErrorNoQuota";
|
|
206
|
+
ResultStatus[ResultStatus["ErrorInProgress"] = -11] = "ErrorInProgress";
|
|
207
|
+
ResultStatus[ResultStatus["ErrorNotSupported"] = -12] = "ErrorNotSupported";
|
|
208
|
+
ResultStatus[ResultStatus["ErrorBlocksMainThread"] = -13] = "ErrorBlocksMainThread";
|
|
209
|
+
// TODO add all errors from pp_errors.h
|
|
210
|
+
})(ResultStatus || (ResultStatus = {}));
|
|
211
|
+
var GLTexture = void 0;
|
|
212
|
+
(function (GLTexture) {
|
|
213
|
+
GLTexture[GLTexture["Texture2D"] = 3553] = "Texture2D";
|
|
214
|
+
GLTexture[GLTexture["TextureRectangleARB"] = 34037] = "TextureRectangleARB";
|
|
215
|
+
GLTexture[GLTexture["TextureExternal"] = 36197] = "TextureExternal";
|
|
216
|
+
})(GLTexture || (GLTexture = {}));
|
|
217
|
+
// Implementation
|
|
218
|
+
/**
|
|
219
|
+
* Wrapper over pp::VideoDecoder
|
|
220
|
+
* See https://chromium.googlesource.com/chromium/src/+/master/ppapi/cpp/video_decoder.h
|
|
221
|
+
*/
|
|
222
|
+
var NaClDecoder = /** @class */ (function () {
|
|
223
|
+
function NaClDecoder() {
|
|
224
|
+
}
|
|
225
|
+
NaClDecoder.prototype.initialize = function (args) {
|
|
226
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
227
|
+
var message, resultMessage, resultStatus;
|
|
228
|
+
return __generator(this, function (_a) {
|
|
229
|
+
switch (_a.label) {
|
|
230
|
+
case 0:
|
|
231
|
+
message = {
|
|
232
|
+
type: JSToNaClMessageType.Initialize,
|
|
233
|
+
payload: new Uint8Array(__spreadArray([
|
|
234
|
+
args.profile,
|
|
235
|
+
args.acceleration
|
|
236
|
+
], __read(new Uint8Array(new Uint32Array([args.minPictureCount]).buffer)), false)).buffer,
|
|
237
|
+
};
|
|
238
|
+
return [4 /*yield*/, sendMessageWithResult(message, NaClToJSMessageType.InitializeResult)];
|
|
239
|
+
case 1:
|
|
240
|
+
resultMessage = _a.sent();
|
|
241
|
+
resultStatus = new Int32Array(resultMessage.payload)[0];
|
|
242
|
+
return [2 /*return*/, resultStatus];
|
|
243
|
+
}
|
|
244
|
+
});
|
|
260
245
|
});
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
height: resultSecondInt32Array[1],
|
|
284
|
-
},
|
|
285
|
-
visibleRect: {
|
|
286
|
-
x: resultSecondInt32Array[2],
|
|
287
|
-
y: resultSecondInt32Array[3],
|
|
288
|
-
width: resultSecondInt32Array[4],
|
|
289
|
-
height: resultSecondInt32Array[5],
|
|
290
|
-
},
|
|
291
|
-
};
|
|
292
|
-
return [2 /*return*/, picture];
|
|
293
|
-
}
|
|
246
|
+
};
|
|
247
|
+
NaClDecoder.prototype.decode = function (args) {
|
|
248
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
249
|
+
var message, resultMessage, resultStatus;
|
|
250
|
+
return __generator(this, function (_a) {
|
|
251
|
+
switch (_a.label) {
|
|
252
|
+
case 0:
|
|
253
|
+
if (!(args.data instanceof ArrayBuffer)) {
|
|
254
|
+
throw new Error("Unexpected data type. Only ArrayBuffer is supported.");
|
|
255
|
+
}
|
|
256
|
+
message = {
|
|
257
|
+
type: JSToNaClMessageType.Decode,
|
|
258
|
+
// TODO decodeId (not used in the NaCl module now)
|
|
259
|
+
payload: args.data,
|
|
260
|
+
};
|
|
261
|
+
return [4 /*yield*/, sendMessageWithResult(message, NaClToJSMessageType.DecodeResult)];
|
|
262
|
+
case 1:
|
|
263
|
+
resultMessage = _a.sent();
|
|
264
|
+
resultStatus = new Int32Array(resultMessage.payload)[0];
|
|
265
|
+
return [2 /*return*/, resultStatus];
|
|
266
|
+
}
|
|
267
|
+
});
|
|
294
268
|
});
|
|
295
|
-
});
|
|
296
|
-
};
|
|
297
|
-
NaClDecoder.prototype.recyclePicture = function (picture) {
|
|
298
|
-
var firstUint32Array = new Uint32Array([
|
|
299
|
-
picture.decodeId,
|
|
300
|
-
picture.textureId,
|
|
301
|
-
picture.textureTarget,
|
|
302
|
-
]);
|
|
303
|
-
var secondInt32Array = new Int32Array([
|
|
304
|
-
picture.textureSize.width,
|
|
305
|
-
picture.textureSize.height,
|
|
306
|
-
picture.visibleRect.x,
|
|
307
|
-
picture.visibleRect.y,
|
|
308
|
-
picture.visibleRect.width,
|
|
309
|
-
picture.visibleRect.height,
|
|
310
|
-
]);
|
|
311
|
-
var message = {
|
|
312
|
-
type: JSToNaClMessageType.RecyclePicture,
|
|
313
|
-
payload: new Uint8Array(__spreadArray(__spreadArray([], __read(new Uint8Array(firstUint32Array.buffer)), false), __read(new Uint8Array(secondInt32Array.buffer)), false)).buffer,
|
|
314
269
|
};
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
270
|
+
NaClDecoder.prototype.getPicture = function () {
|
|
271
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
272
|
+
var message, resultMessage, resultFirstUInt32Array, resultSecondInt32Array, picture;
|
|
273
|
+
return __generator(this, function (_a) {
|
|
274
|
+
switch (_a.label) {
|
|
275
|
+
case 0:
|
|
276
|
+
message = {
|
|
277
|
+
type: JSToNaClMessageType.GetPicture,
|
|
278
|
+
};
|
|
279
|
+
return [4 /*yield*/, sendMessageWithResult(message, NaClToJSMessageType.GetPictureResult)];
|
|
280
|
+
case 1:
|
|
281
|
+
resultMessage = _a.sent();
|
|
282
|
+
resultFirstUInt32Array = new Uint32Array(resultMessage.payload.slice(0, 12));
|
|
283
|
+
resultSecondInt32Array = new Int32Array(resultMessage.payload.slice(12, 24));
|
|
284
|
+
picture = {
|
|
285
|
+
decodeId: resultFirstUInt32Array[0],
|
|
286
|
+
textureId: resultFirstUInt32Array[1],
|
|
287
|
+
textureTarget: resultFirstUInt32Array[2],
|
|
288
|
+
textureSize: {
|
|
289
|
+
width: resultSecondInt32Array[0],
|
|
290
|
+
height: resultSecondInt32Array[1],
|
|
291
|
+
},
|
|
292
|
+
visibleRect: {
|
|
293
|
+
x: resultSecondInt32Array[2],
|
|
294
|
+
y: resultSecondInt32Array[3],
|
|
295
|
+
width: resultSecondInt32Array[4],
|
|
296
|
+
height: resultSecondInt32Array[5],
|
|
297
|
+
},
|
|
298
|
+
};
|
|
299
|
+
return [2 /*return*/, picture];
|
|
300
|
+
}
|
|
301
|
+
});
|
|
332
302
|
});
|
|
333
|
-
}
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
303
|
+
};
|
|
304
|
+
NaClDecoder.prototype.recyclePicture = function (picture) {
|
|
305
|
+
var firstUint32Array = new Uint32Array([
|
|
306
|
+
picture.decodeId,
|
|
307
|
+
picture.textureId,
|
|
308
|
+
picture.textureTarget,
|
|
309
|
+
]);
|
|
310
|
+
var secondInt32Array = new Int32Array([
|
|
311
|
+
picture.textureSize.width,
|
|
312
|
+
picture.textureSize.height,
|
|
313
|
+
picture.visibleRect.x,
|
|
314
|
+
picture.visibleRect.y,
|
|
315
|
+
picture.visibleRect.width,
|
|
316
|
+
picture.visibleRect.height,
|
|
317
|
+
]);
|
|
318
|
+
var message = {
|
|
319
|
+
type: JSToNaClMessageType.RecyclePicture,
|
|
320
|
+
payload: new Uint8Array(__spreadArray(__spreadArray([], __read(new Uint8Array(firstUint32Array.buffer)), false), __read(new Uint8Array(secondInt32Array.buffer)), false)).buffer,
|
|
321
|
+
};
|
|
322
|
+
sendMessageWithoutResult(message);
|
|
323
|
+
};
|
|
324
|
+
NaClDecoder.prototype.flush = function () {
|
|
325
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
326
|
+
var message, resultMessage, resultStatus;
|
|
327
|
+
return __generator(this, function (_a) {
|
|
328
|
+
switch (_a.label) {
|
|
329
|
+
case 0:
|
|
330
|
+
message = {
|
|
331
|
+
type: JSToNaClMessageType.Flush,
|
|
332
|
+
};
|
|
333
|
+
return [4 /*yield*/, sendMessageWithResult(message, NaClToJSMessageType.FlushResult)];
|
|
334
|
+
case 1:
|
|
335
|
+
resultMessage = _a.sent();
|
|
336
|
+
resultStatus = new Int32Array(resultMessage.payload)[0];
|
|
337
|
+
return [2 /*return*/, resultStatus];
|
|
338
|
+
}
|
|
339
|
+
});
|
|
350
340
|
});
|
|
351
|
-
}
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
picture.visibleRect.y,
|
|
369
|
-
picture.visibleRect.width,
|
|
370
|
-
picture.visibleRect.height,
|
|
371
|
-
]);
|
|
372
|
-
message = {
|
|
373
|
-
type: JSToNaClMessageType.Render,
|
|
374
|
-
payload: new Uint8Array(__spreadArray(__spreadArray([], __read(new Uint8Array(firstUint32Array.buffer)), false), __read(new Uint8Array(secondInt32Array.buffer)), false)).buffer,
|
|
375
|
-
};
|
|
376
|
-
return [4 /*yield*/, sendMessageWithResult(message, NaClToJSMessageType.RenderResult)];
|
|
377
|
-
case 1:
|
|
378
|
-
_a.sent();
|
|
379
|
-
return [2 /*return*/];
|
|
380
|
-
}
|
|
341
|
+
};
|
|
342
|
+
NaClDecoder.prototype.reset = function () {
|
|
343
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
344
|
+
var message, resultMessage, resultStatus;
|
|
345
|
+
return __generator(this, function (_a) {
|
|
346
|
+
switch (_a.label) {
|
|
347
|
+
case 0:
|
|
348
|
+
message = {
|
|
349
|
+
type: JSToNaClMessageType.Reset,
|
|
350
|
+
};
|
|
351
|
+
return [4 /*yield*/, sendMessageWithResult(message, NaClToJSMessageType.ResetResult)];
|
|
352
|
+
case 1:
|
|
353
|
+
resultMessage = _a.sent();
|
|
354
|
+
resultStatus = new Int32Array(resultMessage.payload)[0];
|
|
355
|
+
return [2 /*return*/, resultStatus];
|
|
356
|
+
}
|
|
357
|
+
});
|
|
381
358
|
});
|
|
382
|
-
}
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
359
|
+
};
|
|
360
|
+
NaClDecoder.prototype.render = function (picture) {
|
|
361
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
362
|
+
var firstUint32Array, secondInt32Array, message;
|
|
363
|
+
return __generator(this, function (_a) {
|
|
364
|
+
switch (_a.label) {
|
|
365
|
+
case 0:
|
|
366
|
+
firstUint32Array = new Uint32Array([
|
|
367
|
+
picture.decodeId,
|
|
368
|
+
picture.textureId,
|
|
369
|
+
picture.textureTarget,
|
|
370
|
+
]);
|
|
371
|
+
secondInt32Array = new Int32Array([
|
|
372
|
+
picture.textureSize.width,
|
|
373
|
+
picture.textureSize.height,
|
|
374
|
+
picture.visibleRect.x,
|
|
375
|
+
picture.visibleRect.y,
|
|
376
|
+
picture.visibleRect.width,
|
|
377
|
+
picture.visibleRect.height,
|
|
378
|
+
]);
|
|
379
|
+
message = {
|
|
380
|
+
type: JSToNaClMessageType.Render,
|
|
381
|
+
payload: new Uint8Array(__spreadArray(__spreadArray([], __read(new Uint8Array(firstUint32Array.buffer)), false), __read(new Uint8Array(secondInt32Array.buffer)), false)).buffer,
|
|
382
|
+
};
|
|
383
|
+
return [4 /*yield*/, sendMessageWithResult(message, NaClToJSMessageType.RenderResult)];
|
|
384
|
+
case 1:
|
|
385
|
+
_a.sent();
|
|
386
|
+
return [2 /*return*/];
|
|
387
|
+
}
|
|
388
|
+
});
|
|
389
|
+
});
|
|
390
|
+
};
|
|
391
|
+
return NaClDecoder;
|
|
392
|
+
}());
|
|
393
|
+
}
|