123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 |
- import { PeerTubePlugin } from './peertube-plugin'
- import { WebTorrentPlugin } from './webtorrent/webtorrent-plugin'
- import { P2pMediaLoaderPlugin } from './p2p-media-loader/p2p-media-loader-plugin'
- import { PlayerMode } from './peertube-player-manager'
- import { RedundancyUrlManager } from './p2p-media-loader/redundancy-url-manager'
- import { VideoFile } from '@shared/models'
- import videojs from 'video.js'
- import { Config, Level } from 'hls.js'
- declare module 'video.js' {
- export interface VideoJsPlayer {
- srOptions_: HlsjsConfigHandlerOptions
- theaterEnabled: boolean
- // FIXME: add it to upstream typings
- posterImage: {
- show (): void
- hide (): void
- }
- handleTechSeeked_ (): void
- // Plugins
- peertube (): PeerTubePlugin
- webtorrent (): WebTorrentPlugin
- p2pMediaLoader (): P2pMediaLoaderPlugin
- contextmenuUI (options: any): any
- bezels (): void
- qualityLevels (): QualityLevels
- textTracks (): TextTrackList & {
- on: Function
- tracks_: { kind: string, mode: string, language: string }[]
- }
- audioTracks (): AudioTrackList
- dock (options: { title: string, description: string }): void
- }
- }
- export interface VideoJSTechHLS extends videojs.Tech {
- hlsProvider: any // FIXME: typings
- }
- export interface HlsjsConfigHandlerOptions {
- hlsjsConfig?: Config & { cueHandler: any }// FIXME: typings
- captionConfig?: any // FIXME: typings
- levelLabelHandler?: (level: Level) => string
- }
- type QualityLevelRepresentation = {
- id: number
- height: number
- label?: string
- width?: number
- bandwidth?: number
- bitrate?: number
- enabled?: Function
- _enabled: boolean
- }
- type QualityLevels = QualityLevelRepresentation[] & {
- selectedIndex: number
- selectedIndex_: number
- addQualityLevel (representation: QualityLevelRepresentation): void
- }
- type VideoJSCaption = {
- label: string
- language: string
- src: string
- }
- type UserWatching = {
- url: string,
- authorizationHeader: string
- }
- type PeerTubePluginOptions = {
- mode: PlayerMode
- autoplay: boolean
- videoViewUrl: string
- videoDuration: number
- userWatching?: UserWatching
- subtitle?: string
- videoCaptions: VideoJSCaption[]
- stopTime: number | string
- }
- type WebtorrentPluginOptions = {
- playerElement: HTMLVideoElement
- autoplay: boolean
- videoDuration: number
- videoFiles: VideoFile[]
- startTime: number | string
- }
- type P2PMediaLoaderPluginOptions = {
- redundancyUrlManager: RedundancyUrlManager
- type: string
- src: string
- startTime: number | string
- }
- type VideoJSPluginOptions = {
- peertube: PeerTubePluginOptions
- webtorrent?: WebtorrentPluginOptions
- p2pMediaLoader?: P2PMediaLoaderPluginOptions
- }
- type LoadedQualityData = {
- qualitySwitchCallback: Function,
- qualityData: {
- video: {
- id: number
- label: string
- selected: boolean
- }[]
- }
- }
- type ResolutionUpdateData = {
- auto: boolean,
- resolutionId: number
- id?: number
- }
- type AutoResolutionUpdateData = {
- possible: boolean
- }
- type PlayerNetworkInfo = {
- http: {
- downloadSpeed: number
- uploadSpeed: number
- downloaded: number
- uploaded: number
- }
- p2p: {
- downloadSpeed: number
- uploadSpeed: number
- downloaded: number
- uploaded: number
- numPeers: number
- }
- }
- export {
- PlayerNetworkInfo,
- ResolutionUpdateData,
- AutoResolutionUpdateData,
- VideoJSCaption,
- UserWatching,
- PeerTubePluginOptions,
- WebtorrentPluginOptions,
- P2PMediaLoaderPluginOptions,
- VideoJSPluginOptions,
- LoadedQualityData,
- QualityLevelRepresentation,
- QualityLevels
- }
|