camstreamerlib
Version:
Helper library for CamStreamer ACAP applications.
571 lines (570 loc) • 16.6 kB
TypeScript
import { z } from 'zod';
export declare const streamCommonSchema: z.ZodObject<{
streamId: z.ZodString;
enabled: z.ZodBoolean;
active: z.ZodBoolean;
title: z.ZodString;
trigger: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
type: z.ZodLiteral<"manual">;
port: z.ZodOptional<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
type: "manual";
port?: number | undefined;
}, {
type: "manual";
port?: number | undefined;
}>, z.ZodObject<{
type: z.ZodLiteral<"onetime">;
startTime: z.ZodNumber;
stopTime: z.ZodNumber;
everActivated: z.ZodBoolean;
prepareAheadS: z.ZodOptional<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
type: "onetime";
startTime: number;
stopTime: number;
everActivated: boolean;
prepareAheadS?: number | undefined;
}, {
type: "onetime";
startTime: number;
stopTime: number;
everActivated: boolean;
prepareAheadS?: number | undefined;
}>, z.ZodObject<{
type: z.ZodLiteral<"recurrent">;
schedule: z.ZodArray<z.ZodObject<{
start: z.ZodObject<{
day: z.ZodNumber;
timeS: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
day: number;
timeS: number;
}, {
day: number;
timeS: number;
}>;
stop: z.ZodObject<{
day: z.ZodNumber;
timeS: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
day: number;
timeS: number;
}, {
day: number;
timeS: number;
}>;
isActive: z.ZodBoolean;
}, "strip", z.ZodTypeAny, {
start: {
day: number;
timeS: number;
};
stop: {
day: number;
timeS: number;
};
isActive: boolean;
}, {
start: {
day: number;
timeS: number;
};
stop: {
day: number;
timeS: number;
};
isActive: boolean;
}>, "many">;
prepareAheadS: z.ZodOptional<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
type: "recurrent";
schedule: {
start: {
day: number;
timeS: number;
};
stop: {
day: number;
timeS: number;
};
isActive: boolean;
}[];
prepareAheadS?: number | undefined;
}, {
type: "recurrent";
schedule: {
start: {
day: number;
timeS: number;
};
stop: {
day: number;
timeS: number;
};
isActive: boolean;
}[];
prepareAheadS?: number | undefined;
}>]>;
video: z.ZodObject<{
output: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
type: z.ZodLiteral<"video">;
url: z.ZodNullable<z.ZodString>;
parameters: z.ZodString;
saveToSdCard: z.ZodOptional<z.ZodObject<{
ruleId: z.ZodString;
configurationId: z.ZodString;
}, "strip", z.ZodTypeAny, {
ruleId: string;
configurationId: string;
}, {
ruleId: string;
configurationId: string;
}>>;
}, "strip", z.ZodTypeAny, {
type: "video";
url: string | null;
parameters: string;
saveToSdCard?: {
ruleId: string;
configurationId: string;
} | undefined;
}, {
type: "video";
url: string | null;
parameters: string;
saveToSdCard?: {
ruleId: string;
configurationId: string;
} | undefined;
}>, z.ZodObject<{
type: z.ZodLiteral<"images">;
url: z.ZodNullable<z.ZodString>;
imageIntervalS: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
type: "images";
url: string | null;
imageIntervalS: number;
}, {
type: "images";
url: string | null;
imageIntervalS: number;
}>, z.ZodObject<{
type: z.ZodLiteral<"none">;
saveToSdCard: z.ZodObject<{
ruleId: z.ZodString;
configurationId: z.ZodString;
}, "strip", z.ZodTypeAny, {
ruleId: string;
configurationId: string;
}, {
ruleId: string;
configurationId: string;
}>;
}, "strip", z.ZodTypeAny, {
type: "none";
saveToSdCard: {
ruleId: string;
configurationId: string;
};
}, {
type: "none";
saveToSdCard: {
ruleId: string;
configurationId: string;
};
}>]>;
input: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
type: z.ZodLiteral<"RTSP_URL">;
url: z.ZodString;
internalVapixParameters: z.ZodString;
}, "strip", z.ZodTypeAny, {
type: "RTSP_URL";
url: string;
internalVapixParameters: string;
}, {
type: "RTSP_URL";
url: string;
internalVapixParameters: string;
}>, z.ZodObject<{
type: z.ZodLiteral<"CSw">;
}, "strip", z.ZodTypeAny, {
type: "CSw";
}, {
type: "CSw";
}>, z.ZodObject<{
type: z.ZodLiteral<"CRS">;
internalVapixParameters: z.ZodString;
userVapixParameters: z.ZodString;
}, "strip", z.ZodTypeAny, {
type: "CRS";
internalVapixParameters: string;
userVapixParameters: string;
}, {
type: "CRS";
internalVapixParameters: string;
userVapixParameters: string;
}>]>;
delayS: z.ZodOptional<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
output: {
type: "video";
url: string | null;
parameters: string;
saveToSdCard?: {
ruleId: string;
configurationId: string;
} | undefined;
} | {
type: "images";
url: string | null;
imageIntervalS: number;
} | {
type: "none";
saveToSdCard: {
ruleId: string;
configurationId: string;
};
};
input: {
type: "RTSP_URL";
url: string;
internalVapixParameters: string;
} | {
type: "CSw";
} | {
type: "CRS";
internalVapixParameters: string;
userVapixParameters: string;
};
delayS?: number | undefined;
}, {
output: {
type: "video";
url: string | null;
parameters: string;
saveToSdCard?: {
ruleId: string;
configurationId: string;
} | undefined;
} | {
type: "images";
url: string | null;
imageIntervalS: number;
} | {
type: "none";
saveToSdCard: {
ruleId: string;
configurationId: string;
};
};
input: {
type: "RTSP_URL";
url: string;
internalVapixParameters: string;
} | {
type: "CSw";
} | {
type: "CRS";
internalVapixParameters: string;
userVapixParameters: string;
};
delayS?: number | undefined;
}>;
audio: z.ZodDiscriminatedUnion<"source", [z.ZodObject<{
source: z.ZodLiteral<"none">;
}, "strip", z.ZodTypeAny, {
source: "none";
}, {
source: "none";
}>, z.ZodObject<{
source: z.ZodLiteral<"microphone">;
audioChannelNbr: z.ZodNumber;
forceStereo: z.ZodBoolean;
}, "strip", z.ZodTypeAny, {
source: "microphone";
audioChannelNbr: number;
forceStereo: boolean;
}, {
source: "microphone";
audioChannelNbr: number;
forceStereo: boolean;
}>, z.ZodObject<{
source: z.ZodLiteral<"file">;
name: z.ZodString;
path: z.ZodString;
forceStereo: z.ZodBoolean;
}, "strip", z.ZodTypeAny, {
path: string;
name: string;
source: "file";
forceStereo: boolean;
}, {
path: string;
name: string;
source: "file";
forceStereo: boolean;
}>, z.ZodObject<{
source: z.ZodLiteral<"url">;
name: z.ZodString;
url: z.ZodString;
avSyncMsec: z.ZodNumber;
forceStereo: z.ZodBoolean;
}, "strip", z.ZodTypeAny, {
name: string;
url: string;
source: "url";
forceStereo: boolean;
avSyncMsec: number;
}, {
name: string;
url: string;
source: "url";
forceStereo: boolean;
avSyncMsec: number;
}>]>;
status: z.ZodObject<{
led: z.ZodBoolean;
port: z.ZodOptional<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
led: boolean;
port?: number | undefined;
}, {
led: boolean;
port?: number | undefined;
}>;
}, "strip", z.ZodTypeAny, {
status: {
led: boolean;
port?: number | undefined;
};
streamId: string;
enabled: boolean;
active: boolean;
title: string;
trigger: {
type: "manual";
port?: number | undefined;
} | {
type: "onetime";
startTime: number;
stopTime: number;
everActivated: boolean;
prepareAheadS?: number | undefined;
} | {
type: "recurrent";
schedule: {
start: {
day: number;
timeS: number;
};
stop: {
day: number;
timeS: number;
};
isActive: boolean;
}[];
prepareAheadS?: number | undefined;
};
video: {
output: {
type: "video";
url: string | null;
parameters: string;
saveToSdCard?: {
ruleId: string;
configurationId: string;
} | undefined;
} | {
type: "images";
url: string | null;
imageIntervalS: number;
} | {
type: "none";
saveToSdCard: {
ruleId: string;
configurationId: string;
};
};
input: {
type: "RTSP_URL";
url: string;
internalVapixParameters: string;
} | {
type: "CSw";
} | {
type: "CRS";
internalVapixParameters: string;
userVapixParameters: string;
};
delayS?: number | undefined;
};
audio: {
source: "none";
} | {
source: "microphone";
audioChannelNbr: number;
forceStereo: boolean;
} | {
path: string;
name: string;
source: "file";
forceStereo: boolean;
} | {
name: string;
url: string;
source: "url";
forceStereo: boolean;
avSyncMsec: number;
};
}, {
status: {
led: boolean;
port?: number | undefined;
};
streamId: string;
enabled: boolean;
active: boolean;
title: string;
trigger: {
type: "manual";
port?: number | undefined;
} | {
type: "onetime";
startTime: number;
stopTime: number;
everActivated: boolean;
prepareAheadS?: number | undefined;
} | {
type: "recurrent";
schedule: {
start: {
day: number;
timeS: number;
};
stop: {
day: number;
timeS: number;
};
isActive: boolean;
}[];
prepareAheadS?: number | undefined;
};
video: {
output: {
type: "video";
url: string | null;
parameters: string;
saveToSdCard?: {
ruleId: string;
configurationId: string;
} | undefined;
} | {
type: "images";
url: string | null;
imageIntervalS: number;
} | {
type: "none";
saveToSdCard: {
ruleId: string;
configurationId: string;
};
};
input: {
type: "RTSP_URL";
url: string;
internalVapixParameters: string;
} | {
type: "CSw";
} | {
type: "CRS";
internalVapixParameters: string;
userVapixParameters: string;
};
delayS?: number | undefined;
};
audio: {
source: "none";
} | {
source: "microphone";
audioChannelNbr: number;
forceStereo: boolean;
} | {
path: string;
name: string;
source: "file";
forceStereo: boolean;
} | {
name: string;
url: string;
source: "url";
forceStereo: boolean;
avSyncMsec: number;
};
}>;
export type TCommonStream = z.infer<typeof streamCommonSchema>;
export type TStreamAudio = TCommonStream['audio'];
export type TStreamAudioSource = NonNullable<TStreamAudio>['source'];
export type TAudioOfSource<T extends TStreamAudioSource> = {
audio: Extract<TStreamAudio, {
source: T;
}>;
};
export type TStreamTrigger = TCommonStream['trigger'];
export type TStreamTriggerType = TStreamTrigger['type'];
export type TTriggerSchedule = Extract<TStreamTrigger, {
type: 'recurrent';
}>['schedule'];
export type TStreamVideo = TCommonStream['video'];
export type TStreamInputType = TStreamVideo['input']['type'];
export type TStreamOutputType = TStreamVideo['output']['type'];
export declare const internalVapixParametersSchema: z.ZodObject<{
bitrateMode: z.ZodUnion<[z.ZodLiteral<"VBR">, z.ZodLiteral<"MBR">, z.ZodLiteral<"ABR">]>;
maximumBitRate: z.ZodNumber;
retentionTime: z.ZodNumber;
bitRateLimit: z.ZodNumber;
} & {
camera: z.ZodString;
resolution: z.ZodString;
fps: z.ZodNumber;
compression: z.ZodNumber;
govLength: z.ZodNumber;
videoCodec: z.ZodUnion<[z.ZodLiteral<"h264">, z.ZodLiteral<"h265">, z.ZodLiteral<"av1">]>;
h264Profile: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"high">, z.ZodLiteral<"main">, z.ZodLiteral<"baseline">]>>;
audio: z.ZodUnion<[z.ZodLiteral<0>, z.ZodLiteral<1>]>;
nbrOfChannels: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
overlays: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"all">, z.ZodLiteral<"text">, z.ZodLiteral<"image">, z.ZodLiteral<"application">, z.ZodLiteral<"off">]>>;
}, "strip", z.ZodTypeAny, {
camera: string;
resolution: string;
compression: number;
bitrateMode: "VBR" | "MBR" | "ABR";
maximumBitRate: number;
retentionTime: number;
bitRateLimit: number;
audio: 0 | 1;
fps: number;
govLength: number;
videoCodec: "h264" | "h265" | "av1";
overlays?: "text" | "all" | "image" | "application" | "off" | undefined;
h264Profile?: "high" | "main" | "baseline" | undefined;
nbrOfChannels?: 1 | 2 | undefined;
}, {
camera: string;
resolution: string;
compression: number;
bitrateMode: "VBR" | "MBR" | "ABR";
maximumBitRate: number;
retentionTime: number;
bitRateLimit: number;
audio: 0 | 1;
fps: number;
govLength: number;
videoCodec: "h264" | "h265" | "av1";
overlays?: "text" | "all" | "image" | "application" | "off" | undefined;
h264Profile?: "high" | "main" | "baseline" | undefined;
nbrOfChannels?: 1 | 2 | undefined;
}>;
export type TInternalVapixParameters = z.infer<typeof internalVapixParametersSchema>;
export type TVideoCodec = TInternalVapixParameters['videoCodec'];
export type TOverlays = TInternalVapixParameters['overlays'];