@supraio/client-daemon-js 0.0.0-mznacl.255 → 0.0.0-mznacl.258

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/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 createNaClModule() {
64
- var _a, _b;
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
- var _a = createNaClModule(), listenerEl = _a.listenerEl, naclModuleEl = _a.naclModuleEl;
86
- // Bridge logic
87
- var messageListeners = new Set();
88
- function handleMessage(event) {
89
- if (!(event.data instanceof ArrayBuffer)) {
90
- throw new Error("Unexpected message data type. Only ArrayBuffer is supported.");
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 message = convertArrayBufferToMessage(event.data);
93
- messageListeners.forEach(function (listener) { return listener(message); });
94
- }
95
- function handleLoad(event) {
96
- console.log("nacl load", event);
97
- }
98
- function handleCrash(event) {
99
- console.log("nacl crash", event);
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
- return arrayBuffer;
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
- NaClDecoder.prototype.initialize = function (args) {
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 message, resultMessage, resultStatus;
151
+ var arrayBuffer;
221
152
  return __generator(this, function (_a) {
222
- switch (_a.label) {
223
- case 0:
224
- message = {
225
- type: JSToNaClMessageType.Initialize,
226
- payload: new Uint8Array(__spreadArray([
227
- args.profile,
228
- args.acceleration
229
- ], __read(new Uint8Array(new Uint32Array([args.minPictureCount]).buffer)), false)).buffer,
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
- return [4 /*yield*/, sendMessageWithResult(message, NaClToJSMessageType.InitializeResult)];
232
- case 1:
233
- resultMessage = _a.sent();
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
- NaClDecoder.prototype.decode = function (args) {
241
- return __awaiter(this, void 0, void 0, function () {
242
- var message, resultMessage, resultStatus;
243
- return __generator(this, function (_a) {
244
- switch (_a.label) {
245
- case 0:
246
- if (!(args.data instanceof ArrayBuffer)) {
247
- throw new Error("Unexpected data type. Only ArrayBuffer is supported.");
248
- }
249
- message = {
250
- type: JSToNaClMessageType.Decode,
251
- // TODO decodeId (not used in the NaCl module now)
252
- payload: args.data,
253
- };
254
- return [4 /*yield*/, sendMessageWithResult(message, NaClToJSMessageType.DecodeResult)];
255
- case 1:
256
- resultMessage = _a.sent();
257
- resultStatus = new Int32Array(resultMessage.payload)[0];
258
- return [2 /*return*/, resultStatus];
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
- NaClDecoder.prototype.getPicture = function () {
264
- return __awaiter(this, void 0, void 0, function () {
265
- var message, resultMessage, resultFirstUInt32Array, resultSecondInt32Array, picture;
266
- return __generator(this, function (_a) {
267
- switch (_a.label) {
268
- case 0:
269
- message = {
270
- type: JSToNaClMessageType.GetPicture,
271
- };
272
- return [4 /*yield*/, sendMessageWithResult(message, NaClToJSMessageType.GetPictureResult)];
273
- case 1:
274
- resultMessage = _a.sent();
275
- resultFirstUInt32Array = new Uint32Array(resultMessage.payload.slice(0, 12));
276
- resultSecondInt32Array = new Int32Array(resultMessage.payload.slice(12, 24));
277
- picture = {
278
- decodeId: resultFirstUInt32Array[0],
279
- textureId: resultFirstUInt32Array[1],
280
- textureTarget: resultFirstUInt32Array[2],
281
- textureSize: {
282
- width: resultSecondInt32Array[0],
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
- sendMessageWithoutResult(message);
316
- };
317
- NaClDecoder.prototype.flush = function () {
318
- return __awaiter(this, void 0, void 0, function () {
319
- var message, resultMessage, resultStatus;
320
- return __generator(this, function (_a) {
321
- switch (_a.label) {
322
- case 0:
323
- message = {
324
- type: JSToNaClMessageType.Flush,
325
- };
326
- return [4 /*yield*/, sendMessageWithResult(message, NaClToJSMessageType.FlushResult)];
327
- case 1:
328
- resultMessage = _a.sent();
329
- resultStatus = new Int32Array(resultMessage.payload)[0];
330
- return [2 /*return*/, resultStatus];
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
- NaClDecoder.prototype.reset = function () {
336
- return __awaiter(this, void 0, void 0, function () {
337
- var message, resultMessage, resultStatus;
338
- return __generator(this, function (_a) {
339
- switch (_a.label) {
340
- case 0:
341
- message = {
342
- type: JSToNaClMessageType.Reset,
343
- };
344
- return [4 /*yield*/, sendMessageWithResult(message, NaClToJSMessageType.ResetResult)];
345
- case 1:
346
- resultMessage = _a.sent();
347
- resultStatus = new Int32Array(resultMessage.payload)[0];
348
- return [2 /*return*/, resultStatus];
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
- NaClDecoder.prototype.render = function (picture) {
354
- return __awaiter(this, void 0, void 0, function () {
355
- var firstUint32Array, secondInt32Array, message;
356
- return __generator(this, function (_a) {
357
- switch (_a.label) {
358
- case 0:
359
- firstUint32Array = new Uint32Array([
360
- picture.decodeId,
361
- picture.textureId,
362
- picture.textureTarget,
363
- ]);
364
- secondInt32Array = new Int32Array([
365
- picture.textureSize.width,
366
- picture.textureSize.height,
367
- picture.visibleRect.x,
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
- return NaClDecoder;
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
+ }