X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fassets%2Fplayer%2Fpeertube-videojs-typings.ts;h=cb7d6f6b48a6425d04b02eb57fc6b36d3d35efb5;hb=610d0be13b3d01f653ef269271dd667a57c85ef2;hp=7b0ea20748e36ee10c61d205bb9e1940ed14d442;hpb=f5fcd9f72514d6c4044a9c904d0ce610033bcba5;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/assets/player/peertube-videojs-typings.ts b/client/src/assets/player/peertube-videojs-typings.ts index 7b0ea2074..cb7d6f6b4 100644 --- a/client/src/assets/player/peertube-videojs-typings.ts +++ b/client/src/assets/player/peertube-videojs-typings.ts @@ -1,13 +1,17 @@ -import videojs from 'video.js' 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 @@ -21,31 +25,59 @@ declare module 'video.js' { // Plugins peertube (): PeerTubePlugin + webtorrent (): WebTorrentPlugin + p2pMediaLoader (): P2pMediaLoaderPlugin contextmenuUI (options: any): any bezels (): void - qualityLevels (): { height: number, id: number }[] & { - selectedIndex: number - - addQualityLevel (representation: { - id: number - label: string - height: number, - _enabled: boolean - }): void - } + qualityLevels (): QualityLevels textTracks (): TextTrackList & { on: Function - tracks_: { kind: string, mode: string, language: string }[] + tracks_: (TextTrack & { id: string, label: string, src: 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 @@ -147,5 +179,7 @@ export { WebtorrentPluginOptions, P2PMediaLoaderPluginOptions, VideoJSPluginOptions, - LoadedQualityData + LoadedQualityData, + QualityLevelRepresentation, + QualityLevels }