@libmedia/avplayer 0.2.0
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/COPYING.LGPLv3 +165 -0
- package/README.md +13 -0
- package/dist/esm/118.avplayer.js +1 -0
- package/dist/esm/217.avplayer.js +1 -0
- package/dist/esm/299.avplayer.js +1 -0
- package/dist/esm/331.avplayer.js +1 -0
- package/dist/esm/344.avplayer.js +1 -0
- package/dist/esm/433.avplayer.js +1 -0
- package/dist/esm/453.avplayer.js +1 -0
- package/dist/esm/487.avplayer.js +1 -0
- package/dist/esm/522.avplayer.js +1 -0
- package/dist/esm/531.avplayer.js +1 -0
- package/dist/esm/543.avplayer.js +1 -0
- package/dist/esm/576.avplayer.js +1 -0
- package/dist/esm/611.avplayer.js +1 -0
- package/dist/esm/634.avplayer.js +1 -0
- package/dist/esm/70.avplayer.js +1 -0
- package/dist/esm/791.avplayer.js +1 -0
- package/dist/esm/808.avplayer.js +1 -0
- package/dist/esm/839.avplayer.js +1 -0
- package/dist/esm/854.avplayer.js +1 -0
- package/dist/esm/855.avplayer.js +1 -0
- package/dist/esm/94.avplayer.js +1 -0
- package/dist/esm/941.avplayer.js +1 -0
- package/dist/esm/969.avplayer.js +1 -0
- package/dist/esm/avplayer.js +1 -0
- package/dist/types/AVPlayer.d.ts +683 -0
- package/dist/types/Controller.d.ts +36 -0
- package/dist/types/JitterBufferController.d.ts +38 -0
- package/dist/types/StatsController.d.ts +22 -0
- package/dist/types/eventType.d.ts +21 -0
- package/dist/types/function/createMessageChannel.d.ts +1 -0
- package/dist/types/function/getMediaSource.d.ts +10 -0
- package/dist/types/function/supportOffscreenCanvas.d.ts +1 -0
- package/dist/types/mse/MSEPipeline.d.ts +98 -0
- package/dist/types/struct.d.ts +12 -0
- package/dist/types/subtitle/AssRender.d.ts +52 -0
- package/dist/types/subtitle/SubtitleRender.d.ts +48 -0
- package/dist/types/type.d.ts +6 -0
- package/dist/types/worker/AudioPipeline.d.ts +13 -0
- package/dist/types/worker/AudioPipelineProxy.d.ts +13 -0
- package/dist/types/worker/IODemuxPipeline.d.ts +13 -0
- package/dist/types/worker/IODemuxPipelineProxy.d.ts +13 -0
- package/dist/types/worker/MSEPipeline.d.ts +12 -0
- package/dist/types/worker/MSEPipelineProxy.d.ts +12 -0
- package/dist/types/worker/VideoPipeline.d.ts +13 -0
- package/dist/types/worker/VideoPipelineProxy.d.ts +13 -0
- package/dist/umd/118.avplayer.js +1 -0
- package/dist/umd/217.avplayer.js +1 -0
- package/dist/umd/299.avplayer.js +1 -0
- package/dist/umd/331.avplayer.js +1 -0
- package/dist/umd/344.avplayer.js +1 -0
- package/dist/umd/433.avplayer.js +1 -0
- package/dist/umd/453.avplayer.js +1 -0
- package/dist/umd/487.avplayer.js +1 -0
- package/dist/umd/522.avplayer.js +1 -0
- package/dist/umd/531.avplayer.js +1 -0
- package/dist/umd/543.avplayer.js +1 -0
- package/dist/umd/576.avplayer.js +1 -0
- package/dist/umd/611.avplayer.js +1 -0
- package/dist/umd/634.avplayer.js +1 -0
- package/dist/umd/70.avplayer.js +1 -0
- package/dist/umd/791.avplayer.js +1 -0
- package/dist/umd/808.avplayer.js +1 -0
- package/dist/umd/839.avplayer.js +1 -0
- package/dist/umd/854.avplayer.js +1 -0
- package/dist/umd/855.avplayer.js +1 -0
- package/dist/umd/94.avplayer.js +1 -0
- package/dist/umd/941.avplayer.js +1 -0
- package/dist/umd/969.avplayer.js +1 -0
- package/dist/umd/avplayer.js +1 -0
- package/package.json +42 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import Stats, { JitterBuffer } from "@libmedia/avpipeline/struct/stats";
|
|
2
|
+
export interface ControllerObserver {
|
|
3
|
+
onSetPlayRate: (rate: number) => void;
|
|
4
|
+
onCroppingBuffer: (max: int32) => void;
|
|
5
|
+
}
|
|
6
|
+
export interface JitterBufferControllerOptions {
|
|
7
|
+
stats: pointer<Stats>;
|
|
8
|
+
jitterBuffer: pointer<JitterBuffer>;
|
|
9
|
+
lowLatencyStart: boolean;
|
|
10
|
+
lowLatency: boolean;
|
|
11
|
+
useMse: boolean;
|
|
12
|
+
max: float;
|
|
13
|
+
min: float;
|
|
14
|
+
observer: ControllerObserver;
|
|
15
|
+
}
|
|
16
|
+
export default class JitterBufferController {
|
|
17
|
+
private timer;
|
|
18
|
+
private interval;
|
|
19
|
+
private data;
|
|
20
|
+
private lastIncomingPacketCount;
|
|
21
|
+
private shutterCount;
|
|
22
|
+
private lastShutterCount;
|
|
23
|
+
private isFirst;
|
|
24
|
+
private max;
|
|
25
|
+
private min;
|
|
26
|
+
private targetPlaybackRate;
|
|
27
|
+
private currentPlaybackRate;
|
|
28
|
+
private playbackRateTimer;
|
|
29
|
+
private options;
|
|
30
|
+
constructor(options: JitterBufferControllerOptions);
|
|
31
|
+
start(): void;
|
|
32
|
+
stop(): void;
|
|
33
|
+
reset(): void;
|
|
34
|
+
private setPlayRate;
|
|
35
|
+
private computePlayRate;
|
|
36
|
+
private process;
|
|
37
|
+
private onTimer;
|
|
38
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import Stats from "@libmedia/avpipeline/struct/stats";
|
|
2
|
+
export interface StatsControllerObserver {
|
|
3
|
+
onVideoStutter: () => void;
|
|
4
|
+
}
|
|
5
|
+
export default class StatsController {
|
|
6
|
+
private stats;
|
|
7
|
+
private timer;
|
|
8
|
+
private videoFrameRenderCount;
|
|
9
|
+
private videoFrameDecodeCount;
|
|
10
|
+
private audioFrameRenderCount;
|
|
11
|
+
private audioFrameDecodeCount;
|
|
12
|
+
private videoPacketBytes;
|
|
13
|
+
private audioPacketBytes;
|
|
14
|
+
private bufferReceiveBytes;
|
|
15
|
+
private observer;
|
|
16
|
+
private isWorkerMain;
|
|
17
|
+
constructor(stats: pointer<Stats>, isWorkerMain: boolean, observer: StatsControllerObserver);
|
|
18
|
+
private reset;
|
|
19
|
+
start(): void;
|
|
20
|
+
stop(): void;
|
|
21
|
+
private onTimer;
|
|
22
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export declare const LOADING = "loading";
|
|
2
|
+
export declare const LOADED = "loaded";
|
|
3
|
+
export declare const PLAYING = "playing";
|
|
4
|
+
export declare const PLAYED = "played";
|
|
5
|
+
export declare const PAUSED = "paused";
|
|
6
|
+
export declare const STOPPED = "stopped";
|
|
7
|
+
export declare const ENDED = "ended";
|
|
8
|
+
export declare const SEEKING = "seeking";
|
|
9
|
+
export declare const SEEKED = "seeked";
|
|
10
|
+
export declare const CHANGING = "changing";
|
|
11
|
+
export declare const CHANGED = "changed";
|
|
12
|
+
export declare const TIMEOUT = "timeout";
|
|
13
|
+
export declare const ERROR = "error";
|
|
14
|
+
export declare const TIME = "time";
|
|
15
|
+
export declare const RESUME = "resume";
|
|
16
|
+
export declare const FIRST_AUDIO_RENDERED = "firstAudioRendered";
|
|
17
|
+
export declare const FIRST_VIDEO_RENDERED = "firstVideoRendered";
|
|
18
|
+
export declare const STREAM_UPDATE = "streamUpdate";
|
|
19
|
+
export declare const PROGRESS = "progress";
|
|
20
|
+
export declare const VOLUME_CHANGE = "volumeChange";
|
|
21
|
+
export declare const SUBTITLE_DELAY_CHANGE = "subtitleDelayChange";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function createMessageChannel(enableWorker: boolean): MessageChannel;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export default function getMediaSource(): {
|
|
2
|
+
new (): MediaSource;
|
|
3
|
+
prototype: MediaSource;
|
|
4
|
+
readonly canConstructInDedicatedWorker: boolean;
|
|
5
|
+
isTypeSupported(type: string): boolean;
|
|
6
|
+
} | {
|
|
7
|
+
new (): ManagedMediaSource;
|
|
8
|
+
prototype: ManagedMediaSource;
|
|
9
|
+
isTypeSupported(type: string): boolean;
|
|
10
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function supportOffscreenCanvas(): boolean;
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { AVOFormatContext } from "@libmedia/avformat/AVFormatContext";
|
|
2
|
+
import Pipeline, { TaskOptions } from "@libmedia/avpipeline/Pipeline";
|
|
3
|
+
import IPCPort from "@libmedia/common/network/IPCPort";
|
|
4
|
+
import OFormat from "@libmedia/avformat/formats/OFormat";
|
|
5
|
+
import IOWriter from "@libmedia/common/io/IOWriterSync";
|
|
6
|
+
import AVCodecParameters from "@libmedia/avutil/struct/avcodecparameters";
|
|
7
|
+
import { Rational } from "@libmedia/avutil/struct/rational";
|
|
8
|
+
import LoopTask from "@libmedia/common/timer/LoopTask";
|
|
9
|
+
import Track from "@libmedia/avrender/track/Track";
|
|
10
|
+
import { AVPacketPool, AVPacketRef } from "@libmedia/avutil/struct/avpacket";
|
|
11
|
+
import List from "@libmedia/cheap/std/collection/List";
|
|
12
|
+
import { Mutex } from "@libmedia/cheap/thread/mutex";
|
|
13
|
+
import SeekableWriteBuffer from "@libmedia/common/io/SeekableWriteBuffer";
|
|
14
|
+
import { AVCodecParametersSerialize } from "@libmedia/avutil/util/serialize";
|
|
15
|
+
export interface MSETaskOptions extends TaskOptions {
|
|
16
|
+
isLive: boolean;
|
|
17
|
+
avpacketList: pointer<List<pointer<AVPacketRef>>>;
|
|
18
|
+
avpacketListMutex: pointer<Mutex>;
|
|
19
|
+
enableJitterBuffer: boolean;
|
|
20
|
+
}
|
|
21
|
+
interface PullQueue {
|
|
22
|
+
queue: pointer<AVPacketRef>[];
|
|
23
|
+
index: int32;
|
|
24
|
+
frameCount: int64;
|
|
25
|
+
lastPTS: int64;
|
|
26
|
+
lastDTS: int64;
|
|
27
|
+
diff: int64;
|
|
28
|
+
ended: boolean;
|
|
29
|
+
useSampleRateTimeBase: boolean;
|
|
30
|
+
}
|
|
31
|
+
interface MSEResource {
|
|
32
|
+
type: 'audio' | 'video';
|
|
33
|
+
codecpar: pointer<AVCodecParameters>;
|
|
34
|
+
oformatContext: AVOFormatContext;
|
|
35
|
+
oformat: OFormat;
|
|
36
|
+
ioWriter: IOWriter;
|
|
37
|
+
bufferQueue: SeekableWriteBuffer;
|
|
38
|
+
track: Track;
|
|
39
|
+
streamIndex: int32;
|
|
40
|
+
pullIPC: IPCPort;
|
|
41
|
+
loop: LoopTask;
|
|
42
|
+
startTimestamp: int64;
|
|
43
|
+
frontPacket: pointer<AVPacketRef>;
|
|
44
|
+
backPacket: pointer<AVPacketRef>;
|
|
45
|
+
frontBuffered: boolean;
|
|
46
|
+
packetEnded: boolean;
|
|
47
|
+
ended: boolean;
|
|
48
|
+
seekSync: () => void;
|
|
49
|
+
startPTS: int64;
|
|
50
|
+
pullQueue: PullQueue;
|
|
51
|
+
enableRawMpeg: boolean;
|
|
52
|
+
timestampOffsetUpdated: boolean;
|
|
53
|
+
}
|
|
54
|
+
type SelfTask = MSETaskOptions & {
|
|
55
|
+
mediaSource: MediaSource;
|
|
56
|
+
controlIPCPort: IPCPort;
|
|
57
|
+
audio: MSEResource;
|
|
58
|
+
video: MSEResource;
|
|
59
|
+
pauseTimestamp: number;
|
|
60
|
+
playRate: int64;
|
|
61
|
+
targetRate: int64;
|
|
62
|
+
seeking: boolean;
|
|
63
|
+
pausing: boolean;
|
|
64
|
+
cacheDuration: int64;
|
|
65
|
+
currentTime: double;
|
|
66
|
+
currentTimeNTP: int32;
|
|
67
|
+
avpacketPool: AVPacketPool;
|
|
68
|
+
};
|
|
69
|
+
export default class MSEPipeline extends Pipeline {
|
|
70
|
+
tasks: Map<string, SelfTask>;
|
|
71
|
+
constructor();
|
|
72
|
+
private syncToKeyframe;
|
|
73
|
+
private getSourceOpenHandler;
|
|
74
|
+
private getMimeType;
|
|
75
|
+
private createSourceBuffer;
|
|
76
|
+
private mixExtradata;
|
|
77
|
+
private pullAVPacketInternal;
|
|
78
|
+
private pullAVPacket;
|
|
79
|
+
private writeAVPacket;
|
|
80
|
+
private swap;
|
|
81
|
+
private createLoop;
|
|
82
|
+
private startMux;
|
|
83
|
+
private resetResource;
|
|
84
|
+
addStream(taskId: string, streamIndex: int32, parameters: pointer<AVCodecParameters> | AVCodecParametersSerialize, timeBase: Rational, startPTS: int64, pullIPCPort: MessagePort): Promise<void>;
|
|
85
|
+
reAddStream(taskId: string, streamIndex: int32, parameters: pointer<AVCodecParameters> | AVCodecParametersSerialize, timeBase: Rational, startPTS: int64): Promise<void>;
|
|
86
|
+
pause(taskId: string): Promise<void>;
|
|
87
|
+
unpause(taskId: string): Promise<void>;
|
|
88
|
+
beforeSeek(taskId: string): Promise<void>;
|
|
89
|
+
afterSeek(taskId: string, timestamp: int64): Promise<number>;
|
|
90
|
+
setPlayRate(taskId: string, rate: double): Promise<void>;
|
|
91
|
+
restart(taskId: string): Promise<void>;
|
|
92
|
+
setCurrentTime(taskId: string, time: number): Promise<void>;
|
|
93
|
+
getMediaSource(taskId: string): Promise<MediaSource>;
|
|
94
|
+
private createTask;
|
|
95
|
+
registerTask(options: MSETaskOptions, startTimestamp?: int64): Promise<number>;
|
|
96
|
+
unregisterTask(id: string): Promise<void>;
|
|
97
|
+
}
|
|
98
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import Stats from "@libmedia/avpipeline/struct/stats";
|
|
2
|
+
import { AVFrameRef } from "@libmedia/avutil/struct/avframe";
|
|
3
|
+
import { AVPacketRef } from "@libmedia/avutil/struct/avpacket";
|
|
4
|
+
import List from "@libmedia/cheap/std/collection/List";
|
|
5
|
+
import { Mutex } from "@libmedia/cheap/thread/mutex";
|
|
6
|
+
export declare class AVPlayerGlobalData {
|
|
7
|
+
avpacketList: List<pointer<AVPacketRef>>;
|
|
8
|
+
avframeList: List<pointer<AVFrameRef>>;
|
|
9
|
+
avpacketListMutex: Mutex;
|
|
10
|
+
avframeListMutex: Mutex;
|
|
11
|
+
stats: Stats;
|
|
12
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { AssEvent } from "@libmedia/avformat/formats/ass/ass";
|
|
2
|
+
export interface AssRenderOptions {
|
|
3
|
+
container: HTMLElement;
|
|
4
|
+
videoWidth?: number;
|
|
5
|
+
videoHeight?: number;
|
|
6
|
+
header?: string;
|
|
7
|
+
resampling?: 'video_width' | 'video_height' | 'script_width' | 'script_height';
|
|
8
|
+
}
|
|
9
|
+
export declare const defaultStyle: {
|
|
10
|
+
Name: string;
|
|
11
|
+
Fontname: string;
|
|
12
|
+
Fontsize: string;
|
|
13
|
+
PrimaryColour: string;
|
|
14
|
+
SecondaryColour: string;
|
|
15
|
+
OutlineColour: string;
|
|
16
|
+
BackColour: string;
|
|
17
|
+
Bold: string;
|
|
18
|
+
Italic: string;
|
|
19
|
+
Underline: string;
|
|
20
|
+
StrikeOut: string;
|
|
21
|
+
ScaleX: string;
|
|
22
|
+
ScaleY: string;
|
|
23
|
+
Spacing: string;
|
|
24
|
+
Angle: string;
|
|
25
|
+
BorderStyle: string;
|
|
26
|
+
Outline: string;
|
|
27
|
+
Shadow: string;
|
|
28
|
+
Alignment: string;
|
|
29
|
+
MarginL: string;
|
|
30
|
+
MarginR: string;
|
|
31
|
+
MarginV: string;
|
|
32
|
+
Encoding: string;
|
|
33
|
+
};
|
|
34
|
+
export default class AssRender {
|
|
35
|
+
private store;
|
|
36
|
+
private resampling_;
|
|
37
|
+
private resize_;
|
|
38
|
+
private options;
|
|
39
|
+
constructor(dom: HTMLElement, options?: AssRenderOptions);
|
|
40
|
+
private framing;
|
|
41
|
+
updateHeader(header: string): void;
|
|
42
|
+
updateVideoResolution(videoWidth: number, videoHeight: number): void;
|
|
43
|
+
render(event: AssEvent): void;
|
|
44
|
+
clear(pts: int64): void;
|
|
45
|
+
clearAll(): void;
|
|
46
|
+
resize(): void;
|
|
47
|
+
destroy(): this;
|
|
48
|
+
show(): this;
|
|
49
|
+
hide(): this;
|
|
50
|
+
get resampling(): string;
|
|
51
|
+
set resampling(r: string);
|
|
52
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { AVPacketRef } from "@libmedia/avutil/struct/avpacket";
|
|
2
|
+
import AVCodecParameters from "@libmedia/avutil/struct/avcodecparameters";
|
|
3
|
+
import List from "@libmedia/cheap/std/collection/List";
|
|
4
|
+
import { Mutex } from "@libmedia/cheap/thread/mutex";
|
|
5
|
+
export interface SubtitleRenderOptions {
|
|
6
|
+
delay?: int64;
|
|
7
|
+
getCurrentTime: () => int64;
|
|
8
|
+
avpacketList?: pointer<List<pointer<AVPacketRef>>>;
|
|
9
|
+
avpacketListMutex?: pointer<Mutex>;
|
|
10
|
+
codecpar: pointer<AVCodecParameters>;
|
|
11
|
+
dom: HTMLElement;
|
|
12
|
+
container: HTMLElement;
|
|
13
|
+
videoWidth: int32;
|
|
14
|
+
videoHeight: int32;
|
|
15
|
+
}
|
|
16
|
+
export default class SubtitleRender {
|
|
17
|
+
private decoder;
|
|
18
|
+
private loop;
|
|
19
|
+
private demuxer2SubtitleRenderChannels;
|
|
20
|
+
private leftPorts;
|
|
21
|
+
private currentPort;
|
|
22
|
+
private render;
|
|
23
|
+
private queue;
|
|
24
|
+
private ended;
|
|
25
|
+
private options;
|
|
26
|
+
private pulling;
|
|
27
|
+
private formats;
|
|
28
|
+
private avpacketPool;
|
|
29
|
+
private delay;
|
|
30
|
+
private enable;
|
|
31
|
+
constructor(options: SubtitleRenderOptions);
|
|
32
|
+
private getAssHeader;
|
|
33
|
+
private createDecoder;
|
|
34
|
+
private text2AssEvent;
|
|
35
|
+
private webvtt2AssEvent;
|
|
36
|
+
private pull;
|
|
37
|
+
getDemuxerPort(taskId: string): MessagePort;
|
|
38
|
+
start(): void;
|
|
39
|
+
stop(): void;
|
|
40
|
+
pause(): void;
|
|
41
|
+
reset(): void;
|
|
42
|
+
reopenDecoder(codecpar: pointer<AVCodecParameters>): void;
|
|
43
|
+
updateVideoResolution(videoWidth: number, videoHeight: number): void;
|
|
44
|
+
setDemuxTask(taskId: string): void;
|
|
45
|
+
destroy(): void;
|
|
46
|
+
setDelay(d: int64): void;
|
|
47
|
+
getDelay(): int64;
|
|
48
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { AVMediaType } from "@libmedia/avutil/codec";
|
|
2
|
+
export declare function playerEventNoParam(): void;
|
|
3
|
+
export declare function playerEventTime(pts: int64): void;
|
|
4
|
+
export declare function playerEventChanging(type: AVMediaType, newStreamId: int32, oldStreamId: int32): void;
|
|
5
|
+
export declare function playerEventChanged(type: AVMediaType, newStreamId: int32, oldStreamId: int32): void;
|
|
6
|
+
export declare function playerEventError(error: Error): void;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export default class AudioPipeline {
|
|
2
|
+
private decoder;
|
|
3
|
+
private render;
|
|
4
|
+
private globalDataMap;
|
|
5
|
+
private controlPort;
|
|
6
|
+
private timer;
|
|
7
|
+
constructor();
|
|
8
|
+
private createGlobalData;
|
|
9
|
+
private releaseGlobalData;
|
|
10
|
+
init(controlPort: MessagePort): Promise<void>;
|
|
11
|
+
invoke(type: 'decoder' | 'render', method: string, args: any[]): Promise<any>;
|
|
12
|
+
setLogLevel(level: number): Promise<void>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export default class AudioPipelineProxy {
|
|
2
|
+
private thread;
|
|
3
|
+
private controlMessageChannel;
|
|
4
|
+
private controlPort;
|
|
5
|
+
private statsMap;
|
|
6
|
+
constructor();
|
|
7
|
+
run(): Promise<void>;
|
|
8
|
+
destroy(): Promise<void>;
|
|
9
|
+
setLogLevel(level: number): void;
|
|
10
|
+
private transformResult;
|
|
11
|
+
get AudioDecodePipeline(): {};
|
|
12
|
+
get AudioRenderPipeline(): {};
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export default class IODemuxPipeline {
|
|
2
|
+
private ioThread;
|
|
3
|
+
private demuxPipeline;
|
|
4
|
+
private globalDataMap;
|
|
5
|
+
private controlPort;
|
|
6
|
+
private timer;
|
|
7
|
+
constructor();
|
|
8
|
+
private createGlobalData;
|
|
9
|
+
private releaseGlobalData;
|
|
10
|
+
init(controlPort: MessagePort): Promise<void>;
|
|
11
|
+
invoke(type: 'io' | 'demux', method: string, args: any[]): Promise<any>;
|
|
12
|
+
setLogLevel(level: number): Promise<void>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export default class IODemuxPipelineProxy {
|
|
2
|
+
private thread;
|
|
3
|
+
private codecparMap;
|
|
4
|
+
private controlMessageChannel;
|
|
5
|
+
private controlPort;
|
|
6
|
+
private statsMap;
|
|
7
|
+
constructor();
|
|
8
|
+
run(): Promise<void>;
|
|
9
|
+
setLogLevel(level: number): void;
|
|
10
|
+
destroy(): Promise<void>;
|
|
11
|
+
get IOPipeline(): {};
|
|
12
|
+
get DemuxPipeline(): {};
|
|
13
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export default class MSEPipelineWorker {
|
|
2
|
+
private mse;
|
|
3
|
+
private globalDataMap;
|
|
4
|
+
private controlPort;
|
|
5
|
+
private timer;
|
|
6
|
+
constructor();
|
|
7
|
+
private createGlobalData;
|
|
8
|
+
private releaseGlobalData;
|
|
9
|
+
init(controlPort: MessagePort): Promise<void>;
|
|
10
|
+
invoke(method: string, args: any[]): Promise<any>;
|
|
11
|
+
setLogLevel(level: number): Promise<void>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export default class MSEPipelineProxy {
|
|
2
|
+
private thread;
|
|
3
|
+
private controlMessageChannel;
|
|
4
|
+
private controlPort;
|
|
5
|
+
private statsMap;
|
|
6
|
+
constructor();
|
|
7
|
+
run(): Promise<void>;
|
|
8
|
+
setLogLevel(level: number): void;
|
|
9
|
+
destroy(): Promise<void>;
|
|
10
|
+
private transformResult;
|
|
11
|
+
get MSEPipeline(): {};
|
|
12
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export default class VideoPipeline {
|
|
2
|
+
private decoder;
|
|
3
|
+
private render;
|
|
4
|
+
private globalDataMap;
|
|
5
|
+
private controlPort;
|
|
6
|
+
private timer;
|
|
7
|
+
constructor();
|
|
8
|
+
private createGlobalData;
|
|
9
|
+
private releaseGlobalData;
|
|
10
|
+
init(controlPort: MessagePort): Promise<void>;
|
|
11
|
+
invoke(type: 'decoder' | 'render', method: string, args: any[]): Promise<any>;
|
|
12
|
+
setLogLevel(level: number): Promise<void>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export default class VideoPipelineProxy {
|
|
2
|
+
private thread;
|
|
3
|
+
private controlMessageChannel;
|
|
4
|
+
private controlPort;
|
|
5
|
+
private statsMap;
|
|
6
|
+
constructor();
|
|
7
|
+
run(): Promise<void>;
|
|
8
|
+
setLogLevel(level: number): void;
|
|
9
|
+
destroy(): Promise<void>;
|
|
10
|
+
private transformResult;
|
|
11
|
+
get VideoDecodePipeline(): {};
|
|
12
|
+
get VideoRenderPipeline(): {};
|
|
13
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunklibmedia=self.webpackChunklibmedia||[]).push([[118],{85947:(t,i,e)=>{e.d(i,{A:()=>r});var s=e(134);class r{constructor(){(0,s.A)(this,"type",-1),(0,s.A)(this,"onStreamAdd",void 0)}async destroy(t){}}},29118:(t,i,e)=>{e.r(i),e.d(i,{default:()=>P});var s=e(134),r=e(63939),n=e(50932),a=e(38743),h=e(4624),o=e(54712),d=e(87400),g=e(9705),l=e(92647),p=e(85947),u=e(14686),f=e(37837),c=e(71517),m=e(82348),w=e(35336),b=e(77231),I=e(52071),k=e(44328),S=e(72739),B=e(79630),v=e(43607);const y="src/avformat/formats/IOggFormat.ts";class P extends p.A{constructor(){super(),(0,s.A)(this,"type",4),(0,s.A)(this,"headerPagesPayload",void 0),(0,s.A)(this,"page",void 0),(0,s.A)(this,"curSegIndex",void 0),(0,s.A)(this,"curSegStart",void 0),(0,s.A)(this,"segCount",void 0),(0,s.A)(this,"segIndex",void 0),(0,s.A)(this,"currentPts",void 0),(0,s.A)(this,"firstPos",void 0),(0,s.A)(this,"firstGranulePosition",void 0),(0,s.A)(this,"paddingPayload",void 0),this.page=new a.B,this.headerPagesPayload=[]}init(t){t.ioReader&&t.ioReader.setEndian(!1),t.ioReader&&t.ioReader.setEndian(!1),this.curSegIndex=-1,this.curSegStart=0,this.currentPts=BigInt(0),this.segCount=0,this.segIndex=0,this.firstGranulePosition=BigInt(0)}async estimateTotalBlock(t){let i=BigInt(0);const e=t.ioReader.getPos(),s=this.currentPts,r=await t.ioReader.fileSize();for(await t.ioReader.seek(v.T9(r-BigInt(195072),BigInt(0))),await this.syncPage(t);;)try{this.page.reset(),await this.page.read(t.ioReader),i=this.page.granulePosition}catch(t){break}return await t.ioReader.seek(e),this.currentPts=s,i}async getNextSegment(t){if(this.curSegIndex<0){this.page.granulePosition>BigInt(0)&&(this.currentPts=this.page.granulePosition),this.page.reset(),await this.page.read(t.ioReader),this.curSegIndex=0,this.curSegStart=0,this.segIndex=-1,this.segCount=0;for(let t=0;t<this.page.segmentTable.length;t++)255!==this.page.segmentTable[t]&&this.segCount++;this.segCount||(this.segCount=1)}let i=0;for(;this.curSegIndex<this.page.segmentTable.length;){const t=this.page.segmentTable[this.curSegIndex++];if(i+=t,255!==t)break}const e=this.curSegStart;return this.curSegStart+=i,this.segIndex++,this.curSegIndex===this.page.segmentTable.length&&(this.curSegIndex=-1),this.page.payload.subarray(e,e+i)}addComment(t,i){t.vendorString&&(i.metadata.vendor=t.vendorString),S.__(t.comments.list,(t=>{const e=t.split("=");if(e.length>1){const t=e.shift(),s=e.join("=");i.metadata[t]=s}}))}async createStream(t,i){if(i.length<8)return 0;let e=new m.A(i.length,!1);e.appendBuffer(i);const s=e.peekString(8);if("OpusHead"===s){const s=new o.q;s.read(e);const r=new o.o;i=await this.getNextSegment(t),e=new m.A(i.length,!1),e.appendBuffer(i),r.read(e),this.headerPagesPayload=[s,r];const n=t.createStream();n.codecpar.codecType=1,n.codecpar.codecId=86076,n.codecpar.sampleRate=s.sampleRate,n.codecpar.chLayout.nbChannels=s.channels,n.timeBase.den=n.codecpar.sampleRate,n.timeBase.num=1,n.privData={serialNumber:this.page.serialNumber},this.addComment(r,n),n.duration=await this.estimateTotalBlock(t)}else if("vorbis"===s.slice(1,7)){const s=[i],r=new d.m;r.read(e);const n=new d.G;i=await this.getNextSegment(t),e=new m.A(i.length,!1),e.appendBuffer(i),n.read(e),s.push(i),this.headerPagesPayload=[r,n];const a=t.createStream();a.codecpar.codecType=1,a.codecpar.codecId=86021,a.codecpar.sampleRate=r.sampleRate,a.codecpar.chLayout.nbChannels=r.channels,a.timeBase.den=a.codecpar.sampleRate,a.timeBase.num=1,a.privData={serialNumber:this.page.serialNumber},this.addComment(n,a),s.push(await this.getNextSegment(t));const h=s.reduce(((t,i)=>t+2+i.length),0),o=(0,f.sY)(h),g=new w.A(h,!0,new B.A(o,h));s.forEach((t=>{g.writeUint16(t.length),g.writeBuffer(t)})),a.codecpar.extradata=o,a.codecpar.extradataSize=h,a.duration=await this.estimateTotalBlock(t)}else if("FLAC"===s.slice(1,5)){e.setEndian(!0),e.skip(1),e.skip(4),e.skip(1),e.skip(1),e.readUint16(),e.skip(4);const s=e.readUint8(),r=e.readUint24();if(0!==s)return g.LR;{const s=t.createStream();s.codecpar.codecType=1,s.codecpar.codecId=86028;const n=(0,f.sY)(r);e.peekBuffer(r,(0,u.s3)(n,r)),e.skip(10);const h=e.readUint24();s.codecpar.sampleRate=h>>4,s.codecpar.chLayout.nbChannels=1+((15&h)>>>1),s.timeBase.den=s.codecpar.sampleRate,s.timeBase.num=1,s.privData={serialNumber:this.page.serialNumber},s.codecpar.extradata=n,s.codecpar.extradataSize=r;const o=new a.h;i=await this.getNextSegment(t),e=new m.A(i.length-4,!1),e.appendBuffer(i.subarray(4)),o.read(e),s.duration=await this.estimateTotalBlock(t),this.addComment(o,s),this.headerPagesPayload=[o]}}else{if("Speex"!==s.slice(0,5))return 0;{const s=t.createStream();s.codecpar.codecType=1,s.codecpar.codecId=86051;const r=(0,f.sY)(i.length);(0,u.lW)(r,i.length,i),s.codecpar.extradata=r,s.codecpar.extradataSize=i.length,e.seek(BigInt(36)),s.codecpar.sampleRate=e.readUint32(),e.seek(BigInt(48)),s.codecpar.chLayout.nbChannels=e.readUint32(),s.timeBase.den=s.codecpar.sampleRate,s.timeBase.num=1,s.privData={serialNumber:this.page.serialNumber};const n=new a.h;i=await this.getNextSegment(t),e=new m.A(i.length,!1),e.appendBuffer(i),n.read(e),s.duration=await this.estimateTotalBlock(t),this.addComment(n,s),this.headerPagesPayload=[n]}}return 1}async readHeader(t){try{if("OggS"!==await t.ioReader.peekString(4))return h.z3("the file format is not oggs",y,387),g.LR;for(;;){let i=this.paddingPayload||await this.getNextSegment(t);this.paddingPayload&&(this.paddingPayload=null);const e=await this.createStream(t,i);if(e<0)return e;if(!e){this.paddingPayload=i;break}}return this.firstPos=this.paddingPayload?this.page.pos:t.ioReader.getPos(),0}catch(i){return h.z3(i.message,y,409),t.ioReader.error}}async readAVPacket(t,i){n.M[17](i+56,t.ioReader.getPos());try{const e=this.paddingPayload||await this.getNextSegment(t);this.paddingPayload&&(this.paddingPayload=null);let s=this.currentPts+(this.page.granulePosition-this.currentPts)/BigInt(Math.floor(this.segCount))*BigInt(Math.floor(this.segIndex));n.M[17](i+16,s),n.M[17](i+8,s),this.firstGranulePosition||(this.firstGranulePosition=this.page.granulePosition);const a=t.streams.find((t=>t.privData&&t.privData.serialNumber===this.page.serialNumber));if(!a)return await this.createStream(t,e),this.readAVPacket(t,i);n.M[15](i+32,a.index),n.M[15](i+76,a.timeBase.den),n.M[15](i+72,a.timeBase.num),1===a.codecpar.codecType&&n.M[15](i+36,1|r.f[15](i+36));const h=[e];for(;this.curSegIndex<0;)try{if(!(1&(await t.ioReader.peekBuffer(6))[5]))break;h.push(await this.getNextSegment(t))}catch(t){break}const o=(0,l.A)(Uint8Array,h),d=o.length,g=(0,f.sY)(d);return(0,u.lW)(g,d,o),(0,c.NX)(i,g,d),0}catch(i){return-1048576!==t.ioReader.error?(h.z3(`read packet error, ${i}`,y,478),g.LR):t.ioReader.error}}async syncPage(t){let i=b.Dh,e=BigInt(0);for(;;)try{if("OggS"===await t.ioReader.peekString(4)){i=t.ioReader.getPos(),this.page.reset(),await this.page.read(t.ioReader),e=this.page.granulePosition;let s=0;for(;3!==s&&"OggS"===await t.ioReader.peekString(4);)s++,this.page.reset(),await this.page.read(t.ioReader);if(3===s)break}await t.ioReader.skip(1)}catch(t){break}if(i!==b.Dh){for(await t.ioReader.seek(i);1&(await t.ioReader.peekBuffer(6))[5];)this.page.reset(),await this.page.read(t.ioReader),e=this.page.granulePosition;this.currentPts=e-this.firstGranulePosition,this.curSegIndex=-1}}async seek(t,i,e,s){const r=t.ioReader.getPos();if(2&s){const i=await t.ioReader.fileSize();return i<=BigInt(0)?BigInt(g.E$):(e<BigInt(0)?e=BigInt(0):e>i&&(e=i),await t.ioReader.seek(e),4&s||await this.syncPage(t),r)}return(0,k.k)(e,i.timeBase,b.i0)<BigInt(1e4)?(h.Yz(`seek pts is earlier then 10s, seek to first packet pos(${this.firstPos}) directly`,y,571),await t.ioReader.seek(this.firstPos),this.currentPts=BigInt(0),r):(0,I.A)(t,i,e,this.firstPos,this.readAVPacket.bind(this),this.syncPage.bind(this))}getAnalyzeStreamsCount(){return 1}}},38743:(t,i,e)=>{e.d(i,{B:()=>h,h:()=>o});var s=e(134),r=e(77231),n=e(50011);class a{constructor(){(0,s.A)(this,"list",void 0),this.list=[]}read(t,i){for(let e=0;e<i;e++){const i=t.readUint32();this.list.push(t.readString(i))}}write(t){for(let i=0;i<this.list.length;i++){const e=n.encode(this.list[i]);t.writeUint32(e.length),t.writeBuffer(e)}}addComment(t){this.list.push(t)}}class h{constructor(){(0,s.A)(this,"capturePattern",void 0),(0,s.A)(this,"streamStructureVersion",void 0),(0,s.A)(this,"headerTypeFlag",void 0),(0,s.A)(this,"granulePosition",void 0),(0,s.A)(this,"serialNumber",void 0),(0,s.A)(this,"pageSequenceNumber",void 0),(0,s.A)(this,"crcCheckSum",void 0),(0,s.A)(this,"numberPageSegments",void 0),(0,s.A)(this,"segmentTable",void 0),(0,s.A)(this,"payload",void 0),(0,s.A)(this,"pos",void 0),this.reset()}reset(){this.capturePattern="OggS",this.streamStructureVersion=0,this.headerTypeFlag=0,this.granulePosition=r.Dh,this.serialNumber=0,this.pageSequenceNumber=0,this.crcCheckSum=0,this.numberPageSegments=0,this.segmentTable=[],this.pos=BigInt(0)}async read(t){this.pos=t.getPos(),await this.readPageHeader(t);const i=this.segmentTable.reduce(((t,i)=>t+i),0);i&&(this.payload=await t.readBuffer(i))}async readPageHeader(t){if(this.capturePattern=await t.readString(4),this.streamStructureVersion=await t.readUint8(),this.headerTypeFlag=await t.readUint8(),this.granulePosition=await t.readUint64(),this.serialNumber=await t.readUint32(),this.pageSequenceNumber=await t.readUint32(),this.crcCheckSum=await t.readUint32(),this.numberPageSegments=await t.readUint8(),this.numberPageSegments)for(let i=0;i<this.numberPageSegments;i++){const i=await t.readUint8();this.segmentTable.push(i)}}write(t){if(this.pos=t.getPos(),t.writeString(this.capturePattern),t.writeUint8(this.streamStructureVersion),t.writeUint8(this.headerTypeFlag),t.writeUint64(this.granulePosition),t.writeUint32(this.serialNumber),t.writeUint32(this.pageSequenceNumber),t.writeUint32(this.crcCheckSum),this.payload){this.numberPageSegments=Math.floor(this.payload.length/255)+1;const i=this.payload.length%255;t.writeUint8(this.numberPageSegments);for(let i=0;i<this.numberPageSegments-1;i++)t.writeUint8(255);t.writeUint8(i),t.writeBuffer(this.payload)}else t.writeUint8(0)}}class o{constructor(){(0,s.A)(this,"streamIndex",void 0),(0,s.A)(this,"signature",void 0),(0,s.A)(this,"vendorStringLength",void 0),(0,s.A)(this,"vendorString",void 0),(0,s.A)(this,"userCommentListLength",void 0),(0,s.A)(this,"comments",void 0),this.vendorString="v0.2.0",this.vendorStringLength=this.vendorString.length,this.userCommentListLength=0,this.comments=new a}read(t){this.vendorStringLength=t.readUint32(),this.vendorString=t.readString(this.vendorStringLength),this.userCommentListLength=t.readUint32(),this.userCommentListLength&&this.comments.read(t,this.userCommentListLength)}write(t){const i=n.encode(this.vendorString);t.writeUint32(i.length),t.writeBuffer(i),t.writeUint32(this.comments.list.length),this.comments.write(t)}addComment(t){this.comments.addComment(t)}setCodec(t){}}},54712:(t,i,e)=>{e.d(i,{o:()=>h,q:()=>a});var s=e(134),r=e(38743);class n{constructor(){(0,s.A)(this,"streamCount",void 0),(0,s.A)(this,"coupledStreamCount",void 0),(0,s.A)(this,"mapping",void 0),this.streamCount=1,this.coupledStreamCount=0,this.mapping=new Uint8Array(1)}read(t){this.streamCount=t.readUint8(),this.coupledStreamCount=t.readUint8(),this.mapping=t.readBuffer(this.streamCount+this.coupledStreamCount)}write(t){t.writeUint8(this.streamCount),t.writeUint8(this.coupledStreamCount),t.writeBuffer(this.mapping)}}class a{constructor(){(0,s.A)(this,"streamIndex",void 0),(0,s.A)(this,"signature",void 0),(0,s.A)(this,"version",void 0),(0,s.A)(this,"channels",void 0),(0,s.A)(this,"preSkip",void 0),(0,s.A)(this,"sampleRate",void 0),(0,s.A)(this,"outputGain",void 0),(0,s.A)(this,"channelMappingFamily",void 0),(0,s.A)(this,"channelMappingTable",void 0),this.signature="OpusHead",this.version=1,this.channels=1,this.preSkip=0,this.sampleRate=48e3,this.outputGain=0,this.channelMappingFamily=0,this.channelMappingTable=new n}read(t){this.signature=t.readString(8),this.version=t.readUint8(),this.channels=t.readUint8(),this.preSkip=t.readUint16(),this.sampleRate=t.readUint32(),this.outputGain=t.readInt16(),this.channelMappingFamily=t.readUint8(),0!==this.channelMappingFamily&&this.channelMappingTable.read(t)}write(t){t.writeString(this.signature),t.writeUint8(this.version),t.writeUint8(this.channels),t.writeUint16(this.preSkip),t.writeUint32(this.sampleRate),t.writeInt16(this.outputGain),t.writeUint8(this.channelMappingFamily),0!==this.channelMappingFamily&&this.channelMappingTable.write(t)}setCodec(t){this.sampleRate=t.sampleRate,this.channels=t.chLayout.nbChannels,this.channelMappingFamily=t.format}}class h extends r.h{constructor(){super(),this.signature="OpusTags"}read(t){this.signature=t.readString(8),super.read(t)}write(t){t.writeString(this.signature),super.write(t)}addComment(t){this.comments.addComment(t)}setCodec(t){}}},87400:(t,i,e)=>{e.d(i,{G:()=>a,m:()=>n});var s=e(134),r=e(38743);class n{constructor(t="vorbis"){(0,s.A)(this,"streamIndex",void 0),(0,s.A)(this,"packetType",void 0),(0,s.A)(this,"signature",void 0),(0,s.A)(this,"version",void 0),(0,s.A)(this,"channels",void 0),(0,s.A)(this,"sampleRate",void 0),(0,s.A)(this,"bitrateMaximum",void 0),(0,s.A)(this,"bitrateNominal",void 0),(0,s.A)(this,"bitrateMinimum",void 0),(0,s.A)(this,"blocksize0",void 0),(0,s.A)(this,"blocksize1",void 0),(0,s.A)(this,"framingFlag",void 0),this.signature=t,this.version=0,this.channels=1,this.sampleRate=48e3,this.bitrateMaximum=0,this.bitrateNominal=0,this.bitrateMinimum=0,this.blocksize0=2048,this.blocksize1=256}read(t){this.packetType=t.readUint8(),this.signature=t.readString(6),this.version=t.readUint32(),this.channels=t.readUint8(),this.sampleRate=t.readInt32(),this.bitrateMaximum=t.readInt32(),this.bitrateNominal=t.readInt32(),this.bitrateMinimum=t.readInt32();const i=255&t.readUint8();this.blocksize0=Math.pow(2,i>>>4),this.blocksize1=Math.pow(2,15&i),this.framingFlag=t.readUint8()}write(t){t.writeUint8(1),t.writeString(this.signature),t.writeUint32(this.version),t.writeUint8(this.channels),t.writeInt32(this.sampleRate),t.writeInt32(this.bitrateMaximum),t.writeInt32(this.bitrateNominal),t.writeInt32(this.bitrateMinimum),t.writeUint8(Math.log2(this.blocksize0)<<4|Math.log2(this.blocksize1)),t.writeUint8(1)}setCodec(t){this.sampleRate=t.sampleRate,this.channels=t.chLayout.nbChannels}}class a extends r.h{constructor(t="vorbis"){super(),(0,s.A)(this,"packetType",void 0),(0,s.A)(this,"framingFlag",void 0),this.signature=t,this.packetType=1,this.framingFlag=1}read(t){this.packetType=t.readUint8(),this.signature=t.readString(6),super.read(t),"vorbis"===this.signature&&(this.framingFlag=t.readUint8())}write(t){t.writeUint8(this.packetType),t.writeString(this.signature),super.write(t),"vorbis"===this.signature&&t.writeUint8(this.framingFlag)}addComment(t){this.comments.addComment(t)}setCodec(t){}}},2187:(t,i,e)=>{e.d(i,{d:()=>a});var s=e(72739),r=e(44328),n=e(77231);function a(t,i,e){let a=BigInt(0);return s.__(t,(t=>{a+=t.codecpar.bitrate*(0,r.k)(i,e,n.i0)/BigInt(8e3)})),a}},52071:(t,i,e)=>{e.d(i,{A:()=>u});var s=e(63939),r=e(9599),n=e(29170),a=e(77231),h=e(44328),o=e(2187),d=e(71517),g=e(9705),l=e(4624);const p="src/avformat/function/seekInBytes.ts";async function u(t,i,e,u,f,c){const m=t.ioReader.getPos(),w=await t.ioReader.fileSize();let b=a.Dh,I=e;i.startTime!==a.Dh?I-=i.startTime:I-=i.firstDTS;const k=(0,h.k)(e,i.timeBase,a.i0);if(k<BigInt(1e4))return l.Yz(`seek pts is earlier then 10s, seek to first packet pos(${u}) directly`,p,64),await t.ioReader.seek(u),m;let S=(0,o.d)(t.streams,I,i.timeBase);const B=w-(0,o.d)(t.streams,BigInt(1e4),a.i0),v=(0,o.d)(t.streams,BigInt(1e4),a.i0);if(S>B&&(S=B),S<u)return await t.ioReader.seek(u),m;const y=(0,d._5)();let P=w,U=BigInt(0);for(;;){if(P-U<v){b=U;break}if(await t.ioReader.seek(S),await c(t),8&t.ioReader.flags)break;const i=t.ioReader.getPos();if(!(await f(t,y)>=0)){b=a.Dh;break}{const t=(0,h.k)(s.f[17](y+8),(0,n.A)(y+72,r.P),a.i0),e=t-k;if(l.Yz(`try to seek to pos: ${S}, got packet pts: ${s.f[17](y+8)}(${t}ms), diff: ${e}ms`,p,102),e<=BigInt(0)&&-e<BigInt(1e4)){b=i;break}e>BigInt(0)?(P=S,S=U+P>>BigInt(1)):(U=S,S=U+P>>BigInt(1))}if(8&t.ioReader.flags)break}return(0,d.Qe)(y),b!==a.Dh?(l.Yz(`finally seek to pos ${b}`,p,133),await t.ioReader.seek(b),await c(t),m):(await t.ioReader.seek(m),8&t.ioReader.flags?BigInt(g.LT):BigInt(g.E$))}},82348:(t,i,e)=>{e.d(i,{A:()=>h});var s=e(134),r=e(4624),n=e(50011);const a="src/common/io/IOReaderSync.ts";class h{constructor(t=1048576,i=!0,e){if((0,s.A)(this,"data",void 0),(0,s.A)(this,"buffer",void 0),(0,s.A)(this,"pointer",void 0),(0,s.A)(this,"endPointer",void 0),(0,s.A)(this,"pos",void 0),(0,s.A)(this,"size",void 0),(0,s.A)(this,"littleEndian",void 0),(0,s.A)(this,"fileSize_",void 0),(0,s.A)(this,"error",void 0),(0,s.A)(this,"onFlush",void 0),(0,s.A)(this,"onSeek",void 0),(0,s.A)(this,"onSize",void 0),(0,s.A)(this,"flags",void 0),this.pos=BigInt(0),this.pointer=0,this.error=0,this.endPointer=0,this.littleEndian=!i,this.flags=0,e&&e.view)this.size=e.length,this.buffer=e,this.data=e.view;else if(e&&!e.byteOffset)this.size=e.length,this.buffer=e,this.data=new DataView(this.buffer.buffer);else{if(e)throw new Error("not support subarray of ArrayBuffer");this.size=Math.max(t,102400),this.buffer=new Uint8Array(this.size),this.data=new DataView(this.buffer.buffer)}}readUint8(){this.remainingLength()<1&&this.flush(1);const t=this.data.getUint8(this.pointer);return this.pointer++,this.pos++,t}peekUint8(){return this.remainingLength()<1&&this.flush(1),this.data.getUint8(this.pointer)}readUint16(){this.remainingLength()<2&&this.flush(2);const t=this.data.getUint16(this.pointer,this.littleEndian);return this.pointer+=2,this.pos+=BigInt(2),t}peekUint16(){return this.remainingLength()<2&&this.flush(2),this.data.getUint16(this.pointer,this.littleEndian)}readUint24(){this.remainingLength()<3&&this.flush(3);const t=this.readUint16(),i=this.readUint8();return this.littleEndian?i<<16|t:t<<8|i}peekUint24(){this.remainingLength()<3&&this.flush(3);const t=this.pointer,i=this.pos,e=this.readUint16(),s=this.readUint8(),r=this.littleEndian?s<<16|e:e<<8|s;return this.pointer=t,this.pos=i,r}readUint32(){this.remainingLength()<4&&this.flush(4);const t=this.data.getUint32(this.pointer,this.littleEndian);return this.pointer+=4,this.pos+=BigInt(4),t}peekUint32(){return this.remainingLength()<4&&this.flush(4),this.data.getUint32(this.pointer,this.littleEndian)}readUint64(){this.remainingLength()<8&&this.flush(8);const t=this.data.getBigUint64(this.pointer,this.littleEndian);return this.pointer+=8,this.pos+=BigInt(8),t}peekUint64(){return this.remainingLength()<8&&this.flush(8),this.data.getBigUint64(this.pointer,this.littleEndian)}readInt8(){this.remainingLength()<1&&this.flush(1);const t=this.data.getInt8(this.pointer);return this.pointer++,this.pos++,t}peekInt8(){return this.remainingLength()<1&&this.flush(1),this.data.getInt8(this.pointer)}readInt16(){this.remainingLength()<2&&this.flush(2);const t=this.data.getInt16(this.pointer,this.littleEndian);return this.pointer+=2,this.pos+=BigInt(2),t}peekInt16(){return this.remainingLength()<2&&this.flush(2),this.data.getInt16(this.pointer,this.littleEndian)}readInt24(){const t=this.readUint24();return 8388608&t?t-16777216:t}peekInt24(){const t=this.peekUint24();return 8388608&t?t-16777216:t}readInt32(){this.remainingLength()<4&&this.flush(4);const t=this.data.getInt32(this.pointer,this.littleEndian);return this.pointer+=4,this.pos+=BigInt(4),t}peekInt32(){return this.remainingLength()<4&&this.flush(4),this.data.getInt32(this.pointer,this.littleEndian)}readInt64(){this.remainingLength()<8&&this.flush(8);const t=this.data.getBigInt64(this.pointer,this.littleEndian);return this.pointer+=8,this.pos+=BigInt(8),t}peekInt64(){return this.remainingLength()<8&&this.flush(8),this.data.getBigInt64(this.pointer,this.littleEndian)}readFloat(){this.remainingLength()<4&&this.flush(4);const t=this.data.getFloat32(this.pointer,this.littleEndian);return this.pointer+=4,this.pos+=BigInt(4),t}peekFloat(){return this.remainingLength()<4&&this.flush(4),this.data.getFloat32(this.pointer,this.littleEndian)}readDouble(){this.remainingLength()<8&&this.flush(8);const t=this.data.getFloat64(this.pointer,this.littleEndian);return this.pointer+=8,this.pos+=BigInt(8),t}peekDouble(){return this.remainingLength()<8&&this.flush(8),this.data.getFloat64(this.pointer,this.littleEndian)}readHex(t=1){let i="";for(let e=0;e<t;e++){const t=this.readUint8().toString(16);i+=1===t.length?"0"+t:t}return i}peekHex(t=1){t>this.size&&(this.error=-1048574,r.h2("peekHex, length too large",a,412)),this.remainingLength()<t&&this.flush(t);const i=this.pointer,e=this.pos;let s="";for(let i=0;i<t;i++){const t=this.readUint8().toString(16);s+=1===t.length?"0"+t:t}return this.pointer=i,this.pos=e,s}readBuffer(t,i){if(!t)return new Uint8Array(0);if(i||(i=new Uint8Array(t)),this.remainingLength()<t){let e=0;if(this.remainingLength()>0){const s=this.remainingLength();i.set(this.buffer.subarray(this.pointer,this.pointer+s),e),e+=s,this.pointer+=s,this.pos+=BigInt(s),t-=s}for(;t>0;){this.flush();const s=Math.min(this.endPointer-this.pointer,t);i.set(this.buffer.subarray(this.pointer,this.pointer+s),e),e+=s,this.pointer+=s,this.pos+=BigInt(s),t-=s}}else i.set(this.buffer.subarray(this.pointer,this.pointer+t),0),this.pointer+=t,this.pos+=BigInt(t);return i}peekBuffer(t,i){return t?(t>this.size&&(this.error=-1048574,r.h2("peekBuffer, length too large",a,505)),this.remainingLength()<t&&this.flush(t),i||(i=new Uint8Array(t)),i.set(this.buffer.subarray(this.pointer,this.pointer+t),0),i):new Uint8Array(0)}readToBuffer(t,i){if(this.remainingLength()<t){let e=0;if(this.remainingLength()>0){const s=this.remainingLength();i.set(this.buffer.subarray(this.pointer,this.pointer+s),e),e+=s,this.pointer+=s,this.pos+=BigInt(s),t-=s}for(;t>0;){try{this.flush()}catch(t){if(-1048576===this.error&&e)return e;throw t}const s=Math.min(this.endPointer-this.pointer,t);i.set(this.buffer.subarray(this.pointer,this.pointer+s),e),e+=s,this.pointer+=s,this.pos+=BigInt(s),t-=s}return e}return i.set(this.buffer.subarray(this.pointer,this.pointer+t),0),this.pointer+=t,this.pos+=BigInt(t),t}readString(t=1){const i=this.readBuffer(t);return n.decode(i)}peekString(t=1){const i=this.peekBuffer(t);return n.decode(i)}readLine(){let t="";for(;;){let i=!1;for(let e=this.pointer;e<this.endPointer;e++)if(10===this.buffer[e]||13===this.buffer[e]){e!==this.pointer&&(t+=this.readString(e-this.pointer)),i=!0;break}if(i)break;t+=this.readString(this.remainingLength()),this.flush()}let i=this.peekUint8();return 10!==i&&13!==i||(this.pointer++,13===i&&(i=this.peekUint8(),10===i&&this.pointer++)),t}peekLine(){this.remainingLength()<this.size&&this.flush();let t="",i=!1;for(let e=this.pointer;e<this.endPointer;e++)if(10===this.buffer[e]||13===this.buffer[e]){t+=this.peekString(e-this.pointer),i=!0;break}return i||(this.error=-1048574,r.h2("peekLine, out of buffer",a,656)),t}getPointer(){return this.pointer}getPos(){return this.pos}skip(t){const i=t;for(;this.remainingLength()<t;)t-=this.remainingLength(),this.pointer=this.endPointer,this.flush();this.remainingLength()>=t&&(this.pointer+=t),this.pos+=BigInt(i)}remainingLength(){return this.endPointer-this.pointer}flush(t=0){if(this.onFlush||(this.error=-1048574,r.h2("IOReader error, flush failed because of no flush callback",a,720)),!(this.size-this.remainingLength()<=0)){if(t=Math.min(t,this.size),this.pointer<this.endPointer?(this.buffer.set(this.buffer.subarray(this.pointer,this.endPointer),0),this.endPointer=this.endPointer-this.pointer):this.endPointer=0,this.pointer=0,t)for(;this.remainingLength()<t;){const t=this.onFlush(this.buffer.subarray(this.endPointer));if(t<0)throw this.error=t,new Error(`IOReader error, flush ${-1048576===t?"ended":"failed"}, ret: ${t}`);this.endPointer+=t}else{const t=this.onFlush(this.buffer.subarray(this.endPointer));if(t<0)throw this.error=t,new Error(`IOReader error, flush ${-1048576===t?"ended":"failed"}, ret: ${t}`);this.endPointer+=t}this.error=0}}seek(t,i=!1,e=!0){if(!i){const i=Number(t-this.pos);if(i<0&&Math.abs(i)<this.pointer)return this.pointer+=i,void(this.pos=t);if(i>0&&this.pointer+i<this.endPointer)return this.pointer+=i,void(this.pos=t);if(0===i)return}this.onSeek||(this.error=-1048574,r.h2("IOReader error, seek failed because of no seek callback",a,790)),this.pointer=this.endPointer=0,this.pos=t;const s=this.onSeek(t);0!==s&&(this.error=s,r.h2("IOReader error, seek failed",a,799)),e&&this.flush()}getBuffer(){return this.buffer}appendBuffer(t){if(this.size-this.endPointer>=t.length)this.buffer.set(t,this.endPointer),this.endPointer+=t.length;else if(this.buffer.set(this.buffer.subarray(this.pointer,this.endPointer),0),this.endPointer=this.endPointer-this.pointer,this.pointer=0,this.size-this.endPointer>=t.length)this.buffer.set(t,this.endPointer),this.endPointer+=t.length;else{const i=Math.min(this.size-this.endPointer,t.length);this.buffer.set(t.subarray(0,i),this.endPointer),this.endPointer+=i,r.R8("IOReader, call appendBuffer but the buffer's size is lagger then the remaining size",a,838)}}reset(){this.pointer=this.endPointer=0,this.pos=BigInt(0),this.error=0}setEndian(t){this.littleEndian=!t}fileSize(){if(this.fileSize_)return this.fileSize_;if(!this.onSize)return r.R8("IOReader error, fileSize failed because of no onSize callback",a,871),BigInt(0);try{this.fileSize_=this.onSize()}catch(t){r.R8(`IOReader error, call fileSize failed: ${t}`,a,878),this.fileSize_=BigInt(0)}return this.fileSize_}getBufferSize(){return this.size}pipe(t,i){if(i)if(this.remainingLength()<i){if(this.remainingLength()>0){const e=this.remainingLength();t.writeBuffer(this.buffer.subarray(this.pointer,this.pointer+e)),this.pointer+=e,this.pos+=BigInt(e),i-=e}for(;i>0;){this.flush();const e=Math.min(this.endPointer-this.pointer,i);t.writeBuffer(this.buffer.subarray(this.pointer,this.pointer+e)),this.pointer+=e,this.pos+=BigInt(e),i-=e}}else t.writeBuffer(this.buffer.subarray(this.pointer,this.pointer+i)),this.pointer+=i,this.pos+=BigInt(i);else{if(this.remainingLength()>0){const i=this.remainingLength();t.writeBuffer(this.buffer.subarray(this.pointer,this.pointer+i)),this.pointer+=i,this.pos+=BigInt(i)}for(;this.onFlush(this.buffer.subarray(0))>0;){const i=this.remainingLength();t.writeBuffer(this.buffer.subarray(this.pointer,this.pointer+i)),this.pointer+=i,this.pos+=BigInt(i)}}}}},35336:(t,i,e)=>{e.d(i,{A:()=>n});var s=e(134),r=e(50011);class n{constructor(t=1048576,i=!0,e){if((0,s.A)(this,"data",void 0),(0,s.A)(this,"buffer",void 0),(0,s.A)(this,"pointer",void 0),(0,s.A)(this,"pos",void 0),(0,s.A)(this,"size",void 0),(0,s.A)(this,"littleEndian",void 0),(0,s.A)(this,"error",void 0),(0,s.A)(this,"onFlush",void 0),(0,s.A)(this,"onSeek",void 0),this.pointer=0,this.pos=BigInt(0),this.size=t,this.littleEndian=!i,this.error=0,e&&e.view)this.size=e.length,this.buffer=e,this.data=e.view;else if(e&&!e.byteOffset)this.size=e.length,this.buffer=e,this.data=new DataView(this.buffer.buffer);else{if(e)throw new Error("not support subarray of ArrayBuffer");this.buffer=new Uint8Array(this.size),this.data=new DataView(this.buffer.buffer)}}writeUint8(t){this.remainingLength()<1&&this.flush(),this.data.setUint8(this.pointer,t),this.pointer++,this.pos++}writeUint16(t){this.remainingLength()<2&&this.flush(),this.data.setUint16(this.pointer,t,this.littleEndian),this.pointer+=2,this.pos+=BigInt(2)}writeUint24(t){this.remainingLength()<3&&this.flush();const i=(16711680&t)>>16,e=(65280&t)>>8,s=255&t;this.littleEndian?(this.writeUint8(s),this.writeUint8(e),this.writeUint8(i)):(this.writeUint8(i),this.writeUint8(e),this.writeUint8(s))}writeUint32(t){this.remainingLength()<4&&this.flush(),this.data.setUint32(this.pointer,t,this.littleEndian),this.pointer+=4,this.pos+=BigInt(4)}writeUint64(t){this.remainingLength()<8&&this.flush(),this.data.setBigUint64(this.pointer,t,this.littleEndian),this.pointer+=8,this.pos+=BigInt(8)}writeInt8(t){this.remainingLength()<1&&this.flush(),this.data.setInt8(this.pointer,t),this.pointer++,this.pos++}writeInt16(t){this.remainingLength()<2&&this.flush(),this.data.setInt16(this.pointer,t,this.littleEndian),this.pointer+=2,this.pos+=BigInt(2)}writeInt24(t){this.writeUint24(t<0?t+16777216:t)}writeInt32(t){this.remainingLength()<4&&this.flush(),this.data.setInt32(this.pointer,t,this.littleEndian),this.pointer+=4,this.pos+=BigInt(4)}writeInt64(t){this.remainingLength()<8&&this.flush(),this.data.setBigInt64(this.pointer,t,this.littleEndian),this.pointer+=8,this.pos+=BigInt(8)}writeFloat(t){this.remainingLength()<4&&this.flush(),this.data.setFloat32(this.pointer,t,this.littleEndian),this.pointer+=4,this.pos+=BigInt(4)}writeDouble(t){this.remainingLength()<8&&this.flush(),this.data.setFloat64(this.pointer,t,this.littleEndian),this.pointer+=8,this.pos+=BigInt(8)}getPointer(){return this.pointer}getPos(){return this.pos}remainingLength(){return this.size-this.pointer}writeBuffer(t){if(!t.length)return;let i=t.length;if(this.remainingLength()<i){let e=0;for(;i>0;){this.flush();const s=Math.min(this.size,i);this.buffer.set(t.subarray(e,e+s),this.pointer),this.pointer+=s,this.pos+=BigInt(s),e+=s,i-=s}}else this.buffer.set(t,this.pointer),this.pointer+=i,this.pos+=BigInt(i)}writeString(t){const i=r.encode(t);return this.writeBuffer(i),i.length}flush(){if(!this.onFlush)throw this.error=-1048574,Error("IOWriter error, flush failed because of no flush callback");if(this.pointer){const t=this.onFlush(this.buffer.subarray(0,this.pointer));if(0!==t)throw this.error=t,Error("IOWriter error, flush failed")}this.pointer=0}flushToPos(t){if(!this.onFlush)throw this.error=-1048574,Error("IOWriter error, flush failed because of no flush callback");if(this.pointer){const i=this.onFlush(this.buffer.subarray(0,this.pointer),t);if(0!==i)throw this.error=i,Error("IOWriter error, flush failed")}this.pointer=0}seek(t){if(!this.onSeek)throw this.error=-1048574,Error("IOWriter error, seek failed because of no seek callback");this.flush();const i=this.onSeek(t);if(0!==i)throw this.error=i,Error("IOWriter error, seek failed");this.pos=t}seekInline(t){const i=this.pointer;this.pointer=Math.max(0,Math.min(this.size,t)),this.pos+=BigInt(this.pointer-i)}skip(t){const i=this.pointer;this.pointer=Math.min(this.size,this.pointer+t),this.pos+=BigInt(this.pointer-i)}back(t){const i=this.pointer;this.pointer=Math.max(0,this.pointer-t),this.pos+=BigInt(this.pointer-i)}getBuffer(){return this.buffer.subarray(0,this.pointer)}setEndian(t){this.littleEndian=!t}reset(){this.pointer=0,this.pos=BigInt(0),this.error=0}getBufferSize(){return this.size}}}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunklibmedia=self.webpackChunklibmedia||[]).push([[217],{50848:(e,t,a)=>{a.d(t,{A:()=>I});var i=a(134),s=a(63939),r=a(50932),n=a(77162),o=a(29170),c=a(64436),h=a(14686),d=a(4624),l=a(9705),f=a(77231),p=a(95832),u=a(44328),g=a(37837),m=a(71517),A=a(67672);class I extends c.A{constructor(...e){super(...e),(0,i.A)(this,"streamMuxConfig",void 0),(0,i.A)(this,"caches",void 0)}init(e,t){return super.init(e,t),this.caches=[],this.streamMuxConfig={profile:f.N_,sampleRate:f.N_,channels:f.N_},0}sendAVPacket(e){let t=0,a=s.f[17](e+16)||s.f[17](e+8);const i=(0,h.s3)(s.f[20](e+24),s.f[15](e+28)).slice();for(;t<i.length;){const e=p.Bq(i.subarray(t));if(A.ai(e))return d.z3("AACADTSParser parse failed","src/avformat/bsf/aac/ADTS2RawFilter.ts",81),l.LR;const c={dts:a,buffer:null,extradata:null,duration:f.N_};c.buffer=i.subarray(t+e.headerLength,t+e.headerLength+e.framePayloadLength),this.streamMuxConfig.profile=e.profile,this.streamMuxConfig.sampleRate=e.sampleRate,this.streamMuxConfig.channels=e.channels;const m=s.f[15](this.inCodecpar+48)!==this.streamMuxConfig.profile||s.f[15](this.inCodecpar+136)!==this.streamMuxConfig.sampleRate||s.f[15](this.inCodecpar+116)!==this.streamMuxConfig.channels,I=(0,u.k)(BigInt(Math.floor(1024*(e.numberOfRawDataBlocksInFrame+1)/this.streamMuxConfig.sampleRate*f.SF)),f.KR,this.inTimeBase);if(c.duration=Number(I),m){r.M[15](this.inCodecpar+48,this.streamMuxConfig.profile),r.M[15](this.inCodecpar+136,this.streamMuxConfig.sampleRate),r.M[15](this.inCodecpar+116,this.streamMuxConfig.channels);const e=(0,p.Ij)((0,o.A)(this.inCodecpar,n.A));s.f[20](this.inCodecpar+12)&&(0,g.Eb)(s.f[20](this.inCodecpar+12)),r.M[20](this.inCodecpar+12,(0,g.sY)(e.length)),(0,h.lW)(s.f[20](this.inCodecpar+12),e.length,e),r.M[15](this.inCodecpar+16,e.length),c.extradata=e}this.caches.push(c),t+=e.aacFrameLength,a+=I}return 0}receiveAVPacket(e){if(this.caches.length){(0,m.Up)(e);const t=this.caches.shift(),a=(0,g.sY)(t.buffer.length);if((0,h.lW)(a,t.buffer.length,t.buffer),(0,m.NX)(e,a,t.buffer.length),r.M[17](e+16,t.dts),r.M[17](e+8,t.dts),r.M[17](e+48,BigInt(Math.floor(t.duration))),r.M[15](e+36,1|s.f[15](e+36)),t.extradata){const a=(0,g.sY)(t.extradata.length);(0,h.lW)(a,t.extradata.length,t.extradata),(0,m.Ow)(e,1,a,t.extradata.length)}return 0}return l.LT}reset(){return 0}}},85947:(e,t,a)=>{a.d(t,{A:()=>s});var i=a(134);class s{constructor(){(0,i.A)(this,"type",-1),(0,i.A)(this,"onStreamAdd",void 0)}async destroy(e){}}},51660:(e,t,a)=>{a.d(t,{A:()=>o});var i=a(77231),s=a(4624),r=a(9705);const n="src/avformat/formats/mpegts/function/parsePES.ts";function o(e){const t=e.data,a=t[3],o=t[4]<<8|t[5];let c=0,h=0,d=0;if(188!==a&&190!==a&&191!==a&&240!==a&&241!==a&&255!==a&&242!==a&&248!==a){let a=i.Dh,l=i.Dh;for(;;){if(6+h>=t.length)return;if(d=t[6+h],255!==d)break;h++}if(64==(192&d)&&(h+=2,d=t[6+h]),32==(224&d))c+=5,a=a=BigInt(Math.floor(536870912*(14&t[6+h])+4194304*(255&t[7+h])+16384*(254&t[8+h])+128*(255&t[9+h])+(254&t[10+h])/2)),16&d?(l=BigInt(Math.floor(536870912*(14&t[11+h])+4194304*(255&t[12+h])+16384*(254&t[13+h])+128*(255&t[14+h])+(254&t[15+h])/2)),c+=5):l=a;else if(128==(192&d)){const e=(192&t[7+h])>>>6;c=3+t[8+h],2!==e&&3!==e||(a=BigInt(Math.floor(536870912*(14&t[9+h])+4194304*(255&t[10+h])+16384*(254&t[11+h])+128*(255&t[12+h])+(254&t[13+h])/2)),l=3===e?BigInt(Math.floor(536870912*(14&t[14+h])+4194304*(255&t[15+h])+16384*(254&t[16+h])+128*(255&t[17+h])+(254&t[18+h])/2)):a)}else{if(15!==d)return s.z3("invalid data",n,121),r.LR;c=1}e.dts=l,e.pts=a;const f=6+h+c;let p=0;if(0!==o){if(o<h+c)return void s.z3("Malformed PES: PES_packet_length < 3 + PES_header_data_length",n,133);p=o-(h+c)}else p=t.byteLength-f;e.payload=t.subarray(f,f+p)}else if((188===a||191===a||240===a||241===a||255===a||242===a||248===a)&&6===e.streamId){const a=6;let i=0;i=0!==o?o:t.byteLength-a,e.payload=t.subarray(a,a+i)}return 0}},6403:(e,t,a)=>{a.d(t,{Cd:()=>d,I4:()=>f,am:()=>c,kJ:()=>l,pi:()=>h,xf:()=>p});var i=a(134),s=a(80662),r=a.n(s),n=a(77231);class o{constructor(){(0,i.A)(this,"discontinuityIndicator",0),(0,i.A)(this,"randomAccessIndicator",0),(0,i.A)(this,"elementaryStreamPriorityIndicator",0),(0,i.A)(this,"pcrFlag",0),(0,i.A)(this,"opcrFlag",0),(0,i.A)(this,"splicingPointFlag",0),(0,i.A)(this,"transportPrivateDataFlag",0),(0,i.A)(this,"adaptationFieldExtensionFlag",0),(0,i.A)(this,"pcr",BigInt(0)),(0,i.A)(this,"opcr",BigInt(0)),(0,i.A)(this,"spliceCountDown",0),(0,i.A)(this,"transportPrivateData",null),(0,i.A)(this,"extension",null)}}class c{constructor(){(0,i.A)(this,"pos",n.Dh),(0,i.A)(this,"payloadUnitStartIndicator",0),(0,i.A)(this,"transportPriority",0),(0,i.A)(this,"pid",n.N_),(0,i.A)(this,"adaptationFieldControl",0),(0,i.A)(this,"continuityCounter",0),(0,i.A)(this,"transportScramblingControl",0),(0,i.A)(this,"adaptationFieldInfo",new o),(0,i.A)(this,"payload",null)}}class h{constructor(){(0,i.A)(this,"slices",[]),(0,i.A)(this,"totalLength",0),(0,i.A)(this,"expectedLength",n.N_),(0,i.A)(this,"randomAccessIndicator",0),(0,i.A)(this,"pid",n.N_),(0,i.A)(this,"streamType",0),(0,i.A)(this,"pos",n.Dh)}}class d{constructor(){(0,i.A)(this,"versionNumber",0),(0,i.A)(this,"networkPid",n.N_),(0,i.A)(this,"program2PmtPid",new(r()))}}class l{constructor(){(0,i.A)(this,"tag",void 0),(0,i.A)(this,"buffer",void 0)}}class f{constructor(){(0,i.A)(this,"versionNumber",0),(0,i.A)(this,"programNumber",0),(0,i.A)(this,"pcrPid",0),(0,i.A)(this,"pid2StreamType",new(r())),(0,i.A)(this,"pid2ESDescriptor",new(r()))}}class p{constructor(){(0,i.A)(this,"pid",n.N_),(0,i.A)(this,"streamType",0),(0,i.A)(this,"streamId",n.N_),(0,i.A)(this,"dts",n.Dh),(0,i.A)(this,"pts",n.Dh),(0,i.A)(this,"pos",n.Dh),(0,i.A)(this,"payload",null),(0,i.A)(this,"data",null),(0,i.A)(this,"randomAccessIndicator",0)}}},2187:(e,t,a)=>{a.d(t,{d:()=>n});var i=a(72739),s=a(44328),r=a(77231);function n(e,t,a){let n=BigInt(0);return i.__(e,(e=>{n+=e.codecpar.bitrate*(0,s.k)(t,a,r.i0)/BigInt(8e3)})),n}},52071:(e,t,a)=>{a.d(t,{A:()=>p});var i=a(63939),s=a(9599),r=a(29170),n=a(77231),o=a(44328),c=a(2187),h=a(71517),d=a(9705),l=a(4624);const f="src/avformat/function/seekInBytes.ts";async function p(e,t,a,p,u,g){const m=e.ioReader.getPos(),A=await e.ioReader.fileSize();let I=n.Dh,b=a;t.startTime!==n.Dh?b-=t.startTime:b-=t.firstDTS;const k=(0,o.k)(a,t.timeBase,n.i0);if(k<BigInt(1e4))return l.Yz(`seek pts is earlier then 10s, seek to first packet pos(${p}) directly`,f,64),await e.ioReader.seek(p),m;let y=(0,c.d)(e.streams,b,t.timeBase);const C=A-(0,c.d)(e.streams,BigInt(1e4),n.i0),x=(0,c.d)(e.streams,BigInt(1e4),n.i0);if(y>C&&(y=C),y<p)return await e.ioReader.seek(p),m;const B=(0,h._5)();let w=A,R=BigInt(0);for(;;){if(w-R<x){I=R;break}if(await e.ioReader.seek(y),await g(e),8&e.ioReader.flags)break;const t=e.ioReader.getPos();if(!(await u(e,B)>=0)){I=n.Dh;break}{const e=(0,o.k)(i.f[17](B+8),(0,r.A)(B+72,s.P),n.i0),a=e-k;if(l.Yz(`try to seek to pos: ${y}, got packet pts: ${i.f[17](B+8)}(${e}ms), diff: ${a}ms`,f,102),a<=BigInt(0)&&-a<BigInt(1e4)){I=t;break}a>BigInt(0)?(w=y,y=R+w>>BigInt(1)):(R=y,y=R+w>>BigInt(1))}if(8&e.ioReader.flags)break}return(0,h.Qe)(B),I!==n.Dh?(l.Yz(`finally seek to pos ${I}`,f,133),await e.ioReader.seek(I),await g(e),m):(await e.ioReader.seek(m),8&e.ioReader.flags?BigInt(d.LT):BigInt(d.E$))}},43290:(e,t,a)=>{a.d(t,{R:()=>h,u:()=>c});var i=a(37246),s=a(95073);const r=[1,2,2,2,2,3,3,4,4,5,6,6,6,7,8,8],n=[0,8e3,16e3,32e3,0,0,11025,22050,44100,0,0,12e3,24e3,48e3,96e3,192e3],o=[32e3,56e3,64e3,96e3,112e3,128e3,192e3,224e3,256e3,32e4,384e3,448e3,512e3,576e3,64e4,768e3,96e4,1024e3,1152e3,128e4,1344e3,1408e3,1411200,1472e3,1536e3,192e4,2048e3,3072e3,384e4,0,0,0],c=32;function h(e){const t=new i.A(e.length);t.appendBuffer(e);const a={syncWord:0,frameType:0,deficitSamples:0,crcFlag:0,sampleBlock:0,frameSize:0,channelIndex:0,sampleRateIndex:0,bitrateIndex:0,channels:0,sampleRate:0,bitrate:0};return a.syncWord=t.readU(32),2147385345!==a.syncWord&&4269736320!==a.syncWord?-1:(a.frameType=t.readU1(),a.deficitSamples=t.readU(5)+1,a.crcFlag=t.readU1(),a.sampleBlock=t.readU(7)+1,a.frameSize=(0,s.A)(t.readU(14)+1,4),a.channelIndex=t.readU(6),a.sampleRateIndex=t.readU(4),a.bitrateIndex=t.readU(5),a.channels=r[a.channelIndex],a.sampleRate=n[a.sampleRateIndex],a.bitrate=o[a.bitrateIndex],a)}},22576:(e,t,a)=>{a.d(t,{Ij:()=>h,XC:()=>c,kt:()=>o});var i=a(31865),s=a(729),r=a(44328);const n=[480,960,1920,2880,480,960,1920,2880,480,960,1920,2880,480,960,480,960,120,240,480,960,120,240,480,960,120,240,480,960,120,240,480,960];function o(e){let t=0,a=0,i=0;if(e.length<1)return 0;switch(t=e[0],a=n[t>>3],3&t){case 0:i=1;break;case 1:case 2:i=2;break;case 3:if(e.length<2)return 0;i=63&e[1]}return i*a}function c(e,t){if(!t&&e.sideData[1]&&(t=e.sideData[1]),t&&t.length>=19){const a=new i.A(t,!1);a.skip(9),e.codecpar.chLayout.nbChannels=a.readUint8(),e.codecpar.initialPadding=a.readUint16(),e.codecpar.sampleRate=a.readUint32(),e.codecpar.seekPreroll=Number((0,r.k)(BigInt(80),{den:1e3,num:1},{den:48e3,num:1}))}}function h(e){const t=new Uint8Array(19),a=new s.A(t,!1);return a.writeString("OpusHead"),a.writeUint8(1),a.writeUint8(e.chLayout.nbChannels),a.writeUint16(e.initialPadding),a.writeUint32(e.sampleRate),t}}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunklibmedia=self.webpackChunklibmedia||[]).push([[299],{85947:(t,e,s)=>{s.d(e,{A:()=>h});var i=s(134);class h{constructor(){(0,i.A)(this,"type",-1),(0,i.A)(this,"onStreamAdd",void 0)}async destroy(t){}}},5299:(t,e,s)=>{s.r(e),s.d(e,{default:()=>y});var i=s(134),h=s(63939),r=s(50932),n=s(9705),a=s(85947),u=s(14686),o=s(37837),d=s(71517),c=s(95335),p=s(92647),l=s(62815),f=s(77231),b=s(37246),g=s(23991),m=s(37805);const A={framerate:{num:30,den:1}};class y extends a.A{constructor(t={}){super(),(0,i.A)(this,"type",11),(0,i.A)(this,"options",void 0),(0,i.A)(this,"currentDts",void 0),(0,i.A)(this,"currentPts",void 0),(0,i.A)(this,"step",void 0),(0,i.A)(this,"slices",void 0),(0,i.A)(this,"naluPos",void 0),(0,i.A)(this,"queue",void 0),(0,i.A)(this,"bitReader",void 0),(0,i.A)(this,"sliceType",void 0),(0,i.A)(this,"poc",void 0),(0,i.A)(this,"picOrderCntMsb",void 0),(0,i.A)(this,"lastPicOrderCntLsb",void 0),(0,i.A)(this,"frameNumberOffset",void 0),(0,i.A)(this,"prevFrameNumber",void 0),(0,i.A)(this,"sps",void 0),(0,i.A)(this,"naluReader",void 0),this.options=c.X$({},A,t)}init(t){t.ioReader&&t.ioReader.setEndian(!1),this.slices=[],this.queue=[],this.bitReader=new b.A(50),this.naluReader=new m.A}async destroy(t){if(this.queue.length){for(let t=0;t<this.queue.length;t++)(0,d.Qe)(this.queue[t].avpacket);this.queue.length=0}}isFrameNalu(t){const e=31&t[1===t[2]?3:4];return 1===e||5===e||2===e||3===e||4===e}async readNaluFrame(t){let e=!1;const s=this.slices;for(this.slices=[],s.length&&(e=this.isFrameNalu(s[0]));;){const i=await this.naluReader.read(t.ioReader);if(!i)return s;const h=31&i[1===i[2]?3:4];if(this.isFrameNalu(i))if(e){if(this.bitReader.reset(),this.bitReader.appendBuffer(i.subarray(1===i[2]?4:5,10)),0===g.xb(this.bitReader))return this.slices.push(i),s;s.push(i)}else s.push(i),e=!0;else{if(e&&(9===h||7===h||8===h))return this.slices.push(i),s;s.push(i)}}}async readHeader(t){const e=t.createStream();for(e.codecpar.codecType=0,e.codecpar.codecId=27,e.timeBase.den=f.SF,e.timeBase.num=1,e.codecpar.bitFormat=2,this.currentDts=BigInt(0),this.currentPts=BigInt(0),this.naluPos=BigInt(0),this.poc=BigInt(0),this.picOrderCntMsb=BigInt(0),this.lastPicOrderCntLsb=0,this.frameNumberOffset=BigInt(0),this.prevFrameNumber=0,this.step=BigInt(Math.floor(f.SF/this.options.framerate.num*this.options.framerate.den));;){const s=await this.readNaluFrame(t);if(!s.length)return-1048576;const i=(0,p.A)(Uint8Array,s),n=l.S1(i);if(n){e.codecpar.extradata=(0,o.sY)(n.length),(0,u.lW)(e.codecpar.extradata,n.length,n),e.codecpar.extradataSize=n.length,l.XC(e,n);const{spss:s}=l.MB(n);this.sps=l.wf(s[0]);const a=(0,d._5)(),c=(0,o.sY)(i.length);(0,u.lW)(c,i.length,i),(0,d.NX)(a,c,i.length),r.M[17](a+56,this.naluPos),this.naluPos+=BigInt(Math.floor(i.length)),r.M[17](a+16,this.currentDts),this.currentDts+=this.step,r.M[17](a+8,this.currentPts),this.currentPts+=this.step,r.M[15](a+32,e.index),r.M[15](a+36,1|h.f[15](a+36)),r.M[15](a+72,e.timeBase.num),r.M[15](a+76,e.timeBase.den),r.M[15](a+80,2),t.interval.packetBuffer.push(a);break}this.naluPos+=BigInt(Math.floor(i.length))}return 0}async readAVPacket_(t,e){const s=t.getStreamByMediaType(0),i=await this.readNaluFrame(t);if(!i.length)return-1048576;this.sliceType=-1;let n=!1,a=!0;i.forEach((t=>{const e=1===t[2]?t[3]:t[4],s=31&e,i=e>>>5&3;if(7===s&&(this.sps=l.wf(t)),5===s&&(n=!0),(1===s||2===s||3===s||4===s||5===s)&&a){a=!1,this.bitReader.reset(),this.bitReader.appendBuffer(t.subarray(1===t[2]?4:5,50)),g.xb(this.bitReader),this.sliceType=g.xb(this.bitReader),g.xb(this.bitReader);const e=this.bitReader.readU(this.sps.log2MaxFrameNumMinus4+4);let h=0,r=0;if(this.sps.frameMbsOnlyFlag||(h=this.bitReader.readU1()),h&&(r=this.bitReader.readU1()),5===s&&g.xb(this.bitReader),0===this.sps.picOrderCntType){const t=this.bitReader.readU(this.sps.log2MaxPicOrderCntLsbMinus4+4),e=(1<<this.sps.log2MaxPicOrderCntLsbMinus4+4)-1;Math.abs(t-this.lastPicOrderCntLsb)>e>>>1&&(this.picOrderCntMsb+=BigInt(Math.floor(e))),this.poc=this.picOrderCntMsb+BigInt(Math.floor(t)),this.lastPicOrderCntLsb=t}else if(1===this.sps.picOrderCntType){const t=[0,0];if(this.sps.deltaPicOrderAlwaysZeroFlag||(t[0]=g.$x(this.bitReader),r&&(t[1]=g.$x(this.bitReader))),e<this.prevFrameNumber){const t=(1<<this.sps.log2MaxFrameNumMinus4+4)-1;this.frameNumberOffset+=BigInt(Math.floor(t))}let s=this.frameNumberOffset+BigInt(Math.floor(e));0===i&&s>0&&s--,this.poc=BigInt(2)*s+BigInt(0|t[0]),h&&r&&(this.poc+=BigInt(0|t[1])),this.prevFrameNumber=e}else this.poc++}}));const c=(0,p.A)(Uint8Array,i),f=(0,o.sY)(c.length);return(0,u.lW)(f,c.length,c),(0,d.NX)(e,f,c.length),r.M[17](e+56,this.naluPos),this.naluPos+=BigInt(Math.floor(c.length)),r.M[17](e+16,this.currentDts),this.currentDts+=this.step,r.M[15](e+32,s.index),r.M[15](e+72,s.timeBase.num),r.M[15](e+76,s.timeBase.den),r.M[15](e+80,2),n&&r.M[15](e+36,1|h.f[15](e+36)),0}async readAVPacket(t,e){let s=this.queue.length;const i=()=>{this.queue.length>1&&this.queue.sort(((t,e)=>t.poc-e.poc>BigInt(0)?1:-1));for(let t=0;t<this.queue.length;t++)r.M[17](this.queue[t].avpacket+8,this.currentPts),this.currentPts+=this.step;this.queue.length>1&&this.queue.sort(((t,e)=>h.f[17](t.avpacket+16)-h.f[17](e.avpacket+16)>BigInt(0)?1:-1)),this.queue.length&&((0,d.rN)(e,this.queue[0].avpacket),(0,d.Qe)(this.queue[0].avpacket));for(let e=1;e<this.queue.length;e++)t.interval.packetBuffer.push(this.queue[e].avpacket);this.queue.length=0};for(;;){const e=(0,d._5)();let r=await this.readAVPacket_(t,e);if(r<0)return(0,d.Qe)(e),this.queue.length?(i(),0):r;if(1&h.f[15](e+36)||0===this.sliceType||2===this.sliceType||5===this.sliceType||7===this.sliceType){if(1===s||1&h.f[15](e+36)&&this.queue.length)return i(),this.queue.push({avpacket:e,poc:this.poc}),0;this.queue.push({avpacket:e,poc:this.poc}),s++}else this.queue.push({avpacket:e,poc:this.poc})}}async seek(t,e,s,i){return BigInt(n.E$)}getAnalyzeStreamsCount(){return 1}}},37805:(t,e,s)=>{s.d(e,{A:()=>n});var i=s(134),h=s(60264),r=s(92647);class n{constructor(){(0,i.A)(this,"buffer",void 0),(0,i.A)(this,"pos",void 0),(0,i.A)(this,"end",void 0),(0,i.A)(this,"ended",void 0),this.buffer=new Uint8Array(102400),this.pos=0,this.end=0,this.ended=!1}async read(t){if(this.ended&&this.pos>=this.end)return;const e=[];if(this.pos<this.end-4){let t=h.Ky(this.buffer.subarray(this.pos,this.end-4),3);if(t.offset>-1){const e=this.buffer.slice(this.pos,this.pos+t.offset);return this.pos+=t.offset,e}e.push(this.buffer.slice(this.pos,this.end-4)),this.buffer.copyWithin(0,this.end-4,this.end),this.pos=0,this.end=4}for(;;){if(!this.ended&&this.end<this.buffer.length)try{const e=await t.readToBuffer(this.buffer.length-this.end,this.buffer.subarray(this.end));this.end+=e}catch(t){if(this.ended=!0,this.pos>=this.end)return e.length?(0,r.A)(Uint8Array,e):null}let s=h.Ky(this.buffer.subarray(this.pos,this.end-4),e.length?0:3);if(s.offset>-1)return e.push(this.buffer.slice(this.pos,this.pos+s.offset)),this.pos+=s.offset,(0,r.A)(Uint8Array,e);if(this.ended)return e.push(this.buffer.slice(this.pos,this.end)),this.pos=this.end=0,(0,r.A)(Uint8Array,e);e.push(this.buffer.slice(this.pos,this.end-4)),this.buffer.copyWithin(0,this.end-4,this.end),this.pos=0,this.end=4}}reset(){this.pos=0,this.end=0,this.ended=!1}}}}]);
|