rx-player
Version:
Canal+ HTML5 Video Player
112 lines • 4.19 kB
TypeScript
/**
* Copyright 2015 CANAL+ Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import type { IDashParserResponse, IMPDParserArguments } from "../../parsers_types";
export default class DashWasmParser {
/**
* Current "status" of the DASH-WASM parser.
*
* Can be either:
* - "uninitialized": Its `initialize` method hasn't been called yet.
* - "initializing": The `DashWasmParser` is in the process of fetching
* and instantiating the WebAssembly code.
* - "initialized": The `DashWasmParser` is ready to parse.
* - "failure": The `DashWasmParser` initialization failed.
*/
status: "uninitialized" | "initializing" | "initialized" | "failure";
/**
* Promise used to notify of the initialization status.
* `null` when no initialization has happened yet.
*/
private _initProm;
/** Abstraction simplifying the exploitation of the DASH-WASM parser's events. */
private _parsersStack;
/**
* Created WebAssembly instance.
* `null` when no WebAssembly instance is created.
*/
private _instance;
/**
* Information about the data read by the DASH-WASM parser.
* `null` if we're not parsing anything for the moment.
*/
private _mpdData;
/**
* Warnings event currently encountered during parsing.
* Emptied when no parsing is taking place.
*/
private _warnings;
/**
* Memory used by the WebAssembly instance.
* `null` when no WebAssembly instance is created.
*/
private _linearMemory;
/**
* `true` if we're currently parsing a MPD.
* Used to explicitely forbid parsing a MPD when a parsing operation is
* already pending, as the current logic cannot handle that.
*
* Note that this is not needed for now because parsing should happen
* synchronously.
* Still, this property was added to make it much more explicit, in case of
* future improvements.
*/
private _isParsing;
/**
* Create a new `DashWasmParser`.
*/
constructor();
/**
* Returns Promise that will resolve when the initialization has ended (either
* with success, in which cases the Promise resolves, either with failure, in
* which case it rejects the corresponding error).
*
* This is actually the exact same Promise than the one returned by the first
* `initialize` call.
*
* If that method was never called, returns a rejecting Promise.
* @returns {Promise}
*/
waitForInitialization(): Promise<void>;
initialize(opts: IDashWasmParserOptions): Promise<void>;
/**
* @param {Document} manifest - Original manifest as returned by the server
* @param {Object} args
* @returns {Object}
*/
runWasmParser(mpd: ArrayBuffer, args: IMPDParserArguments): IDashParserResponse<string> | IDashParserResponse<ArrayBuffer>;
/**
* Return `true` if the current plaform is compatible with WebAssembly and the
* TextDecoder interface (for faster UTF-8 parsing), which are needed features
* for the `DashWasmParser`.
* @returns {boolean}
*/
isCompatible(): boolean;
private _parseMpd;
private _parseXlink;
/**
* Handle `parseMpdIr` return values, asking for resources if they are needed
* and pre-processing them before continuing parsing.
*
* @param {Object} initialRes
* @returns {Object}
*/
private _processParserReturnValue;
}
/** Options needed when constructing the DASH-WASM parser. */
export interface IDashWasmParserOptions {
wasmUrl: string | ArrayBuffer;
}
//# sourceMappingURL=dash-wasm-parser.d.ts.map