@stormstreaming/stormstreamer 0.9.0-beta.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.
Files changed (81) hide show
  1. package/README.md +31 -0
  2. package/dist/amd/index.js +3448 -0
  3. package/dist/cjs/index.js +14 -0
  4. package/dist/esm/index.js +14 -0
  5. package/dist/iife/index.js +14 -0
  6. package/dist/types/StormStreamer.d.ts +75 -0
  7. package/dist/types/config/AudioData.d.ts +16 -0
  8. package/dist/types/config/ConfigManager.d.ts +18 -0
  9. package/dist/types/config/DebugData.d.ts +33 -0
  10. package/dist/types/config/IConfig.d.ts +4 -0
  11. package/dist/types/config/SettingsData.d.ts +37 -0
  12. package/dist/types/config/StorageData.d.ts +16 -0
  13. package/dist/types/config/StreamData.d.ts +25 -0
  14. package/dist/types/config/VideoData.d.ts +40 -0
  15. package/dist/types/config/enum/LogType.d.ts +7 -0
  16. package/dist/types/config/enum/ProtocolType.d.ts +7 -0
  17. package/dist/types/config/enum/ScalingType.d.ts +6 -0
  18. package/dist/types/config/enum/SecurityType.d.ts +4 -0
  19. package/dist/types/config/enum/SizeCalculationType.d.ts +5 -0
  20. package/dist/types/events/EventDispatcher.d.ts +15 -0
  21. package/dist/types/events/StormStreamerEvent.d.ts +128 -0
  22. package/dist/types/events/StormStreamerListener.d.ts +2 -0
  23. package/dist/types/index.amd.d.ts +10 -0
  24. package/dist/types/index.cjs.d.ts +10 -0
  25. package/dist/types/index.esm.d.ts +10 -0
  26. package/dist/types/index.iife.d.ts +3 -0
  27. package/dist/types/index.umd.d.ts +10 -0
  28. package/dist/types/logger/Logger.d.ts +25 -0
  29. package/dist/types/model/AbstractSourceItem.d.ts +9 -0
  30. package/dist/types/model/ClientUser.d.ts +6 -0
  31. package/dist/types/model/GatewayServerItem.d.ts +17 -0
  32. package/dist/types/model/IServerItem.d.ts +9 -0
  33. package/dist/types/model/ISourceItem.d.ts +8 -0
  34. package/dist/types/model/IStreamItem.d.ts +8 -0
  35. package/dist/types/model/QualityItem.d.ts +17 -0
  36. package/dist/types/model/RTMPSourceItem.d.ts +17 -0
  37. package/dist/types/model/RTSPSourceItem.d.ts +17 -0
  38. package/dist/types/model/StormMetaDataItem.d.ts +44 -0
  39. package/dist/types/model/StormServerItem.d.ts +17 -0
  40. package/dist/types/model/StormSourceItem.d.ts +11 -0
  41. package/dist/types/model/StreamInfo.d.ts +17 -0
  42. package/dist/types/network/AbstractSocket.d.ts +26 -0
  43. package/dist/types/network/NetworkController.d.ts +20 -0
  44. package/dist/types/network/StormPacket.d.ts +93 -0
  45. package/dist/types/network/WowzaConnection.d.ts +22 -0
  46. package/dist/types/playback/CooldownMonitor.d.ts +9 -0
  47. package/dist/types/playback/PlaybackController.d.ts +54 -0
  48. package/dist/types/playback/SoundMeter.d.ts +17 -0
  49. package/dist/types/playback/enum/ConnectionState.d.ts +8 -0
  50. package/dist/types/playback/enum/InputType.d.ts +4 -0
  51. package/dist/types/playback/enum/PublishState.d.ts +10 -0
  52. package/dist/types/playback/enum/TaskType.d.ts +7 -0
  53. package/dist/types/playback/model/InputDevice.d.ts +14 -0
  54. package/dist/types/playback/model/InputDeviceList.d.ts +9 -0
  55. package/dist/types/playback/player/AbstractPlayer.d.ts +11 -0
  56. package/dist/types/playback/player/IPlayer.d.ts +3 -0
  57. package/dist/types/playback/task/IPlaybackTask.d.ts +4 -0
  58. package/dist/types/playback/task/PauseTask.d.ts +8 -0
  59. package/dist/types/playback/task/PlayTask.d.ts +8 -0
  60. package/dist/types/playback/task/SubscribeTask.d.ts +8 -0
  61. package/dist/types/playback/task/UnsubscribeTask.d.ts +6 -0
  62. package/dist/types/stage/ScreenElement.d.ts +19 -0
  63. package/dist/types/stage/StageController.d.ts +46 -0
  64. package/dist/types/storage/StorageManager.d.ts +10 -0
  65. package/dist/types/types/AudioConfig.d.ts +4 -0
  66. package/dist/types/types/DebugConfig.d.ts +15 -0
  67. package/dist/types/types/ServerListConfig.d.ts +6 -0
  68. package/dist/types/types/SettingsConfig.d.ts +15 -0
  69. package/dist/types/types/SourceListConfig.d.ts +9 -0
  70. package/dist/types/types/StorageConfig.d.ts +4 -0
  71. package/dist/types/types/StreamConfig.d.ts +5 -0
  72. package/dist/types/types/StreamInfoConfig.d.ts +6 -0
  73. package/dist/types/types/StreamerConfig.d.ts +7 -0
  74. package/dist/types/types/VideoConfig.d.ts +9 -0
  75. package/dist/types/utilities/DomUtilities.d.ts +6 -0
  76. package/dist/types/utilities/MungeData.d.ts +18 -0
  77. package/dist/types/utilities/MungeSDP.d.ts +16 -0
  78. package/dist/types/utilities/NumberUtilities.d.ts +9 -0
  79. package/dist/types/utilities/UserCapabilities.d.ts +19 -0
  80. package/dist/umd/index.js +14 -0
  81. package/package.json +102 -0
@@ -0,0 +1,128 @@
1
+ import { ConfigManager } from "../config/ConfigManager";
2
+ import { PublishState } from "../playback/enum/PublishState";
3
+ import { StormStreamer } from "../StormStreamer";
4
+ import { InputDevice } from "../playback/model/InputDevice";
5
+ export interface StormStreamerEvent {
6
+ "streamerReady": {
7
+ ref: StormStreamer;
8
+ };
9
+ "serverConnectionInitiate": {
10
+ ref: StormStreamer;
11
+ serverURL: string;
12
+ };
13
+ "serverConnect": {
14
+ ref: StormStreamer;
15
+ serverURL: string;
16
+ sequenceNum: number;
17
+ };
18
+ "serverDisconnect": {
19
+ ref: StormStreamer;
20
+ serverURL: string;
21
+ restart: boolean;
22
+ sequenceNum: number;
23
+ };
24
+ "serverConnectionError": {
25
+ ref: StormStreamer;
26
+ serverURL: string;
27
+ restart: boolean;
28
+ sequenceNum: number;
29
+ };
30
+ "allConnectionsFailed": {
31
+ ref: StormStreamer;
32
+ mode: string;
33
+ };
34
+ "interactionRequired": {
35
+ ref: StormStreamer;
36
+ mode: string;
37
+ };
38
+ "compatibilityError": {
39
+ ref: StormStreamer;
40
+ message: string;
41
+ };
42
+ "playbackForcePause": {
43
+ ref: StormStreamer;
44
+ };
45
+ "playbackForceMute": {
46
+ ref: StormStreamer;
47
+ };
48
+ "volumeChange": {
49
+ ref: StormStreamer;
50
+ volume: number;
51
+ muted: boolean;
52
+ invokedBy: "user" | "browser";
53
+ };
54
+ "videoElementCreate": {
55
+ ref: StormStreamer;
56
+ videoElement: HTMLVideoElement;
57
+ };
58
+ "containerChange": {
59
+ ref: StormStreamer;
60
+ container: HTMLElement | null;
61
+ };
62
+ "resizeUpdate": {
63
+ ref: StormStreamer;
64
+ width: number;
65
+ height: number;
66
+ };
67
+ "videoUnmuted": {
68
+ ref: StormStreamer;
69
+ };
70
+ "SSLError": {
71
+ ref: StormStreamer;
72
+ mode: string;
73
+ };
74
+ "incompatibleProtocol": {
75
+ ref: StormStreamer;
76
+ clientProtocolVer: number;
77
+ serverProtocolVersion: number;
78
+ };
79
+ "authorizationError": {
80
+ ref: StormStreamer;
81
+ };
82
+ "authorizationComplete": {
83
+ ref: StormStreamer;
84
+ };
85
+ "invalidLicense": {
86
+ ref: StormStreamer;
87
+ };
88
+ "streamConfigChange": {
89
+ ref: StormStreamer;
90
+ newConfig: ConfigManager;
91
+ };
92
+ "fullScreenEnter": {
93
+ ref: StormStreamer;
94
+ };
95
+ "fullScreenExit": {
96
+ ref: StormStreamer;
97
+ };
98
+ "noCameraFound": {
99
+ ref: StormStreamer;
100
+ };
101
+ "publishStateChange": {
102
+ ref: StormStreamer;
103
+ state: PublishState;
104
+ };
105
+ "noMicrophoneFound": {
106
+ ref: StormStreamer;
107
+ };
108
+ "deviceListUpdate": {
109
+ ref: StormStreamer;
110
+ cameraList: InputDevice[];
111
+ microphoneList: InputDevice[];
112
+ };
113
+ "inputDeviceError": {
114
+ ref: StormStreamer;
115
+ };
116
+ "inputDeviceDenied": {
117
+ ref: StormStreamer;
118
+ };
119
+ "streamKeyInUse": {
120
+ ref: StormStreamer;
121
+ streamKey: string | null;
122
+ };
123
+ "soundMeter": {
124
+ ref: StormStreamer;
125
+ high: number;
126
+ low: number;
127
+ };
128
+ }
@@ -0,0 +1,2 @@
1
+ import { StormStreamerEvent } from "./StormStreamerEvent";
2
+ export type StormStreamerListener<K extends keyof StormStreamerEvent> = [K, (ev: StormStreamerEvent[K]) => void, boolean];
@@ -0,0 +1,10 @@
1
+ import { StormStreamer } from "./StormStreamer";
2
+ import { StreamerConfig } from "./types/StreamerConfig";
3
+ export { StormStreamer } from "./StormStreamer";
4
+ export { PublishState } from "./playback/enum/PublishState";
5
+ export type { StreamerConfig } from "./types/StreamerConfig";
6
+ export type { StormStreamerListener } from "./events/StormStreamerListener";
7
+ export type { StormStreamerEvent } from "./events/StormStreamerEvent";
8
+ export type { ScalingType } from "./config/enum/ScalingType";
9
+ export type { Logger } from "./logger/Logger";
10
+ export declare function create(config: StreamerConfig): StormStreamer;
@@ -0,0 +1,10 @@
1
+ import { StormStreamer } from "./StormStreamer";
2
+ import { StreamerConfig } from "./types/StreamerConfig";
3
+ export { StormStreamer } from "./StormStreamer";
4
+ export { PublishState } from "./playback/enum/PublishState";
5
+ export type { StreamerConfig } from "./types/StreamerConfig";
6
+ export type { StormStreamerListener } from "./events/StormStreamerListener";
7
+ export type { StormStreamerEvent } from "./events/StormStreamerEvent";
8
+ export type { ScalingType } from "./config/enum/ScalingType";
9
+ export type { Logger } from "./logger/Logger";
10
+ export declare function create(config: StreamerConfig): StormStreamer;
@@ -0,0 +1,10 @@
1
+ import { StormStreamer } from "./StormStreamer";
2
+ import { StreamerConfig } from "./types/StreamerConfig";
3
+ export { StormStreamer } from "./StormStreamer";
4
+ export { PublishState } from "./playback/enum/PublishState";
5
+ export type { StreamerConfig } from "./types/StreamerConfig";
6
+ export type { StormStreamerListener } from "./events/StormStreamerListener";
7
+ export type { StormStreamerEvent } from "./events/StormStreamerEvent";
8
+ export type { ScalingType } from "./config/enum/ScalingType";
9
+ export type { Logger } from "./logger/Logger";
10
+ export declare function create(config: StreamerConfig): StormStreamer;
@@ -0,0 +1,3 @@
1
+ import { StormStreamer } from "./StormStreamer";
2
+ import { StreamerConfig } from "./types/StreamerConfig";
3
+ export default function (config: StreamerConfig): StormStreamer;
@@ -0,0 +1,10 @@
1
+ import { StormStreamer } from "./StormStreamer";
2
+ import { StreamerConfig } from "./types/StreamerConfig";
3
+ export { StormStreamer } from "./StormStreamer";
4
+ export { PublishState } from "./playback/enum/PublishState";
5
+ export type { StreamerConfig } from "./types/StreamerConfig";
6
+ export type { StormStreamerListener } from "./events/StormStreamerListener";
7
+ export type { StormStreamerEvent } from "./events/StormStreamerEvent";
8
+ export type { ScalingType } from "./config/enum/ScalingType";
9
+ export type { Logger } from "./logger/Logger";
10
+ export declare function create(config: StreamerConfig): StormStreamer;
@@ -0,0 +1,25 @@
1
+ import { DebugData } from "../config/DebugData";
2
+ import { StormStreamer } from "../StormStreamer";
3
+ export declare class Logger {
4
+ private static INFO_COLOR;
5
+ private static WARNING_COLOR;
6
+ private static ERROR_COLOR;
7
+ private static SUCCESS_COLOR;
8
+ private static TRACE_COLOR;
9
+ private _debugConfig;
10
+ private _stormStreamer;
11
+ private colorOrder;
12
+ private _monoColor;
13
+ private _logMemory;
14
+ private _streamerInstanceID;
15
+ constructor(config: DebugData, stormStreamer: StormStreamer);
16
+ info(objectName: any, message: string): void;
17
+ warning(objectName: any, message: string): void;
18
+ error(objectName: any, message: string): void;
19
+ success(objectName: any, message: string): void;
20
+ trace(objectName: any, message: string): void;
21
+ private logData;
22
+ private writeToContainer;
23
+ setPlayerID(playerID: number): void;
24
+ getAllLogs(): Array<string>;
25
+ }
@@ -0,0 +1,9 @@
1
+ import { ProtocolType } from "../config/enum/ProtocolType";
2
+ import { StreamInfo } from "./StreamInfo";
3
+ export declare class AbstractSourceItem {
4
+ protected type: ProtocolType;
5
+ protected streamInfo: StreamInfo;
6
+ constructor(type: ProtocolType, info: StreamInfo);
7
+ getType(): ProtocolType;
8
+ getStreamInfo(): StreamInfo;
9
+ }
@@ -0,0 +1,6 @@
1
+ export declare class ClientUser {
2
+ private bandwidthCapabilities;
3
+ constructor();
4
+ setBandwidthCapabilities(newCapabilities: number): void;
5
+ getBandwidthCapabilities(): number;
6
+ }
@@ -0,0 +1,17 @@
1
+ import { IServerItem } from "./IServerItem";
2
+ export declare class GatewayServerItem implements IServerItem {
3
+ private host;
4
+ private application;
5
+ private port;
6
+ private isSSL;
7
+ private hasFaild;
8
+ constructor(host: string, application: string, port?: number, isSSL?: boolean);
9
+ getHost(): string;
10
+ getPort(): number;
11
+ getIfSSL(): boolean;
12
+ getIfFaild(): boolean;
13
+ setAsFaild(value: boolean): void;
14
+ getApplication(): string;
15
+ getData(): any;
16
+ toString(): string;
17
+ }
@@ -0,0 +1,9 @@
1
+ export interface IServerItem {
2
+ getHost(): string;
3
+ getApplication(): string;
4
+ getPort(): number;
5
+ getIfSSL(): boolean;
6
+ getIfFaild(): boolean;
7
+ setAsFaild(value: boolean): void;
8
+ toString(): string;
9
+ }
@@ -0,0 +1,8 @@
1
+ import { ProtocolType } from "../config/enum/ProtocolType";
2
+ import { StreamInfo } from "./StreamInfo";
3
+ export interface ISourceItem {
4
+ getType(): ProtocolType;
5
+ getStreamInfo(): StreamInfo;
6
+ getStreamKey(): string;
7
+ toString(): string;
8
+ }
@@ -0,0 +1,8 @@
1
+ import { ProtocolType } from "../config/enum/ProtocolType";
2
+ export interface IStreamItem {
3
+ getType(): ProtocolType;
4
+ getStreamName(): string;
5
+ getHost(): string;
6
+ getApplicationName(): string;
7
+ toString(): string;
8
+ }
@@ -0,0 +1,17 @@
1
+ export declare class QualityItem {
2
+ private _id;
3
+ private _label;
4
+ private _monogram;
5
+ private _isSelected;
6
+ private _isAuto;
7
+ constructor(id: number, label: string, monogram: string);
8
+ getIfSelected(): boolean;
9
+ setIfSelected(newValue: boolean): void;
10
+ getLabel(): string;
11
+ setLabel(newValue: string): void;
12
+ getID(): number;
13
+ getMonogram(): string;
14
+ setMonogram(newValue: string): void;
15
+ getIfAuto(): boolean;
16
+ setIfAuto(newValue: boolean): void;
17
+ }
@@ -0,0 +1,17 @@
1
+ import { AbstractSourceItem } from "./AbstractSourceItem";
2
+ import { ISourceItem } from "./ISourceItem";
3
+ import { StreamInfo } from "./StreamInfo";
4
+ export declare class RTMPSourceItem extends AbstractSourceItem implements ISourceItem {
5
+ private host;
6
+ private application;
7
+ private streamKey;
8
+ private port;
9
+ private defaultSource;
10
+ constructor(host: string, application: string, streamKey: string, port: number, streamInfo: StreamInfo, defaultSource: boolean);
11
+ getHost(): string;
12
+ getPort(): number;
13
+ getApplicationName(): string;
14
+ getStreamKey(): string;
15
+ isDefaultSource(): boolean;
16
+ toString(): string;
17
+ }
@@ -0,0 +1,17 @@
1
+ import { AbstractSourceItem } from "./AbstractSourceItem";
2
+ import { ISourceItem } from "./ISourceItem";
3
+ import { StreamInfo } from "./StreamInfo";
4
+ export declare class RTSPSourceItem extends AbstractSourceItem implements ISourceItem {
5
+ private host;
6
+ private application;
7
+ private streamKey;
8
+ private port;
9
+ private defaultSource;
10
+ constructor(host: string, application: string, streamKey: string, port: number, streamInfo: StreamInfo, defaultSource: boolean);
11
+ getHost(): string;
12
+ getPort(): number;
13
+ getApplicationName(): string;
14
+ getStreamKey(): string;
15
+ isDefaultSource(): boolean;
16
+ toString(): string;
17
+ }
@@ -0,0 +1,44 @@
1
+ export declare class StormMetaDataItem {
2
+ private videoWidth;
3
+ private videoHeight;
4
+ private videoTimeScale;
5
+ private constantFrameRate;
6
+ private videoDataRate;
7
+ private frameRate;
8
+ private encoder;
9
+ private audioCodec;
10
+ private videoCodec;
11
+ private audioChannels;
12
+ private audioSampleRate;
13
+ private audioSampleSize;
14
+ private audioDataRate;
15
+ MetaDataItem(): void;
16
+ setVideoWidth(width: number): void;
17
+ setVideoHeight(height: number): void;
18
+ setIfConstantFrameRate(constantFrameRate: boolean): void;
19
+ setEncoder(encoder: string): void;
20
+ setAudioCodec(audioCodec: string): void;
21
+ setVideoDataRate(videoDataRate: number): void;
22
+ setAudioCodecID(audioCodecID: number): void;
23
+ setVideoCodec(videoCodec: string): void;
24
+ setVideoCodecID(videoCodecID: number): void;
25
+ setAudioChannels(audioChannels: number): void;
26
+ setAudioSampleRate(audioSampleRate: number): void;
27
+ setAudioSampleSize(audioSampleSize: number): void;
28
+ setAudioDataRate(audioDataRate: number): void;
29
+ setVideoTimeScale(videoTimeScale: number): void;
30
+ setFrameRate(fps: number): void;
31
+ getVideoWidth(): number;
32
+ getVideoHeight(): number;
33
+ isVariableFPS(): boolean;
34
+ getNominalFPS(): number;
35
+ getEncoder(): string;
36
+ getAudioCodec(): string;
37
+ getVideoCodec(): string;
38
+ getAudioChannels(): number;
39
+ getAudioSampleRate(): number;
40
+ getAudioSampleSize(): number;
41
+ getAudioDataRate(): number;
42
+ getVideoTimeScale(): number;
43
+ toString(): string;
44
+ }
@@ -0,0 +1,17 @@
1
+ import { IServerItem } from "./IServerItem";
2
+ export declare class StormServerItem implements IServerItem {
3
+ private host;
4
+ private application;
5
+ private port;
6
+ private isSSL;
7
+ private hasFaild;
8
+ constructor(host: string, application: string, port?: number, isSSL?: boolean);
9
+ getHost(): string;
10
+ getApplication(): string;
11
+ getPort(): number;
12
+ getIfSSL(): boolean;
13
+ getIfFaild(): boolean;
14
+ setAsFaild(value: boolean): void;
15
+ getData(): any;
16
+ toString(): string;
17
+ }
@@ -0,0 +1,11 @@
1
+ import { AbstractSourceItem } from "./AbstractSourceItem";
2
+ import { ISourceItem } from "./ISourceItem";
3
+ import { StreamInfo } from "./StreamInfo";
4
+ export declare class StormSourceItem extends AbstractSourceItem implements ISourceItem {
5
+ private streamKey;
6
+ private defaultSource;
7
+ constructor(streamKey: string, streamInfo: StreamInfo, defaultSource: boolean);
8
+ getStreamKey(): string;
9
+ isDefaultSource(): boolean;
10
+ toString(): string;
11
+ }
@@ -0,0 +1,17 @@
1
+ export declare class StreamInfo {
2
+ private label;
3
+ private monogram;
4
+ private width;
5
+ private height;
6
+ private fps;
7
+ private bitrate;
8
+ constructor(config: any);
9
+ assignMonogram(): void;
10
+ getLabel(): string;
11
+ getMonogram(): string;
12
+ getWidth(): number;
13
+ getHeight(): number;
14
+ getFPS(): number;
15
+ getBitrate(): number;
16
+ toString(): string;
17
+ }
@@ -0,0 +1,26 @@
1
+ import { ConnectionState } from "../playback/enum/ConnectionState";
2
+ import { Logger } from "../logger/Logger";
3
+ export declare class AbstractSocket {
4
+ protected readonly CONNECTION_TIMEOUT: number;
5
+ protected _logger: Logger;
6
+ protected socket: WebSocket;
7
+ protected socketURL: string;
8
+ protected isBinary: boolean;
9
+ protected _connectionState: ConnectionState;
10
+ protected _messageCount: number;
11
+ protected _connectionTimeout: any;
12
+ protected _disconnectedByUser: boolean;
13
+ protected _isConnected: boolean;
14
+ protected _sequenceNumber: number;
15
+ startConnection(): void;
16
+ protected onSocketOpen(event: Event): void;
17
+ protected onSocketClose(event: CloseEvent): void;
18
+ protected onSocketMessage(event: MessageEvent): void;
19
+ protected onSocketError(event: Event): void;
20
+ protected onError(error: string): void;
21
+ sendData(data: any): void;
22
+ getConnectionState(): ConnectionState;
23
+ disconnect(byUser?: boolean): void;
24
+ protected destroy(): void;
25
+ getSocketURL(): string;
26
+ }
@@ -0,0 +1,20 @@
1
+ import { WowzaConnection } from "./WowzaConnection";
2
+ import { Logger } from "../logger/Logger";
3
+ import { StormStreamer } from "../StormStreamer";
4
+ export declare class NetworkController {
5
+ private readonly _main;
6
+ private _connection;
7
+ protected _logger: Logger;
8
+ private _currentStreamKey;
9
+ private _lastState;
10
+ constructor(main: StormStreamer);
11
+ initialize(): void;
12
+ start(): void;
13
+ stop(): void;
14
+ private onServerConnect;
15
+ private onServerDisconnect;
16
+ onMessage: (event: MessageEvent) => void;
17
+ sendMessage(message: String): void;
18
+ getConnection(): WowzaConnection;
19
+ getCurrentStreamKey(): string;
20
+ }
@@ -0,0 +1,93 @@
1
+ export interface ServerHandshakePacket {
2
+ branch: string;
3
+ group: string;
4
+ license: string;
5
+ name: string;
6
+ protocolVer: number;
7
+ serverTime: number;
8
+ version: string;
9
+ }
10
+ export interface AppDataPacket {
11
+ name: string;
12
+ tokenRequired: boolean;
13
+ dvrEnabled: boolean;
14
+ type: string;
15
+ }
16
+ export interface AppAuthPacket {
17
+ command: string;
18
+ token: boolean;
19
+ userAgent: boolean;
20
+ uniq: string;
21
+ domain: string;
22
+ }
23
+ export interface AuthResultPacket {
24
+ answer: string;
25
+ reason?: string;
26
+ }
27
+ export interface PlayRequestPacket {
28
+ protocol: string;
29
+ streamKey: string;
30
+ subscriptionKey: string;
31
+ extApplication?: string;
32
+ extPort?: number;
33
+ extHost?: string;
34
+ startTime: number;
35
+ packetizer: string;
36
+ }
37
+ export interface PlayResultPacket {
38
+ reason?: string;
39
+ status: string;
40
+ streamState?: string;
41
+ streamKey: string;
42
+ }
43
+ export interface PlaybackMetadataPacket {
44
+ audioCodecID: number;
45
+ audioDataRate: number;
46
+ audioSampleRate: number;
47
+ audioSampleSize: number;
48
+ encoder: string;
49
+ frameRate?: number;
50
+ constFrameRate: boolean;
51
+ videoHeight: number;
52
+ videoWidth: number;
53
+ videoCodecID: number;
54
+ videoDataRate: number;
55
+ width: number;
56
+ audioChannels: number;
57
+ }
58
+ export interface PlaybackStopPacket {
59
+ newState: string;
60
+ }
61
+ export interface PlaybackLinkingPacket {
62
+ path: string;
63
+ }
64
+ export interface SubscribeRequestPacket {
65
+ streamKey: string;
66
+ }
67
+ export interface UnsubscribeRequestPacket {
68
+ streamKey: string;
69
+ }
70
+ export interface LatencyReportPacket {
71
+ streamKey: string;
72
+ latency: number;
73
+ }
74
+ export interface SubscriptionResultPacket {
75
+ reason?: string;
76
+ status: string;
77
+ streamState: string;
78
+ optParameters: any;
79
+ streamList?: any;
80
+ streamKey: string;
81
+ }
82
+ export interface SubscriptionUpdatePacket {
83
+ streamKey: string;
84
+ streamState: string;
85
+ streamList?: any;
86
+ }
87
+ export interface PlaybackProgressPacket {
88
+ streamDuration: number;
89
+ streamStartTime: number;
90
+ playbackStartTime: number;
91
+ playbackDuration: number;
92
+ dvrCacheSize: number;
93
+ }
@@ -0,0 +1,22 @@
1
+ import { AbstractSocket } from "./AbstractSocket";
2
+ import { StormServerItem } from "../model/StormServerItem";
3
+ import { NetworkController } from "./NetworkController";
4
+ import { StormStreamer } from "../StormStreamer";
5
+ export declare class WowzaConnection extends AbstractSocket {
6
+ private readonly _main;
7
+ private readonly _networkController;
8
+ private _currServer;
9
+ private _reconnectTimer;
10
+ constructor(main: StormStreamer, networkController: NetworkController);
11
+ initialize(): void;
12
+ protected onSocketOpen(event: Event): void;
13
+ protected onSocketError(event: Event): void;
14
+ protected onSocketClose(event: CloseEvent): void;
15
+ protected onSocketMessage(event: MessageEvent): void;
16
+ private createURL;
17
+ private initiateReconnect;
18
+ private pickServerFromList;
19
+ isConnectionActive(): boolean;
20
+ getCurrentServer(): StormServerItem | null;
21
+ destroy(): void;
22
+ }
@@ -0,0 +1,9 @@
1
+ export declare class CooldownMonitor {
2
+ private cooldownDuration;
3
+ private lastCooldownTime;
4
+ constructor(cooldownDuration?: number);
5
+ triggerCooldown(): void;
6
+ setCooldownDuration(newTime: number): void;
7
+ isCooling(): boolean;
8
+ reset(): void;
9
+ }
@@ -0,0 +1,54 @@
1
+ import { Logger } from "../logger/Logger";
2
+ import { IPlayer } from "./player/IPlayer";
3
+ import { StormStreamer } from "../StormStreamer";
4
+ import { InputDevice } from "./model/InputDevice";
5
+ import { PublishState } from "./enum/PublishState";
6
+ export declare class PlaybackController {
7
+ private readonly _main;
8
+ protected _logger: Logger;
9
+ private _selectedPlayer;
10
+ private _isWindowActive;
11
+ private _peerConnection;
12
+ private _peerConnectionConfig;
13
+ private _mungeSDP;
14
+ private _selectedCamera;
15
+ private _selectedMicrophone;
16
+ private _isMicrophoneMuted;
17
+ private _cameraList;
18
+ private _microphoneList;
19
+ private _stream;
20
+ private _soundMeter;
21
+ private _constraints;
22
+ protected _publishState: PublishState;
23
+ constructor(main: StormStreamer);
24
+ initialize(): void;
25
+ private startWebRTC;
26
+ publish(streamKey: string): void;
27
+ unpublish(): void;
28
+ private onUserMediaSuccess;
29
+ onUserMediaError(error: any): void;
30
+ onSocketMessage(data: any): void;
31
+ private onConnectionStateChange;
32
+ private onServerDisconnect;
33
+ grabDevices(): void;
34
+ selectCamera(cameraID: string): void;
35
+ selectMicrophone(micID: string): void;
36
+ private pickCamera;
37
+ private pickMicrophone;
38
+ muteMicrophone(microphoneState: boolean): void;
39
+ private onServerConnect;
40
+ private onDescriptionError;
41
+ private onDescriptionSuccess;
42
+ private onIceCandidate;
43
+ private closeStream;
44
+ private visibilityChange;
45
+ private onWindowBlur;
46
+ private onWindowFocus;
47
+ getCurrentCamera(): InputDevice | null;
48
+ getCurrentMicrophone(): InputDevice | null;
49
+ setPublishState(newState: PublishState): void;
50
+ getCameraList(): InputDevice[];
51
+ getMicrophoneList(): InputDevice[];
52
+ getPlayer(): IPlayer | null;
53
+ destroy(): void;
54
+ }
@@ -0,0 +1,17 @@
1
+ import { StormStreamer } from "../StormStreamer";
2
+ export declare class SoundMeter {
3
+ private _main;
4
+ private _stream;
5
+ private _instant;
6
+ private _slow;
7
+ private clip;
8
+ private audioContext;
9
+ private script;
10
+ private microphone;
11
+ private processor;
12
+ constructor(main: StormStreamer);
13
+ attach(stream: MediaStream): void;
14
+ detach(): void;
15
+ private clear;
16
+ onAudioProcess(event: any): void;
17
+ }