camstreamerlib
Version:
Helper library for CamStreamer ACAP applications.
223 lines (222 loc) • 9.13 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.diagnosticsSchema = exports.diagnosticsParamsSchema = exports.srtStreamStatisticsSchema = exports.streamStatsSchema = exports.audioLocalSchema = exports.audioUrlSchema = exports.audioFileListSchema = exports.audioFileSchema = exports.storageListSchema = exports.audioFileStorageTypeSchema = exports.AudioType = exports.isYoutubeRtmpStream = exports.isGameChangerStream = exports.isMicrosoftStream = exports.isMicrosoftAzureStream = exports.isIbmStream = exports.isDailymotionStream = exports.isWowzaStream = exports.isHlsPushStream = exports.isHlsPullStream = exports.isDaCastStream = exports.isSrtStream = exports.isTwitchStream = exports.isVimeoStream = exports.isYouTubeStream = exports.isWindyStream = exports.isSdCardStream = exports.isRtmpStream = exports.isMpegDvbStream = exports.isFacebookRtmpStream = exports.isFacebookStream = exports.streamListSchema = exports.streamSchema = void 0;
const zod_1 = require("zod");
const facebookSchema_1 = require("./facebookSchema");
const windySchema_1 = require("./windySchema");
const youtubeSchema_1 = require("./youtubeSchema");
const streamsSchema_1 = require("./streamsSchema");
const common_1 = require("../common");
exports.streamSchema = zod_1.z.discriminatedUnion('platform', [
facebookSchema_1.facebookSchema,
streamsSchema_1.facebookRtmpSchema,
streamsSchema_1.mpegDvbSchema,
streamsSchema_1.rtmpSchema,
streamsSchema_1.sdCardSchema,
windySchema_1.windySchema,
youtubeSchema_1.youtubeSchema,
streamsSchema_1.vimeoSchema,
streamsSchema_1.twitchSchema,
streamsSchema_1.srtSchema,
streamsSchema_1.daCastSchema,
streamsSchema_1.hlsPullSchema,
streamsSchema_1.hlsPushSchema,
streamsSchema_1.wowzaSchema,
streamsSchema_1.dailymotionSchema,
streamsSchema_1.ibmSchema,
streamsSchema_1.microsoftAzureSchema,
streamsSchema_1.microsoftStreamSchema,
streamsSchema_1.gameChangerSchema,
streamsSchema_1.youtubeRtmpSchema,
]);
exports.streamListSchema = zod_1.z.object({ streamList: zod_1.z.array(exports.streamSchema) });
const isFacebookStream = (stream) => {
return stream.platform === streamsSchema_1.streamPlatforms.facebook;
};
exports.isFacebookStream = isFacebookStream;
const isFacebookRtmpStream = (stream) => {
return stream.platform === streamsSchema_1.streamPlatforms.facebook_rtmp;
};
exports.isFacebookRtmpStream = isFacebookRtmpStream;
const isMpegDvbStream = (stream) => {
return stream.platform === streamsSchema_1.streamPlatforms.mpeg_dvb;
};
exports.isMpegDvbStream = isMpegDvbStream;
const isRtmpStream = (stream) => {
return stream.platform === streamsSchema_1.streamPlatforms.rtmp;
};
exports.isRtmpStream = isRtmpStream;
const isSdCardStream = (stream) => {
return stream.platform === streamsSchema_1.streamPlatforms.sd_card;
};
exports.isSdCardStream = isSdCardStream;
const isWindyStream = (stream) => {
return stream.platform === streamsSchema_1.streamPlatforms.windy;
};
exports.isWindyStream = isWindyStream;
const isYouTubeStream = (stream) => {
return stream.platform === streamsSchema_1.streamPlatforms.youtube;
};
exports.isYouTubeStream = isYouTubeStream;
const isVimeoStream = (stream) => {
return stream.platform === streamsSchema_1.streamPlatforms.vimeo;
};
exports.isVimeoStream = isVimeoStream;
const isTwitchStream = (stream) => {
return stream.platform === streamsSchema_1.streamPlatforms.twitch;
};
exports.isTwitchStream = isTwitchStream;
const isSrtStream = (stream) => {
return stream.platform === streamsSchema_1.streamPlatforms.srt;
};
exports.isSrtStream = isSrtStream;
const isDaCastStream = (stream) => {
return stream.platform === streamsSchema_1.streamPlatforms.da_cast;
};
exports.isDaCastStream = isDaCastStream;
const isHlsPullStream = (stream) => {
return stream.platform === streamsSchema_1.streamPlatforms.hls_pull;
};
exports.isHlsPullStream = isHlsPullStream;
const isHlsPushStream = (stream) => {
return stream.platform === streamsSchema_1.streamPlatforms.hls_push;
};
exports.isHlsPushStream = isHlsPushStream;
const isWowzaStream = (stream) => {
return stream.platform === streamsSchema_1.streamPlatforms.wowza;
};
exports.isWowzaStream = isWowzaStream;
const isDailymotionStream = (stream) => {
return stream.platform === streamsSchema_1.streamPlatforms.dailymotion;
};
exports.isDailymotionStream = isDailymotionStream;
const isIbmStream = (stream) => {
return stream.platform === streamsSchema_1.streamPlatforms.ibm;
};
exports.isIbmStream = isIbmStream;
const isMicrosoftAzureStream = (stream) => {
return stream.platform === streamsSchema_1.streamPlatforms.microsoft_azure;
};
exports.isMicrosoftAzureStream = isMicrosoftAzureStream;
const isMicrosoftStream = (stream) => {
return stream.platform === streamsSchema_1.streamPlatforms.microsoft_stream;
};
exports.isMicrosoftStream = isMicrosoftStream;
const isGameChangerStream = (stream) => {
return stream.platform === streamsSchema_1.streamPlatforms.game_changer;
};
exports.isGameChangerStream = isGameChangerStream;
const isYoutubeRtmpStream = (stream) => {
return stream.platform === streamsSchema_1.streamPlatforms.youtube_rtmp;
};
exports.isYoutubeRtmpStream = isYoutubeRtmpStream;
var AudioType;
(function (AudioType) {
AudioType[AudioType["MP3"] = 0] = "MP3";
AudioType[AudioType["AAC"] = 1] = "AAC";
})(AudioType || (exports.AudioType = AudioType = {}));
exports.audioFileStorageTypeSchema = zod_1.z.union([zod_1.z.literal('flash'), zod_1.z.literal('SD0'), zod_1.z.literal('url')]);
exports.storageListSchema = zod_1.z.array(zod_1.z.discriminatedUnion('type', [
zod_1.z.object({
type: zod_1.z.literal('flash'),
flash: zod_1.z.string(),
}),
zod_1.z.object({
type: zod_1.z.literal('SD0'),
SD0: zod_1.z.string(),
}),
]));
exports.audioFileSchema = zod_1.z.object({
name: zod_1.z.string(),
path: zod_1.z.string(),
storage: exports.audioFileStorageTypeSchema,
});
exports.audioFileListSchema = zod_1.z.array(exports.audioFileSchema);
exports.audioUrlSchema = zod_1.z.object({
fileUrl: zod_1.z.string(),
name: zod_1.z.string(),
storage: zod_1.z.literal('url'),
});
exports.audioLocalSchema = zod_1.z.object({
file: common_1.fileSchema,
name: zod_1.z.string(),
storage: zod_1.z.enum(['flash', 'SD0']),
});
exports.streamStatsSchema = zod_1.z.object({
net_stats: zod_1.z.string(),
stream_bytes_time_ms: zod_1.z.number().nonnegative(),
stream_bytes: zod_1.z.number().nonnegative(),
start_count: zod_1.z.number().nonnegative(),
is_streaming: zod_1.z.literal(0).or(zod_1.z.literal(1)),
});
exports.srtStreamStatisticsSchema = zod_1.z.object({
msTimeStamp: zod_1.z.number().nonnegative(),
pktSentTotal: zod_1.z.number().nonnegative(),
byteSentTotal: zod_1.z.number().nonnegative(),
pktRetransTotal: zod_1.z.number().nonnegative(),
byteRetransTotal: zod_1.z.number().nonnegative(),
pktSndDropTotal: zod_1.z.number().nonnegative(),
byteSndDropTotal: zod_1.z.number().nonnegative(),
mbpsSendRate: zod_1.z.number().nonnegative(),
mbpsBandwidth: zod_1.z.number().nonnegative(),
mbpsMaxBW: zod_1.z.number().nonnegative(),
msRTT: zod_1.z.number().nonnegative(),
msSndBuf: zod_1.z.number().nonnegative(),
});
exports.diagnosticsParamsSchema = zod_1.z.object({
camerainfo: (0, zod_1.boolean)().optional(),
checkserver: (0, zod_1.boolean)().optional(),
checkservertime: (0, zod_1.boolean)().optional(),
speedtest: (0, zod_1.boolean)().optional(),
pingtest: (0, zod_1.boolean)().optional(),
videoHostPort: zod_1.z.string().optional(),
audioHostPort: zod_1.z.string().optional(),
});
exports.diagnosticsSchema = zod_1.z.object({
status: zod_1.z.number(),
message: zod_1.z.string(),
data: zod_1.z.object({
audioHostPort: zod_1.z
.object({
code: zod_1.z.number(),
message: zod_1.z.string(),
})
.optional(),
cameraInfo: zod_1.z
.object({
uptime: zod_1.z.string(),
availableRAM: zod_1.z.number(),
availableInternal: zod_1.z.number(),
})
.optional(),
checkServer: zod_1.z
.object({
state: zod_1.z.string(),
message: zod_1.z.string(),
})
.optional(),
checkServerTime: zod_1.z
.object({
code: zod_1.z.number(),
message: zod_1.z.string(),
})
.optional(),
videoHostPort: zod_1.z
.object({
code: zod_1.z.number(),
message: zod_1.z.string(),
})
.optional(),
speedTest: zod_1.z
.object({
code: zod_1.z.string(),
data: zod_1.z.array(zod_1.z.object({ timestamp: zod_1.z.number(), speed: zod_1.z.number() })),
})
.optional(),
pingTest: zod_1.z
.object({
output: zod_1.z.string(),
})
.optional(),
}),
});