lemon-mse 0.1.6 → 0.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/es/flv.d.ts CHANGED
@@ -1,6 +1,14 @@
1
1
  export { Flv }
2
+ /** 并非所有事件都可用 */
3
+ export type EventTypes = 'loadstart' | 'loadeddata'|'play'|'pause'|'ended'
4
+ |'error'|'playing'|'seeking'|'seeked'|'timeupdate'|'waiting'|'canplay'
5
+ |'canplaythrough'|'durationchange'|'volumechange' |'ratechange'
6
+ |'video_resize'|'definition_change'|'user_action'|'rotate'
7
+ |'definition_change'|'retry'|'replay'|'destroy'|'mini_state_change'
8
+ |'cssFullscreen_change'|'fullscreen_change'|'blur'|'focus'|'complete'
9
+ |'autoplay_started'|'autoplay_was_prevented'|'ready'|'pip_change'
2
10
 
3
- declare class Flv {
11
+ declare class Flv extends EventEmitter<EventTypes> {
4
12
  static isSupported(mediaType: ('video' | 'audio') | null): boolean;
5
13
  static enableLogger(): void;
6
14
  static disableLogger(): void;
@@ -35,7 +43,7 @@ declare class Flv {
35
43
  speed: any;
36
44
  avgSpeed: number;
37
45
  };
38
- getStats(): Stats;
46
+ getStats(): K.Stats;
39
47
  bufferInfo(maxHole?: number): {
40
48
  start: number;
41
49
  end: number;
@@ -216,9 +224,43 @@ declare namespace K {
216
224
  audioTrack: AudioTrack;
217
225
  metadataTrack: MetadataTrack;
218
226
  };
227
+ export class FlvFixer {
228
+ constructor(videoTrack: any, audioTrack: any, metadataTrack: any);
229
+ videoTrack: any;
230
+ audioTrack: any;
231
+ metadataTrack: any;
232
+ _baseDts: number;
233
+ _baseDtsInited: boolean;
234
+ _audioNextPts: any;
235
+ _videoNextDts: any;
236
+ _audioTimestampBreak: number;
237
+ _videoTimestampBreak: number;
238
+ _lastVideoDuration: number;
239
+ _keyFrameInNextChunk: boolean;
240
+ _lastAudioExceptionGapDot: number;
241
+ _lastAudioExceptionOverlapDot: number;
242
+ _lastAudioExceptionLargeGapDot: number;
243
+ _lastVideoExceptionLargeGapDot: number;
244
+ _lastVideoExceptionChunkFirstDtsDot: number;
245
+ /**
246
+ * @param {number} startTime 点播seek到的时间点
247
+ * @param {boolean} discontinuity 是否换流
248
+ * @param {boolean} contiguous 前后chunk时间戳是否连续
249
+ */
250
+ fix(startTime?: number, discontinuity?: boolean, contiguous?: boolean): void;
251
+ _videoLastSample: any;
252
+ _fixVideo(videoTrack: any): void;
253
+ _fixAudio(audioTrack: any): void;
254
+ _calculateBaseDts(audioTrack: any, videoTrack: any): boolean;
255
+ _resetBaseDtsWhenStreamBreaked(): void;
256
+ _doFixAudioInternal(audioTrack: any, samples: any, timescale: any): void;
257
+ _getG711Duration(track: any): number;
258
+ _getSilentFrame(track: any): Uint8Array;
259
+ }
260
+
219
261
 
220
262
 
221
- declare class SeiService {
263
+ class SeiService {
222
264
  constructor(emitter: any);
223
265
  _seiSet: Set<any>;
224
266
  emitter: any;
@@ -286,9 +328,9 @@ declare namespace K {
286
328
  baseMediaDecodeTime: number;
287
329
  baseDts: number;
288
330
  duration: number;
289
- warnings: any[];
290
- /** @type {import('./video-sample').VideoSample[]} */
291
- samples: import('./video-sample').VideoSample[];
331
+ warnings: any[];
332
+ // VideoSample
333
+ samples: any[];
292
334
  /** @type {Uint8Array[]} */
293
335
  pps: Uint8Array[];
294
336
  /** @type {Uint8Array[]} */
@@ -399,7 +441,7 @@ declare namespace K {
399
441
  reset(): void;
400
442
  hasSample(): boolean;
401
443
  }
402
- declare class Sample {
444
+ class Sample {
403
445
  constructor(data: any, pts: number);
404
446
  time: number;
405
447
  data: any;
@@ -407,4 +449,139 @@ declare namespace K {
407
449
  pts: number;
408
450
  }
409
451
 
410
- }
452
+ }
453
+
454
+
455
+ /**
456
+ * Minimal `EventEmitter` interface that is molded against the Node.js
457
+ * `EventEmitter` interface.
458
+ */
459
+ declare class EventEmitter<
460
+ EventTypes extends E.ValidEventTypes = string | symbol,
461
+ Context extends any = any
462
+ > {
463
+ static prefixed: string | boolean;
464
+
465
+ /**
466
+ * Return an array listing the events for which the emitter has registered
467
+ * listeners.
468
+ */
469
+ eventNames(): Array<E.EventNames<EventTypes>>;
470
+
471
+ /**
472
+ * Return the listeners registered for a given event.
473
+ */
474
+ listeners<T extends E.EventNames<EventTypes>>(
475
+ event: T
476
+ ): Array<E.EventListener<EventTypes, T>>;
477
+
478
+ /**
479
+ * Return the number of listeners listening to a given event.
480
+ */
481
+ listenerCount(event: E.EventNames<EventTypes>): number;
482
+
483
+ /**
484
+ * Calls each of the listeners registered for a given event.
485
+ */
486
+ emit<T extends E.EventNames<EventTypes>>(
487
+ event: T,
488
+ ...args: E.EventArgs<EventTypes, T>
489
+ ): boolean;
490
+
491
+ /**
492
+ * Add a listener for a given event.
493
+ */
494
+ on<T extends E.EventNames<EventTypes>>(
495
+ event: T,
496
+ fn: E.EventListener<EventTypes, T>,
497
+ context?: Context
498
+ ): this;
499
+ addListener<T extends E.EventNames<EventTypes>>(
500
+ event: T,
501
+ fn: E.EventListener<EventTypes, T>,
502
+ context?: Context
503
+ ): this;
504
+
505
+ /**
506
+ * Add a one-time listener for a given event.
507
+ */
508
+ once<T extends E.EventNames<EventTypes>>(
509
+ event: T,
510
+ fn: E.EventListener<EventTypes, T>,
511
+ context?: Context
512
+ ): this;
513
+
514
+ /**
515
+ * Remove the listeners of a given event.
516
+ */
517
+ removeListener<T extends E.EventNames<EventTypes>>(
518
+ event: T,
519
+ fn?: E.EventListener<EventTypes, T>,
520
+ context?: Context,
521
+ once?: boolean
522
+ ): this;
523
+ off<T extends E.EventNames<EventTypes>>(
524
+ event: T,
525
+ fn?: E.EventListener<EventTypes, T>,
526
+ context?: Context,
527
+ once?: boolean
528
+ ): this;
529
+
530
+ /**
531
+ * Remove all listeners, or those of the specified event.
532
+ */
533
+ removeAllListeners(event?: E.EventNames<EventTypes>): this;
534
+ }
535
+
536
+ declare namespace E {
537
+ export interface ListenerFn<Args extends any[] = any[]> {
538
+ (...args: Args): void;
539
+ }
540
+
541
+ export interface EventEmitterStatic {
542
+ new <
543
+ EventTypes extends ValidEventTypes = string | symbol,
544
+ Context = any
545
+ >(): EventEmitter<EventTypes, Context>;
546
+ }
547
+
548
+ /**
549
+ * `object` should be in either of the following forms:
550
+ * ```
551
+ * interface EventTypes {
552
+ * 'event-with-parameters': any[]
553
+ * 'event-with-example-handler': (...args: any[]) => void
554
+ * }
555
+ * ```
556
+ */
557
+ export type ValidEventTypes = string | symbol | object;
558
+
559
+ export type EventNames<T extends ValidEventTypes> = T extends string | symbol
560
+ ? T
561
+ : keyof T;
562
+
563
+ export type ArgumentMap<T extends object> = {
564
+ [K in keyof T]: T[K] extends (...args: any[]) => void
565
+ ? Parameters<T[K]>
566
+ : T[K] extends any[]
567
+ ? T[K]
568
+ : any[];
569
+ };
570
+
571
+ export type EventListener<
572
+ T extends ValidEventTypes,
573
+ K extends EventNames<T>
574
+ > = T extends string | symbol
575
+ ? (...args: any[]) => void
576
+ : (
577
+ ...args: ArgumentMap<Exclude<T, string | symbol>>[Extract<K, keyof T>]
578
+ ) => void;
579
+
580
+ export type EventArgs<
581
+ T extends ValidEventTypes,
582
+ K extends EventNames<T>
583
+ > = Parameters<EventListener<T, K>>;
584
+
585
+ export const EventEmitter: EventEmitterStatic;
586
+ }
587
+