Source: externs/shaka/manifest_parser.js

/**
 * @license
 * Copyright 2016 Google Inc.
 *
 * 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.
 */


/** @externs */



/**
 * Parses media manifests and handles manifest updates.
 *
 * Given a URI where the initial manifest is found, a parser will request the
 * manifest, parse it, and return the resulting Manifest object.
 *
 * If the manifest requires updates (e.g. for live media), the parser will use
 * background timers to update the same Manifest object.
 *
 * @interface
 * @exportDoc
 */
shakaExtern.ManifestParser = function() {};


/**
 * A factory for creating the manifest parser.  This will be called with 'new'.
 * This function is registered with shaka.media.ManifestParser to create parser
 * instances.
 *
 * @typedef {function(new:shakaExtern.ManifestParser)}
 * @exportDoc
 */
shakaExtern.ManifestParser.Factory;


/**
 * Called by the Player to provide an updated configuration any time the
 * configuration changes.  Will be called at least once before start().
 *
 * @param {shakaExtern.ManifestConfiguration} config
 * @exportDoc
 */
shakaExtern.ManifestParser.prototype.configure = function(config) {};


/**
 * Parses the given manifest data into a Manifest object and starts any
 * background timers that are needed.  This will only be called once.
 *
 * @param {string} uri The URI of the manifest.
 * @param {!shaka.net.NetworkingEngine} networkingEngine The networking engine
 *     to use for network requests.
 * @param {function(shakaExtern.Period)} filterPeriod A callback to be invoked
 *     on all new Periods so that they can be filtered.
 * @param {function(!shaka.util.Error)} onError A callback to be invoked on
 *     errors.
 * @param {function(!Event)} onEvent A callback to be invoked to dispatch events
 *     to the application.
 * @return {!Promise.<shakaExtern.Manifest>}
 * @exportDoc
 */
shakaExtern.ManifestParser.prototype.start =
    function(uri, networkingEngine, filterPeriod, onError, onEvent) {};


/**
 * Stops any background timers and frees any objects held by this instance.
 * This will only be called after a successful call to start.  This will only
 * be called once.
 *
 * @return {!Promise}
 * @exportDoc
 */
shakaExtern.ManifestParser.prototype.stop = function() {};