shaka-player
Version: 
DASH/EME video player library
132 lines (113 loc) • 3.18 kB
JavaScript
/*! @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
   * @param {boolean} isMuxed Indicate if the LCEVC content is along the main.
   */
  appendBuffer(data, type, variantId, timestampOffset, isMuxed) {}
  /**
   * 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;
/**
 * Promise that resolves once the LCEVC libraries have finished loading.
 * @type {Promise}
 */
LCEVCdec.ready;
/**
 * LCEVC instance for debugging and testing
 * @type {typeof LCEVCdec.LCEVCdec}
 */
LCEVCdec.instance;
/** @type {boolean} */
LCEVCdec.instance.isLcevcEnabled;
/** @type {boolean} */
LCEVCdec.instance.firstLcevcSegmentLoaded;
/** @type {boolean} */
LCEVCdec.instance.lcevcDataDetected;
/**
 * Typedef for the module interface.  Both LCEVCdec (new module) and LcevcDil
 * (old module) implement roughly the same interface.
 *
 * @typedef {typeof LCEVCdec}
 */
var LCEVCmodule;