@apocaliss92/nodelink-js 0.4.6 → 0.4.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -3350,13 +3350,34 @@ interface BaichuanRtspServerOptions {
3350
3350
  * - "rfc4571": RFC4571 framing: 2-byte length + RTP packet
3351
3351
  */
3352
3352
  tcpRtpFraming?: "rtsp-interleaved" | "rfc4571";
3353
- /** Credentials for RTSP authentication (optional) */
3353
+ /**
3354
+ * Credentials for RTSP authentication (optional).
3355
+ *
3356
+ * Each entry carries either the plaintext `password` or a pre-computed
3357
+ * Digest `ha1 = MD5(username ":" realm ":" password)`. The HA1 variant is
3358
+ * preferred when the consumer stores only hashed credentials (e.g. the
3359
+ * manager reuses dashboard-user HA1 values without ever holding plaintext).
3360
+ *
3361
+ * When both are supplied, `ha1` wins for Digest validation while `password`
3362
+ * is used for Basic authentication.
3363
+ */
3354
3364
  credentials?: Array<{
3355
3365
  username: string;
3356
3366
  password: string;
3367
+ ha1?: string;
3368
+ } | {
3369
+ username: string;
3370
+ password?: string;
3371
+ ha1: string;
3357
3372
  }>;
3358
3373
  /** Require authentication for RTSP connections (default: false if no credentials set) */
3359
3374
  requireAuth?: boolean;
3375
+ /**
3376
+ * Digest authentication realm advertised to clients. Must match the realm
3377
+ * used when pre-computing HA1 values in `credentials[*].ha1`.
3378
+ * Default: "BaichuanRtspServer" (kept for backward compatibility).
3379
+ */
3380
+ authRealm?: string;
3360
3381
  /**
3361
3382
  * External identifier for dedicated socket session.
3362
3383
  * When provided, a dedicated BaichuanClient is created for the stream,
@@ -3369,6 +3390,18 @@ interface BaichuanRtspServerOptions {
3369
3390
  * start() still performs metadata fetch and codec detection.
3370
3391
  */
3371
3392
  externalListener?: boolean;
3393
+ /**
3394
+ * When true, the server runs in **mux mode**: `start()` skips creating
3395
+ * or listening on any TCP server (a shared multiplexer — e.g.
3396
+ * `LocalRtspMux` — owns the public RTSP port and routes accepted sockets
3397
+ * here via `injectSocket()`). `stop()` likewise skips closing a TCP
3398
+ * server it does not own.
3399
+ *
3400
+ * Semantically equivalent to `externalListener: true`, but expressed from
3401
+ * the point of view of the multiplexer that will drive this instance.
3402
+ * Either flag is sufficient; both may be set together.
3403
+ */
3404
+ muxMode?: boolean;
3372
3405
  /**
3373
3406
  * Ms after the last RTSP client disconnects before stopping the native Baichuan stream.
3374
3407
  * 0 = keep the native stream running (matches rtsp proxy idle timeout 0 / always-mounted sources).
@@ -3380,6 +3413,18 @@ interface BaichuanRtspServerOptions {
3380
3413
  * 0 = disable. Default 15000 when nativeStreamIdleStopMs > 0, else 0.
3381
3414
  */
3382
3415
  nativeStreamPrimeIdleStopMs?: number;
3416
+ /**
3417
+ * When true, `start()` does NOT fetch stream metadata from the camera —
3418
+ * the metadata fetch is deferred to the first DESCRIBE. Useful for
3419
+ * battery / UDP cameras so binding the RTSP port at boot does not wake
3420
+ * them up when no client is listening.
3421
+ *
3422
+ * Trade-off: the very first DESCRIBE pays the metadata round-trip
3423
+ * latency. Subsequent connections hit the cached metadata.
3424
+ *
3425
+ * Default: false (keep existing behaviour).
3426
+ */
3427
+ lazyMetadata?: boolean;
3383
3428
  }
3384
3429
  /**
3385
3430
  * BaichuanRtspServer - RTSP server that serves a Baichuan video stream.
@@ -3417,6 +3462,7 @@ declare class BaichuanRtspServer extends EventEmitter<{
3417
3462
  private authNonces;
3418
3463
  private readonly AUTH_REALM;
3419
3464
  private readonly NONCE_TIMEOUT_MS;
3465
+ private readonly lazyMetadata;
3420
3466
  private connectedClients;
3421
3467
  private nativeStreamActive;
3422
3468
  private clientConnectionServer;
@@ -3436,10 +3482,20 @@ declare class BaichuanRtspServer extends EventEmitter<{
3436
3482
  private tempStreamGenerator;
3437
3483
  private nativeFanout;
3438
3484
  private noClientAutoStopTimer;
3485
+ /** Fires if camera never sends frames after stream start (sleeping), even with clients connected. */
3486
+ private noFrameDeadlineTimer;
3439
3487
  /** After last RTSP client; 0 = never auto-stop native stream. */
3440
3488
  private readonly nativeStreamIdleStopMs;
3441
3489
  /** Primed-but-no-PLAY timeout; 0 = disabled. */
3442
3490
  private readonly nativeStreamPrimeIdleStopMs;
3491
+ /**
3492
+ * Max time to wait for the first camera frame after stream start.
3493
+ * If no frames arrive within this window, the native stream is stopped
3494
+ * (camera is sleeping). Prevents the BaichuanVideoStream watchdog from
3495
+ * firing and waking the camera when no real viewer is watching.
3496
+ * 0 = disabled. Defaults to nativeStreamPrimeIdleStopMs * 2 when > 0.
3497
+ */
3498
+ private readonly nativeStreamNoFrameDeadlineMs;
3443
3499
  private readonly PREBUFFER_MAX_MS;
3444
3500
  private prebuffer;
3445
3501
  private static isAdtsAacFrame;
@@ -3450,6 +3506,8 @@ declare class BaichuanRtspServer extends EventEmitter<{
3450
3506
  private static splitAnnexBNals;
3451
3507
  private static stripAdtsHeader;
3452
3508
  constructor(options: BaichuanRtspServerOptions);
3509
+ /** Number of currently connected RTSP clients. */
3510
+ get clientCount(): number;
3453
3511
  /**
3454
3512
  * Generate a new nonce for Digest authentication
3455
3513
  */
@@ -3475,6 +3533,7 @@ declare class BaichuanRtspServer extends EventEmitter<{
3475
3533
  */
3476
3534
  private generateWwwAuthenticateHeader;
3477
3535
  private clearNoClientAutoStopTimer;
3536
+ private clearNoFrameDeadlineTimer;
3478
3537
  private setFlowVideoType;
3479
3538
  /**
3480
3539
  * Start the RTSP server.
@@ -3487,6 +3546,21 @@ declare class BaichuanRtspServer extends EventEmitter<{
3487
3546
  * @param initialBuffer - Any bytes already read during path parsing/auth
3488
3547
  */
3489
3548
  acceptConnection(socket: net.Socket, initialBuffer?: Buffer): void;
3549
+ /**
3550
+ * Inject an already-accepted client socket from a multiplexer
3551
+ * (e.g. `LocalRtspMux`) that owns the listening port.
3552
+ *
3553
+ * The mux reads the first RTSP request line to determine the target path,
3554
+ * then hands the socket over. Any bytes already consumed during routing
3555
+ * are replayed back onto the socket via `unshift()` so the RTSP parser in
3556
+ * `handleRtspConnection` sees the complete original request.
3557
+ *
3558
+ * @param socket - Client TCP socket, already accepted by the mux.
3559
+ * @param preReadData - Bytes the mux has already pulled off the socket
3560
+ * while parsing the request line. Replayed via `socket.unshift()`
3561
+ * before any further reads.
3562
+ */
3563
+ injectSocket(socket: net.Socket, preReadData: Buffer): void;
3490
3564
  /**
3491
3565
  * Handle RTSP connection from a client.
3492
3566
  */
@@ -4239,6 +4313,13 @@ declare class ReolinkBaichuanApi {
4239
4313
  * - "replay:XXX" - dedicated per replay session
4240
4314
  */
4241
4315
  private readonly socketPool;
4316
+ /**
4317
+ * Consecutive stream-start (cmdId=3) timeout counter per socket tag.
4318
+ * When a streaming socket has N consecutive timeouts, the socket is force-closed
4319
+ * so the next attempt creates a fresh connection. Resets on success.
4320
+ */
4321
+ private readonly consecutiveStreamTimeouts;
4322
+ private static readonly MAX_CONSECUTIVE_STREAM_TIMEOUTS;
4242
4323
  /** BaichuanClientOptions to use when creating new sockets */
4243
4324
  private readonly clientOptions;
4244
4325
  /**
@@ -4354,7 +4435,17 @@ declare class ReolinkBaichuanApi {
4354
4435
  private statePollingInterval;
4355
4436
  private udpSleepInferenceInterval;
4356
4437
  private readonly udpLastInferredSleepStateByChannel;
4438
+ /**
4439
+ * Per-channel pending sleep-state candidate for hysteresis.
4440
+ * When the inference flips to a new state we require N consecutive polls
4441
+ * of that same state before committing it — this filters out transient
4442
+ * flapping caused by non-waking traffic drifting in/out of the 10 s
4443
+ * getSleepStatus() observation window during stream teardown.
4444
+ */
4445
+ private readonly udpPendingSleepStateByChannel;
4357
4446
  private readonly udpSleepInferenceIntervalMs;
4447
+ /** Consecutive inference polls required to commit a new sleeping/awake state. */
4448
+ private readonly udpSleepInferenceHysteresisPolls;
4358
4449
  private lastMotionState;
4359
4450
  private lastAiState;
4360
4451
  private aiStatePollingDisabled;
@@ -4383,6 +4474,14 @@ declare class ReolinkBaichuanApi {
4383
4474
  */
4384
4475
  private readonly deviceCapabilitiesCache;
4385
4476
  private static readonly CAPABILITIES_CACHE_TTL_MS;
4477
+ /**
4478
+ * Dedupe key for battery push events (cmd_id 252), per channel.
4479
+ * Cameras emit BatteryInfoList frequently while streaming (every few
4480
+ * seconds). We only forward an event when the meaningful fields change
4481
+ * (percent, chargeStatus, adapterStatus) to avoid flooding SSE/MQTT
4482
+ * consumers and the UI event log.
4483
+ */
4484
+ private readonly lastBatteryPushKey;
4386
4485
  /** Keep replay/streaming sockets warm briefly to reduce clip switch latency. */
4387
4486
  private static readonly SOCKET_POOL_KEEPALIVE_MS;
4388
4487
  /**
@@ -5722,6 +5821,22 @@ declare class ReolinkBaichuanApi {
5722
5821
  * 2. **Storm**: ≥3 D2C_DISCs within 60 s triggers extended cooldown (120 s).
5723
5822
  */
5724
5823
  private notifyD2cDisc;
5824
+ /**
5825
+ * Find the socket pool tag for a given BaichuanClient instance.
5826
+ * Returns undefined if the client is not in the pool (e.g. it's the general socket used directly).
5827
+ */
5828
+ private findSocketTagForClient;
5829
+ /**
5830
+ * Reset the consecutive stream-start timeout counter for a streaming socket.
5831
+ * Called on successful stream start.
5832
+ */
5833
+ private resetStreamTimeoutCounter;
5834
+ /**
5835
+ * Track a stream-start timeout on a streaming socket.
5836
+ * After MAX_CONSECUTIVE_STREAM_TIMEOUTS consecutive timeouts, force-close the
5837
+ * socket so the next attempt creates a fresh connection.
5838
+ */
5839
+ private trackStreamTimeout;
5725
5840
  /**
5726
5841
  * Best-effort sleeping inference for battery/BCUDP cameras.
5727
5842
  *
@@ -7455,6 +7570,64 @@ declare function computeDeviceCapabilities(params: {
7455
7570
  */
7456
7571
  declare function xmlIndicatesFloodlight(xml: string): boolean;
7457
7572
 
7573
+ /**
7574
+ * Pure helpers for the UDP sleep-state inference running inside
7575
+ * `ReolinkBaichuanApi.startUdpSleepInference()`.
7576
+ *
7577
+ * The inference polls `getSleepStatus()` every 2 s. That helper reads a rolling
7578
+ * 10 s tx/rx-history window and infers whether the battery camera is asleep or
7579
+ * awake. During stream teardown or idle-disconnect sequences, non-waking
7580
+ * keepalive / battery-info traffic drifts in and out of the window, which can
7581
+ * cause the inferred state to flap rapidly:
7582
+ *
7583
+ * awake → sleeping → awake → sleeping → awake → ...
7584
+ *
7585
+ * Emitting every flap as a `sleeping`/`awake` event floods downstream consumers
7586
+ * (events-manager, MQTT, Home Assistant) with phantom state changes even
7587
+ * though the camera has not been touched. Hysteresis smooths this out: a new
7588
+ * state must be observed on N consecutive polls before it is committed and an
7589
+ * event is emitted. N=2 adds a 2 s detection latency (acceptable for battery
7590
+ * cameras) while eliminating single-poll noise entirely.
7591
+ */
7592
+
7593
+ interface SleepInferencePending {
7594
+ state: SleepState;
7595
+ count: number;
7596
+ }
7597
+ interface SleepInferenceInput {
7598
+ /** State returned by the current getSleepStatus() poll — must not be "unknown". */
7599
+ inferred: Exclude<SleepState, "unknown">;
7600
+ /** Previously committed state (undefined = first observation after inference start). */
7601
+ committed: SleepState | undefined;
7602
+ /** Pending candidate state and consecutive match count, if any. */
7603
+ pending: SleepInferencePending | undefined;
7604
+ /** Consecutive polls of the same inferred state required to commit. */
7605
+ hysteresisPolls: number;
7606
+ }
7607
+ interface SleepInferenceDecision {
7608
+ /** The event to dispatch, or null if no event should fire this poll. */
7609
+ emit: "sleeping" | "awake" | null;
7610
+ /** New committed state to store (never "unknown"). */
7611
+ nextCommitted: SleepState;
7612
+ /** New pending candidate to store, or undefined to clear it. */
7613
+ nextPending: SleepInferencePending | undefined;
7614
+ }
7615
+ /**
7616
+ * Decide whether a new sleep-inference poll should emit an event, given the
7617
+ * previously committed state and any pending hysteresis candidate.
7618
+ *
7619
+ * Rules:
7620
+ * 1. First observation (committed === undefined): always adopt as committed.
7621
+ * Emit "sleeping" but not "awake" — awake is the implicit default, so
7622
+ * emitting on startup would be noisy.
7623
+ * 2. Inferred matches committed: stable, clear any pending candidate.
7624
+ * 3. Inferred differs from committed but matches the pending candidate:
7625
+ * increment count. When count reaches hysteresisPolls, commit and emit.
7626
+ * 4. Inferred differs from committed AND from any pending candidate:
7627
+ * restart the candidate at count=1 (does not emit).
7628
+ */
7629
+ declare function decideSleepInferenceTransition(input: SleepInferenceInput): SleepInferenceDecision;
7630
+
7458
7631
  type RtspStreamProfile = "main" | "sub" | "ext";
7459
7632
  declare function buildRtspPath(channel: number, stream: RtspStreamProfile): string;
7460
7633
  declare function buildRtspUrl(params: {
@@ -7646,6 +7819,8 @@ declare function createNativeStream(api: ReolinkBaichuanApi, channel: number, pr
7646
7819
  variant?: NativeVideoStreamVariant;
7647
7820
  /** Optional dedicated BaichuanClient for stream isolation. When omitted, uses api.client (shared). */
7648
7821
  client?: BaichuanClient;
7822
+ /** Cancellation signal — aborting wakes the idle sleep and exits the generator promptly. */
7823
+ signal?: AbortSignal;
7649
7824
  }): AsyncGenerator<{
7650
7825
  audio: boolean;
7651
7826
  data: Buffer;
@@ -8019,6 +8194,15 @@ declare function createReplayHttpServer(options: ReplayHttpServerOptions): Promi
8019
8194
  * get IDR-aligned fast startup without waiting for the next keyframe.
8020
8195
  */
8021
8196
 
8197
+ type NativeFrame = {
8198
+ audio: boolean;
8199
+ data: Buffer;
8200
+ codec: string | null;
8201
+ sampleRate: number | null;
8202
+ microseconds: number | null;
8203
+ videoType?: "H264" | "H265";
8204
+ isKeyframe?: boolean;
8205
+ };
8022
8206
  interface Go2rtcTcpServerOptions {
8023
8207
  /** API instance (required). */
8024
8208
  api: ReolinkBaichuanApi;
@@ -8046,6 +8230,13 @@ interface Go2rtcTcpServerOptions {
8046
8230
  prebufferMs?: number;
8047
8231
  /** Maximum write buffer per client before dropping the connection (default: 100 MB). */
8048
8232
  maxBufferBytes?: number;
8233
+ /**
8234
+ * Stream inactivity timeout in ms. If no frames arrive from the native
8235
+ * stream for this duration, the stream is considered dead and will be
8236
+ * torn down + restarted (similar to go2rtc's per-packet read deadline).
8237
+ * Default: 15 000 (15s). Set to 0 to disable.
8238
+ */
8239
+ streamTimeoutMs?: number;
8049
8240
  /**
8050
8241
  * When true, the native camera stream is started immediately on start()
8051
8242
  * rather than waiting for the first TCP client. This ensures frames are
@@ -8075,6 +8266,7 @@ declare class Go2rtcTcpServer extends EventEmitter<{
8075
8266
  private readonly gracePeriodMs;
8076
8267
  private readonly prebufferMaxMs;
8077
8268
  private readonly maxBufferBytes;
8269
+ private readonly streamTimeoutMs;
8078
8270
  private readonly prestartStream;
8079
8271
  private active;
8080
8272
  private server;
@@ -8086,7 +8278,12 @@ declare class Go2rtcTcpServer extends EventEmitter<{
8086
8278
  private connectedClients;
8087
8279
  private clientSockets;
8088
8280
  private stopGraceTimer;
8281
+ private lastFrameAt;
8282
+ private streamHealthTimer;
8283
+ private totalFramesReceived;
8284
+ private totalVideoFramesWritten;
8089
8285
  private prebuffer;
8286
+ private audioInfo;
8090
8287
  constructor(options: Go2rtcTcpServerOptions);
8091
8288
  /** Start listening. Resolves once the TCP server is bound. */
8092
8289
  start(): Promise<void>;
@@ -8098,24 +8295,120 @@ declare class Go2rtcTcpServer extends EventEmitter<{
8098
8295
  get go2rtcSourceUrl(): string | undefined;
8099
8296
  /** Number of currently connected clients. */
8100
8297
  get clientCount(): number;
8298
+ /**
8299
+ * Subscribe to the raw native stream for diagnostic purposes.
8300
+ * The subscriber receives the same frames the MPEG-TS muxer consumes
8301
+ * (pre-muxing). Counts as a "consumer" so the native stream is kept alive
8302
+ * for the lifetime of the subscription. If the stream is not already
8303
+ * running (battery camera, prestart=false), this starts it.
8304
+ */
8305
+ subscribeDiagnostic(id: string): Promise<AsyncGenerator<NativeFrame, void, unknown>>;
8306
+ /** Unsubscribe a diagnostic session and release its consumer slot. */
8307
+ unsubscribeDiagnostic(id: string): void;
8308
+ /**
8309
+ * Returns ADTS AAC audio metadata detected from the native stream, or
8310
+ * null if no audio frame has been observed yet (e.g. video-only cameras
8311
+ * or before the first audio packet arrives).
8312
+ */
8313
+ getAudioInfo(): {
8314
+ codec: "aac-adts";
8315
+ sampleRate: number;
8316
+ channels: number;
8317
+ configHex: string;
8318
+ } | null;
8101
8319
  private handleClient;
8102
8320
  private feedClient;
8103
8321
  /**
8104
- * Convert a native frame to wire-ready Annex-B.
8105
- * Audio frames are skipped raw TCP carries only video (Annex-B).
8106
- * go2rtc auto-detects the codec from SPS/PPS/VPS NALUs.
8322
+ * Convert a native video frame to Annex-B.
8323
+ * Returns null for audio frames (handled separately by muxAudio).
8107
8324
  */
8108
- private convertFrame;
8325
+ private convertVideoFrame;
8109
8326
  /** Check if an Annex-B buffer contains a keyframe (IDR for H.264, IRAP for H.265). */
8110
8327
  private isAnnexBKeyframe;
8111
8328
  /** Split Annex-B byte stream into individual NAL units. */
8112
8329
  private static splitAnnexBNals;
8330
+ /** True if `b` starts with an ADTS AAC syncword (0xFFF). */
8331
+ private static isAdtsAacFrame;
8332
+ /**
8333
+ * Parse an ADTS header into {sampleRate, channels, AudioSpecificConfig hex}.
8334
+ * Returns null when the buffer is not a valid ADTS frame.
8335
+ */
8336
+ private static parseAdtsSamplingInfo;
8113
8337
  private startNativeStream;
8114
8338
  private stopNativeStream;
8339
+ private startStreamHealthMonitor;
8340
+ private stopStreamHealthMonitor;
8115
8341
  private removeClient;
8116
8342
  private scheduleStop;
8117
8343
  }
8118
8344
 
8345
+ /**
8346
+ * MPEG-TS Muxer for H.264/H.265 video + ADTS AAC audio.
8347
+ *
8348
+ * Produces 188-byte MPEG-TS packets suitable for feeding to go2rtc via a
8349
+ * plain TCP connection (`tcp://127.0.0.1:{port}`). go2rtc auto-detects the
8350
+ * container format from the 0x47 sync byte and extracts both video and audio.
8351
+ *
8352
+ * Stream layout:
8353
+ * PID 0x0000 — PAT (Program Association Table)
8354
+ * PID 0x1000 — PMT (Program Map Table)
8355
+ * PID 0x0100 — Video elementary stream (H.264 or H.265, Annex-B)
8356
+ * PID 0x0101 — Audio elementary stream (AAC-ADTS, stream type 0x0F)
8357
+ *
8358
+ * Each `MpegTsMuxer` instance is independent: continuity counters are
8359
+ * per-instance so multiple concurrent streams do not corrupt each other.
8360
+ *
8361
+ * Usage:
8362
+ * const muxer = new MpegTsMuxer({ videoType: "H265", includeAudio: true });
8363
+ * const tsBytes = muxer.muxVideo(annexBBuffer, ptsUs, isKeyframe);
8364
+ * const tsBytes = muxer.muxAudio(adtsBuffer, ptsUs);
8365
+ */
8366
+ interface MpegTsMuxerOptions {
8367
+ /** Video codec type. */
8368
+ videoType: "H264" | "H265";
8369
+ /**
8370
+ * Whether to include an audio PID (0x0101) in the PMT.
8371
+ * When true, audio frames muxed via muxAudio() are wrapped in PES packets
8372
+ * on PID 0x0101 (AAC-ADTS, stream type 0x0F).
8373
+ * Default: true.
8374
+ */
8375
+ includeAudio?: boolean;
8376
+ }
8377
+ /**
8378
+ * Stateful MPEG-TS muxer. Each instance has its own continuity counters —
8379
+ * create one per output stream (or per client connection for prebuffer replay).
8380
+ */
8381
+ declare class MpegTsMuxer {
8382
+ private readonly videoStreamType;
8383
+ private readonly includeAudio;
8384
+ private patCc;
8385
+ private pmtCc;
8386
+ private videoCc;
8387
+ private audioCc;
8388
+ private framesSinceTableSend;
8389
+ private tablesSent;
8390
+ constructor(options: MpegTsMuxerOptions);
8391
+ /**
8392
+ * Mux a video frame (Annex-B H.264 or H.265) into MPEG-TS packets.
8393
+ * PAT and PMT are emitted before keyframes and periodically.
8394
+ *
8395
+ * @param annexBData - Annex-B video data (with start codes)
8396
+ * @param ptsUs - Presentation timestamp in microseconds
8397
+ * @param isKeyframe - Whether this is an IDR / IRAP frame
8398
+ */
8399
+ muxVideo(annexBData: Buffer, ptsUs: number, isKeyframe: boolean): Buffer;
8400
+ /**
8401
+ * Mux an audio frame (ADTS AAC) into MPEG-TS packets.
8402
+ * Returns an empty Buffer when includeAudio is false.
8403
+ *
8404
+ * @param adtsData - Raw ADTS AAC frame (starting with 0xFF 0xF1/0xF9 syncword)
8405
+ * @param ptsUs - Presentation timestamp in microseconds
8406
+ */
8407
+ muxAudio(adtsData: Buffer, ptsUs: number): Buffer;
8408
+ /** Reset all continuity counters and table state (e.g. after stream restart). */
8409
+ reset(): void;
8410
+ }
8411
+
8119
8412
  /**
8120
8413
  * Baichuan HTTP Stream Server - Serves a Baichuan video stream over HTTP (MPEG-TS).
8121
8414
  * A simpler alternative to an RTSP server.
@@ -9088,4 +9381,4 @@ declare class CompositeRtspServer extends EventEmitter<{
9088
9381
  getClientCount(): number;
9089
9382
  }
9090
9383
 
9091
- export { type AIDetectionState, type AIEvent, type AIState, type AbilityInfo, type AccessUserListConfig, AesStreamDecryptor, type AiAlarmConfig, type AiConfig, type AiDenoiseConfig, type AiKey, type AiTypesCacheEntry, type AnyBuffer, type AudioAlarmParams, type AudioCfgConfig, type AudioConfig, type AudioTaskConfig, type AutoDetectInputs, type AutoDetectMode, type AutoDetectResult, AutodiscoveryClient, type AutodiscoveryClientOptions, BC_AES_IV, BC_CLASS_FILE_DOWNLOAD, BC_CLASS_LEGACY, BC_CLASS_MODERN_20, BC_CLASS_MODERN_24, BC_CLASS_MODERN_24_ALT, BC_CMD_ID_ABILITY_INFO, BC_CMD_ID_ALARM_EVENT_LIST, BC_CMD_ID_AUDIO_ALARM_PLAY, BC_CMD_ID_CHANNEL_INFO_ALL, BC_CMD_ID_CMD_123, BC_CMD_ID_CMD_209, BC_CMD_ID_CMD_265, BC_CMD_ID_CMD_440, BC_CMD_ID_COVER_PREVIEW, BC_CMD_ID_COVER_RESPONSE, BC_CMD_ID_COVER_STANDALONE_458, BC_CMD_ID_COVER_STANDALONE_459, BC_CMD_ID_COVER_STANDALONE_460, BC_CMD_ID_COVER_STANDALONE_461, BC_CMD_ID_COVER_STANDALONE_462, BC_CMD_ID_DING_DONG_CTRL, BC_CMD_ID_DING_DONG_OPT, BC_CMD_ID_FILE_INFO_LIST_CLOSE, BC_CMD_ID_FILE_INFO_LIST_DL_VIDEO, BC_CMD_ID_FILE_INFO_LIST_DOWNLOAD, BC_CMD_ID_FILE_INFO_LIST_GET, BC_CMD_ID_FILE_INFO_LIST_OPEN, BC_CMD_ID_FILE_INFO_LIST_REPLAY, BC_CMD_ID_FILE_INFO_LIST_STOP, BC_CMD_ID_FIND_REC_VIDEO_CLOSE, BC_CMD_ID_FIND_REC_VIDEO_GET, BC_CMD_ID_FIND_REC_VIDEO_OPEN, BC_CMD_ID_FLOODLIGHT_STATUS_LIST, BC_CMD_ID_GET_ABILITY_SUPPORT, BC_CMD_ID_GET_ACCESS_USER_LIST, BC_CMD_ID_GET_AI_ALARM, BC_CMD_ID_GET_AI_CFG, BC_CMD_ID_GET_AI_DENOISE, BC_CMD_ID_GET_AUDIO_ALARM, BC_CMD_ID_GET_AUDIO_CFG, BC_CMD_ID_GET_AUDIO_TASK, BC_CMD_ID_GET_BATTERY_INFO, BC_CMD_ID_GET_BATTERY_INFO_LIST, BC_CMD_ID_GET_DAY_NIGHT_THRESHOLD, BC_CMD_ID_GET_DAY_RECORDS, BC_CMD_ID_GET_DING_DONG_CFG, BC_CMD_ID_GET_DING_DONG_LIST, BC_CMD_ID_GET_DING_DONG_SILENT, BC_CMD_ID_GET_EMAIL_TASK, BC_CMD_ID_GET_FTP_TASK, BC_CMD_ID_GET_HDD_INFO_LIST, BC_CMD_ID_GET_KIT_AP_CFG, BC_CMD_ID_GET_LED_STATE, BC_CMD_ID_GET_MOTION_ALARM, BC_CMD_ID_GET_ONLINE_USER_LIST, BC_CMD_ID_GET_OSD_DATETIME, BC_CMD_ID_GET_PIR_INFO, BC_CMD_ID_GET_PTZ_POSITION, BC_CMD_ID_GET_PTZ_PRESET, BC_CMD_ID_GET_RECORD, BC_CMD_ID_GET_RECORD_CFG, BC_CMD_ID_GET_REC_ENC_CFG, BC_CMD_ID_GET_SIREN_STATUS, BC_CMD_ID_GET_SLEEP_STATE, BC_CMD_ID_GET_STREAM_INFO_LIST, BC_CMD_ID_GET_SUPPORT, BC_CMD_ID_GET_SYSTEM_GENERAL, BC_CMD_ID_GET_TIMELAPSE_CFG, BC_CMD_ID_GET_VIDEO_INPUT, BC_CMD_ID_GET_WHITE_LED, BC_CMD_ID_GET_WIFI, BC_CMD_ID_GET_WIFI_SIGNAL, BC_CMD_ID_GET_ZOOM_FOCUS, BC_CMD_ID_LOGIN, BC_CMD_ID_LOGOUT, BC_CMD_ID_PING, BC_CMD_ID_PTZ_CONTROL, BC_CMD_ID_PTZ_CONTROL_PRESET, BC_CMD_ID_PUSH_COORDINATE_POINT_LIST, BC_CMD_ID_PUSH_DINGDONG_LIST, BC_CMD_ID_PUSH_NET_INFO, BC_CMD_ID_PUSH_SERIAL, BC_CMD_ID_PUSH_SLEEP_STATUS, BC_CMD_ID_PUSH_VIDEO_INPUT, BC_CMD_ID_QUICK_REPLY_PLAY, BC_CMD_ID_SET_AI_ALARM, BC_CMD_ID_SET_AI_CFG, BC_CMD_ID_SET_AUDIO_TASK, BC_CMD_ID_SET_DING_DONG_CFG, BC_CMD_ID_SET_DING_DONG_SILENT, BC_CMD_ID_SET_MOTION_ALARM, BC_CMD_ID_SET_PIR_INFO, BC_CMD_ID_SET_WHITE_LED_STATE, BC_CMD_ID_SET_WHITE_LED_TASK, BC_CMD_ID_SET_ZOOM_FOCUS, BC_CMD_ID_SUPPORT, BC_CMD_ID_TALK, BC_CMD_ID_TALK_ABILITY, BC_CMD_ID_TALK_CONFIG, BC_CMD_ID_TALK_RESET, BC_CMD_ID_UDP_KEEP_ALIVE, BC_CMD_ID_VIDEO, BC_CMD_ID_VIDEO_STOP, BC_MAGIC, BC_MAGIC_REV, BC_TCP_DEFAULT_PORT, BC_XML_KEY, type BaichuanCachedPush, BaichuanClient, type BaichuanClientOptions, type BaichuanCoordinatePointListPush, type BaichuanDingdongListPush, type BaichuanEndpointsServerOptions, BaichuanEventEmitter, type BaichuanFrame, BaichuanFrameParser, type BaichuanGetOsdDatetimeResult, type BaichuanHeader, BaichuanHlsServer, type BaichuanHlsServerOptions, BaichuanHttpStreamServer, type BaichuanHttpStreamServerOptions, type BaichuanLedState, BaichuanMjpegServer, type BaichuanMjpegServerOptions, type BaichuanNetInfoPush, type BaichuanOsdChannelName, type BaichuanOsdDatetime, type BaichuanRecordCfg, type BaichuanRecordSchedule, BaichuanRtspServer, type BaichuanRtspServerOptions, type BaichuanSerialPush, type BaichuanSettingsPushCacheEntry, type BaichuanSleepState, type BaichuanSleepStatusPush, type BaichuanStreamEncodeTable, type BaichuanStreamInfo, type BaichuanStreamInfoList, type BaichuanTransport, type BaichuanVideoInputPush, BaichuanVideoStream, type BaichuanVideoStreamOptions, BaichuanWebRTCServer, type BaichuanWebRTCServerOptions, type BaichuanWifi, type BaichuanWifiSignal, type BatteryInfo, type BatteryInfoResponse, type BcMedia, type BcMediaAac, type BcMediaAdpcm, BcMediaAnnexBDecoder, type BcMediaAnnexBDecoderStats, type BcMediaAnnexBInfo, type BcMediaAudioFrame, type BcMediaAudioType, BcMediaCodec, type BcMediaIframe, type BcMediaInfoV1, type BcMediaInfoV2, type BcMediaPframe, type BcMediaType, type BcMediaVideoFrame, type BcMediaVideoType, type BcUdpDiscoveryMethod, BcUdpStream, type BcUdpStreamOptions, type CgiAbility, type CgiAbilityChn, type CgiAbilityLeaf, type CgiAiKey, type CgiAiStateValue, type CgiAudioAlarmPlayParam, type CgiBattery, type CgiChannelStatusEntry, type CgiChnTypeInfoValue, type CgiDetectionState, type CgiDevInfo, type CgiDeviceInfoEntries, type CgiEnc, type CgiEncStream, type CgiEncValue, type CgiGetAbilityResponse, type CgiGetAbilityValue, type CgiGetAiStateResponse, type CgiGetChannelstatusResponse, type CgiGetChannelstatusValue, type CgiGetChnTypeInfoResponse, type CgiGetDevInfoResponse, type CgiGetDevInfoValue, type CgiGetEncResponse, type CgiGetOsdValue, type CgiGetRtspUrlResponse, type CgiGetRtspUrlValue, type CgiGetVideoclipsParams, type CgiNetPort, type CgiOsd, type CgiPirInfo, type CgiPtzPreset, type CgiSetOsdParam, type CgiSetPirInfoParam, type CgiSetWhiteLedParam, type CgiWhiteLed, type ChannelPushCacheEntry, type ChannelPushDataEntry, type ChannelRecordingFile, type ChannelStreamMetadata, type ChimeAlarmCfg, type ChimeCfg, type ChimeDevice, type ChimeParams, type CollectNvrDiagnosticsOptions, CompositeRtspServer, type CompositeRtspServerOptions, CompositeStream, type CompositeStreamOptions, type CompositeStreamPipOptions, DUAL_LENS_DUAL_MOTION_MODELS, DUAL_LENS_MODELS, DUAL_LENS_SINGLE_MOTION_MODELS, type DayNightThresholdConfig, type DebugConfig, type DebugOptions, type DeviceAbilities, type DeviceCapabilities, type DeviceCapabilitiesCacheEntry, type DeviceCapabilitiesDebugInfo, type DeviceCapabilitiesResult, type DeviceInfoResponse, type DeviceInputData, type DeviceObjectType, type DeviceStatusResponse, type DeviceSupportFlags, type DeviceType, type DiagnosticsCollectorResult, type DiagnosticsStreamKind, type DiscoveredDevice, type DiscoveryOptions, type DownloadRecordingParams, type DualLensChannelAnalysis, type DualLensChannelInfo, type EmailTaskConfig, type EncryptionProtocol, type Events, type EventsResponse, type FloodlightTaskConfig, type FtpTaskConfig, type GetRecordingVideoResult, type GetRecordingVideoStats, type GetVideoclipsParams, type GetVodUrlParams, Go2rtcTcpServer, type Go2rtcTcpServerOptions, H264RtpDepacketizer, H265RtpDepacketizer, type HardwiredChimeState, type HddInfoListConfig, type HlsCodec, type HlsHttpResponse, type HlsServerStatus, type HlsSession, HlsSessionManager, type HlsSessionManagerOptions, type HlsSessionParams, Intercom, type IntercomOptions, type JsonObject, type JsonPrimitive, type JsonValue, type LastSleepProbe, type LogLevel, type Logger, type LoggerCallback, type LoginResponseValue, type MaxEncryption, type MediaStream, type MjpegFrame, MjpegTransformer, type MjpegTransformerOptions, type ModelFixtureCaptureResult, type MotionAlarmConfig, type MotionEvent, NVR_HUB_EXACT_TYPES, NVR_HUB_MODEL_PATTERNS, type NativeVideoStreamVariant, type NvrChannelsSummaryCacheEntry, type OnlineUserListConfig, type OsdChannel, type OsdConfig, type OsdTime, type ParsedRecordingFileName, type PipPosition, type PirConfig, type PirState, type PlaybackSnapshotStreamInfo, type PtzCommand, type PtzPosition, type PtzPreset, type RecEncConfig, type RecordingAudioCodec, type RecordingDetectionClass, type RecordingDevType, type RecordingFile, type RecordingPlaybackUrls, type RecordingStreamType, type RecordingVideoCodec, type RecordingVodFlags, type RecordingVodStreamHint, type RecordingsCacheEntry, type RecordingsQueueItem, type ReolinkAiNotification, ReolinkBaichuanApi, type ReolinkBaichuanChannelIdentity, type ReolinkBaichuanChannelInfo, type ReolinkBaichuanDeviceSummary, type ReolinkBaichuanNetworkInfo, type ReolinkBaichuanPorts, ReolinkCgiApi, type ReolinkCmdRequest, type ReolinkCmdResponse, type ReolinkCmdResponseExt, type ReolinkDayNightNotification, type ReolinkDeviceInfo, type ReolinkDeviceInfoTag, type ReolinkEvent, ReolinkHttpClient, type ReolinkHttpClientOptions, type ReolinkJson, type ReolinkMotionNotification, type ReolinkNvrChannelInfo, type ReolinkNvrDeviceGroupSummary, type ReolinkNvrDeviceGroupsResult, type ReolinkSimpleEvent, type ReolinkSimpleEventType, type ReolinkSupportedStream, type ReolinkVideoStreamOptionsResult, type ReolinkVisitorNotification, type ReplayHttpServer, type ReplayHttpServerOptions, type ResponseMediaStreamOptions, type Rfc4571ApiFactoryContext, type Rfc4571Client, Rfc4571Muxer, type Rfc4571ReplayServer, type Rfc4571ReplayServerOptions, type Rfc4571TcpServer, type Rfc4571TcpServerOptions, type RtpPacketizationOptions, type RtspCreateOptions, type RtspProxyServerOptions, type RtspStreamProfile, type RunAllDiagnosticsConsecutivelyParams, type RunAllDiagnosticsConsecutivelyResult, type RunMultifocalDiagnosticsConsecutivelyParams, type RunMultifocalDiagnosticsConsecutivelyResult, type SirenState, type SirenStatusConfig, type SleepState, type SleepStatus, type StreamMetadata, type StreamProfile, type StreamSamplingOptions, type StreamSamplingSelection, type SupportConfig, type SupportInfo, type SupportItem, type SystemGeneralConfig, type TalkAbility$1 as TalkAbility, type TalkAudioConfig, type TalkConfig, type TalkSession$1 as TalkSession, type TalkSessionInfo, type TimelapseCfgConfig, type TwoWayAudioConfig, type VideoCodec, type VideoInputConfig, type VideoParamSets, type VideoStreamOptions, type VideoStreamOptionsCacheEntry, type VideoType, type VideoclipClientInfo, type VideoclipModeDecision, type VideoclipThumbnailResult, type VideoclipTranscodeMode, type VodFile, type VodSearchResponse, type VodSearchResult, type VodSearchStatus, type WakeUpOptions, type WebRTCAnswer, type WebRTCIceCandidate, type WebRTCOffer, type WebRTCSessionInfo, type WhiteLedConfig, type WhiteLedState, type WirelessChimeSilentState, type ZoomFocusStatus, type ZoomFocusTriplet, abilitiesHasAny, aesDecrypt, aesEncrypt, asLogger, autoDetectDeviceType, bcDecrypt, bcEncrypt, bcHeaderHasPayloadOffset, buildAacAudioSpecificConfigHex, buildAbilityInfoExtensionXml, buildBinaryExtensionXml, buildChannelExtensionXml, buildFloodlightManualXml, buildHlsRedirectUrl, buildLoginXml, buildLogoutXml, buildPreviewStopXml, buildPreviewStopXmlV11, buildPreviewXml, buildPreviewXmlV11, buildPtzControlXml, buildPtzPresetXml, buildPtzPresetXmlV2, buildRfc4571Sdp, buildRtspPath, buildRtspUrl, buildSirenManualXml, buildSirenTimesXml, buildStartZoomFocusXml, buildWhiteLedStateXml, captureModelFixtures, collectCgiDiagnostics, collectMultifocalDiagnostics, collectNativeDiagnostics, collectNvrDiagnostics, computeDeviceCapabilities, computeExpectedStreamCompatibility, convertToAnnexB as convertH265ToAnnexB, convertToAnnexB$1 as convertToAnnexB, convertToLengthPrefixed, createBaichuanEndpointsServer, createDebugGateLogger, createDiagnosticsBundle, createLogger, createMjpegBoundary, createNativeStream, createNullLogger, createReplayHttpServer, createRfc4571TcpServer, createRfc4571TcpServerForReplay, createRtspProxyServer, createTaggedLogger, decideVideoclipTranscodeMode, decodeHeader, deriveAesKey, detectIosClient, detectVideoCodecFromNal, discoverReolinkDevices, discoverViaArpTable, discoverViaDhcpListener, discoverViaHttpScan, discoverViaOnvif, discoverViaTcpPortScan, discoverViaUdpBroadcast, discoverViaUdpDirect, encodeHeader, extractH264ParamSetsFromAccessUnit, extractH265ParamSetsFromAccessUnit, extractPpsFromAnnexB, extractSpsFromAnnexB, extractVpsFromAnnexB, flattenAbilitiesForChannel, formatMjpegFrame, getConstructedVideoStreamOptions, getGlobalLogger, getH265NalType, getMjpegContentType, getSupportItemForChannel, getVideoStream, getVideoclipClientInfo, getXmlText, hasStartCodes as hasH265StartCodes, hasStartCodes$1 as hasStartCodes, isDualLenseModel, isH264KeyframeAnnexB, isH265Irap, isH265KeyframeAnnexB, isNvrHubModel, isTcpFailureThatShouldFallbackToUdp, isValidH264AnnexBAccessUnit, isValidH265AnnexBAccessUnit, maskUid, md5HexUpper, md5StrModern, normalizeUid, packetizeAacAdtsFrame, packetizeAacRawFrame, packetizeH264, packetizeH265, parseAdtsHeader, parseBcMedia, parseRecordingFileName, parseSupportXml, printNvrDiagnostics, runAllDiagnosticsConsecutively, runMultifocalDiagnosticsConsecutively, sampleStreams, sanitizeFixtureData, setGlobalLogger, splitAnnexBToNalPayloads$1 as splitAnnexBToNalPayloads, splitAnnexBToNals, splitAnnexBToNalPayloads as splitH265AnnexBToNalPayloads, testChannelStreams, xmlEscape, xmlIndicatesFloodlight, zipDirectory };
9384
+ export { type AIDetectionState, type AIEvent, type AIState, type AbilityInfo, type AccessUserListConfig, AesStreamDecryptor, type AiAlarmConfig, type AiConfig, type AiDenoiseConfig, type AiKey, type AiTypesCacheEntry, type AnyBuffer, type AudioAlarmParams, type AudioCfgConfig, type AudioConfig, type AudioTaskConfig, type AutoDetectInputs, type AutoDetectMode, type AutoDetectResult, AutodiscoveryClient, type AutodiscoveryClientOptions, BC_AES_IV, BC_CLASS_FILE_DOWNLOAD, BC_CLASS_LEGACY, BC_CLASS_MODERN_20, BC_CLASS_MODERN_24, BC_CLASS_MODERN_24_ALT, BC_CMD_ID_ABILITY_INFO, BC_CMD_ID_ALARM_EVENT_LIST, BC_CMD_ID_AUDIO_ALARM_PLAY, BC_CMD_ID_CHANNEL_INFO_ALL, BC_CMD_ID_CMD_123, BC_CMD_ID_CMD_209, BC_CMD_ID_CMD_265, BC_CMD_ID_CMD_440, BC_CMD_ID_COVER_PREVIEW, BC_CMD_ID_COVER_RESPONSE, BC_CMD_ID_COVER_STANDALONE_458, BC_CMD_ID_COVER_STANDALONE_459, BC_CMD_ID_COVER_STANDALONE_460, BC_CMD_ID_COVER_STANDALONE_461, BC_CMD_ID_COVER_STANDALONE_462, BC_CMD_ID_DING_DONG_CTRL, BC_CMD_ID_DING_DONG_OPT, BC_CMD_ID_FILE_INFO_LIST_CLOSE, BC_CMD_ID_FILE_INFO_LIST_DL_VIDEO, BC_CMD_ID_FILE_INFO_LIST_DOWNLOAD, BC_CMD_ID_FILE_INFO_LIST_GET, BC_CMD_ID_FILE_INFO_LIST_OPEN, BC_CMD_ID_FILE_INFO_LIST_REPLAY, BC_CMD_ID_FILE_INFO_LIST_STOP, BC_CMD_ID_FIND_REC_VIDEO_CLOSE, BC_CMD_ID_FIND_REC_VIDEO_GET, BC_CMD_ID_FIND_REC_VIDEO_OPEN, BC_CMD_ID_FLOODLIGHT_STATUS_LIST, BC_CMD_ID_GET_ABILITY_SUPPORT, BC_CMD_ID_GET_ACCESS_USER_LIST, BC_CMD_ID_GET_AI_ALARM, BC_CMD_ID_GET_AI_CFG, BC_CMD_ID_GET_AI_DENOISE, BC_CMD_ID_GET_AUDIO_ALARM, BC_CMD_ID_GET_AUDIO_CFG, BC_CMD_ID_GET_AUDIO_TASK, BC_CMD_ID_GET_BATTERY_INFO, BC_CMD_ID_GET_BATTERY_INFO_LIST, BC_CMD_ID_GET_DAY_NIGHT_THRESHOLD, BC_CMD_ID_GET_DAY_RECORDS, BC_CMD_ID_GET_DING_DONG_CFG, BC_CMD_ID_GET_DING_DONG_LIST, BC_CMD_ID_GET_DING_DONG_SILENT, BC_CMD_ID_GET_EMAIL_TASK, BC_CMD_ID_GET_FTP_TASK, BC_CMD_ID_GET_HDD_INFO_LIST, BC_CMD_ID_GET_KIT_AP_CFG, BC_CMD_ID_GET_LED_STATE, BC_CMD_ID_GET_MOTION_ALARM, BC_CMD_ID_GET_ONLINE_USER_LIST, BC_CMD_ID_GET_OSD_DATETIME, BC_CMD_ID_GET_PIR_INFO, BC_CMD_ID_GET_PTZ_POSITION, BC_CMD_ID_GET_PTZ_PRESET, BC_CMD_ID_GET_RECORD, BC_CMD_ID_GET_RECORD_CFG, BC_CMD_ID_GET_REC_ENC_CFG, BC_CMD_ID_GET_SIREN_STATUS, BC_CMD_ID_GET_SLEEP_STATE, BC_CMD_ID_GET_STREAM_INFO_LIST, BC_CMD_ID_GET_SUPPORT, BC_CMD_ID_GET_SYSTEM_GENERAL, BC_CMD_ID_GET_TIMELAPSE_CFG, BC_CMD_ID_GET_VIDEO_INPUT, BC_CMD_ID_GET_WHITE_LED, BC_CMD_ID_GET_WIFI, BC_CMD_ID_GET_WIFI_SIGNAL, BC_CMD_ID_GET_ZOOM_FOCUS, BC_CMD_ID_LOGIN, BC_CMD_ID_LOGOUT, BC_CMD_ID_PING, BC_CMD_ID_PTZ_CONTROL, BC_CMD_ID_PTZ_CONTROL_PRESET, BC_CMD_ID_PUSH_COORDINATE_POINT_LIST, BC_CMD_ID_PUSH_DINGDONG_LIST, BC_CMD_ID_PUSH_NET_INFO, BC_CMD_ID_PUSH_SERIAL, BC_CMD_ID_PUSH_SLEEP_STATUS, BC_CMD_ID_PUSH_VIDEO_INPUT, BC_CMD_ID_QUICK_REPLY_PLAY, BC_CMD_ID_SET_AI_ALARM, BC_CMD_ID_SET_AI_CFG, BC_CMD_ID_SET_AUDIO_TASK, BC_CMD_ID_SET_DING_DONG_CFG, BC_CMD_ID_SET_DING_DONG_SILENT, BC_CMD_ID_SET_MOTION_ALARM, BC_CMD_ID_SET_PIR_INFO, BC_CMD_ID_SET_WHITE_LED_STATE, BC_CMD_ID_SET_WHITE_LED_TASK, BC_CMD_ID_SET_ZOOM_FOCUS, BC_CMD_ID_SUPPORT, BC_CMD_ID_TALK, BC_CMD_ID_TALK_ABILITY, BC_CMD_ID_TALK_CONFIG, BC_CMD_ID_TALK_RESET, BC_CMD_ID_UDP_KEEP_ALIVE, BC_CMD_ID_VIDEO, BC_CMD_ID_VIDEO_STOP, BC_MAGIC, BC_MAGIC_REV, BC_TCP_DEFAULT_PORT, BC_XML_KEY, type BaichuanCachedPush, BaichuanClient, type BaichuanClientOptions, type BaichuanCoordinatePointListPush, type BaichuanDingdongListPush, type BaichuanEndpointsServerOptions, BaichuanEventEmitter, type BaichuanFrame, BaichuanFrameParser, type BaichuanGetOsdDatetimeResult, type BaichuanHeader, BaichuanHlsServer, type BaichuanHlsServerOptions, BaichuanHttpStreamServer, type BaichuanHttpStreamServerOptions, type BaichuanLedState, BaichuanMjpegServer, type BaichuanMjpegServerOptions, type BaichuanNetInfoPush, type BaichuanOsdChannelName, type BaichuanOsdDatetime, type BaichuanRecordCfg, type BaichuanRecordSchedule, BaichuanRtspServer, type BaichuanRtspServerOptions, type BaichuanSerialPush, type BaichuanSettingsPushCacheEntry, type BaichuanSleepState, type BaichuanSleepStatusPush, type BaichuanStreamEncodeTable, type BaichuanStreamInfo, type BaichuanStreamInfoList, type BaichuanTransport, type BaichuanVideoInputPush, BaichuanVideoStream, type BaichuanVideoStreamOptions, BaichuanWebRTCServer, type BaichuanWebRTCServerOptions, type BaichuanWifi, type BaichuanWifiSignal, type BatteryInfo, type BatteryInfoResponse, type BcMedia, type BcMediaAac, type BcMediaAdpcm, BcMediaAnnexBDecoder, type BcMediaAnnexBDecoderStats, type BcMediaAnnexBInfo, type BcMediaAudioFrame, type BcMediaAudioType, BcMediaCodec, type BcMediaIframe, type BcMediaInfoV1, type BcMediaInfoV2, type BcMediaPframe, type BcMediaType, type BcMediaVideoFrame, type BcMediaVideoType, type BcUdpDiscoveryMethod, BcUdpStream, type BcUdpStreamOptions, type CgiAbility, type CgiAbilityChn, type CgiAbilityLeaf, type CgiAiKey, type CgiAiStateValue, type CgiAudioAlarmPlayParam, type CgiBattery, type CgiChannelStatusEntry, type CgiChnTypeInfoValue, type CgiDetectionState, type CgiDevInfo, type CgiDeviceInfoEntries, type CgiEnc, type CgiEncStream, type CgiEncValue, type CgiGetAbilityResponse, type CgiGetAbilityValue, type CgiGetAiStateResponse, type CgiGetChannelstatusResponse, type CgiGetChannelstatusValue, type CgiGetChnTypeInfoResponse, type CgiGetDevInfoResponse, type CgiGetDevInfoValue, type CgiGetEncResponse, type CgiGetOsdValue, type CgiGetRtspUrlResponse, type CgiGetRtspUrlValue, type CgiGetVideoclipsParams, type CgiNetPort, type CgiOsd, type CgiPirInfo, type CgiPtzPreset, type CgiSetOsdParam, type CgiSetPirInfoParam, type CgiSetWhiteLedParam, type CgiWhiteLed, type ChannelPushCacheEntry, type ChannelPushDataEntry, type ChannelRecordingFile, type ChannelStreamMetadata, type ChimeAlarmCfg, type ChimeCfg, type ChimeDevice, type ChimeParams, type CollectNvrDiagnosticsOptions, CompositeRtspServer, type CompositeRtspServerOptions, CompositeStream, type CompositeStreamOptions, type CompositeStreamPipOptions, DUAL_LENS_DUAL_MOTION_MODELS, DUAL_LENS_MODELS, DUAL_LENS_SINGLE_MOTION_MODELS, type DayNightThresholdConfig, type DebugConfig, type DebugOptions, type DeviceAbilities, type DeviceCapabilities, type DeviceCapabilitiesCacheEntry, type DeviceCapabilitiesDebugInfo, type DeviceCapabilitiesResult, type DeviceInfoResponse, type DeviceInputData, type DeviceObjectType, type DeviceStatusResponse, type DeviceSupportFlags, type DeviceType, type DiagnosticsCollectorResult, type DiagnosticsStreamKind, type DiscoveredDevice, type DiscoveryOptions, type DownloadRecordingParams, type DualLensChannelAnalysis, type DualLensChannelInfo, type EmailTaskConfig, type EncryptionProtocol, type Events, type EventsResponse, type FloodlightTaskConfig, type FtpTaskConfig, type GetRecordingVideoResult, type GetRecordingVideoStats, type GetVideoclipsParams, type GetVodUrlParams, Go2rtcTcpServer, type Go2rtcTcpServerOptions, H264RtpDepacketizer, H265RtpDepacketizer, type HardwiredChimeState, type HddInfoListConfig, type HlsCodec, type HlsHttpResponse, type HlsServerStatus, type HlsSession, HlsSessionManager, type HlsSessionManagerOptions, type HlsSessionParams, Intercom, type IntercomOptions, type JsonObject, type JsonPrimitive, type JsonValue, type LastSleepProbe, type LogLevel, type Logger, type LoggerCallback, type LoginResponseValue, type MaxEncryption, type MediaStream, type MjpegFrame, MjpegTransformer, type MjpegTransformerOptions, type ModelFixtureCaptureResult, type MotionAlarmConfig, type MotionEvent, MpegTsMuxer, type MpegTsMuxerOptions, NVR_HUB_EXACT_TYPES, NVR_HUB_MODEL_PATTERNS, type NativeVideoStreamVariant, type NvrChannelsSummaryCacheEntry, type OnlineUserListConfig, type OsdChannel, type OsdConfig, type OsdTime, type ParsedRecordingFileName, type PipPosition, type PirConfig, type PirState, type PlaybackSnapshotStreamInfo, type PtzCommand, type PtzPosition, type PtzPreset, type RecEncConfig, type RecordingAudioCodec, type RecordingDetectionClass, type RecordingDevType, type RecordingFile, type RecordingPlaybackUrls, type RecordingStreamType, type RecordingVideoCodec, type RecordingVodFlags, type RecordingVodStreamHint, type RecordingsCacheEntry, type RecordingsQueueItem, type ReolinkAiNotification, ReolinkBaichuanApi, type ReolinkBaichuanChannelIdentity, type ReolinkBaichuanChannelInfo, type ReolinkBaichuanDeviceSummary, type ReolinkBaichuanNetworkInfo, type ReolinkBaichuanPorts, ReolinkCgiApi, type ReolinkCmdRequest, type ReolinkCmdResponse, type ReolinkCmdResponseExt, type ReolinkDayNightNotification, type ReolinkDeviceInfo, type ReolinkDeviceInfoTag, type ReolinkEvent, ReolinkHttpClient, type ReolinkHttpClientOptions, type ReolinkJson, type ReolinkMotionNotification, type ReolinkNvrChannelInfo, type ReolinkNvrDeviceGroupSummary, type ReolinkNvrDeviceGroupsResult, type ReolinkSimpleEvent, type ReolinkSimpleEventType, type ReolinkSupportedStream, type ReolinkVideoStreamOptionsResult, type ReolinkVisitorNotification, type ReplayHttpServer, type ReplayHttpServerOptions, type ResponseMediaStreamOptions, type Rfc4571ApiFactoryContext, type Rfc4571Client, Rfc4571Muxer, type Rfc4571ReplayServer, type Rfc4571ReplayServerOptions, type Rfc4571TcpServer, type Rfc4571TcpServerOptions, type RtpPacketizationOptions, type RtspCreateOptions, type RtspProxyServerOptions, type RtspStreamProfile, type RunAllDiagnosticsConsecutivelyParams, type RunAllDiagnosticsConsecutivelyResult, type RunMultifocalDiagnosticsConsecutivelyParams, type RunMultifocalDiagnosticsConsecutivelyResult, type SirenState, type SirenStatusConfig, type SleepInferenceDecision, type SleepInferenceInput, type SleepInferencePending, type SleepState, type SleepStatus, type StreamMetadata, type StreamProfile, type StreamSamplingOptions, type StreamSamplingSelection, type SupportConfig, type SupportInfo, type SupportItem, type SystemGeneralConfig, type TalkAbility$1 as TalkAbility, type TalkAudioConfig, type TalkConfig, type TalkSession$1 as TalkSession, type TalkSessionInfo, type TimelapseCfgConfig, type TwoWayAudioConfig, type VideoCodec, type VideoInputConfig, type VideoParamSets, type VideoStreamOptions, type VideoStreamOptionsCacheEntry, type VideoType, type VideoclipClientInfo, type VideoclipModeDecision, type VideoclipThumbnailResult, type VideoclipTranscodeMode, type VodFile, type VodSearchResponse, type VodSearchResult, type VodSearchStatus, type WakeUpOptions, type WebRTCAnswer, type WebRTCIceCandidate, type WebRTCOffer, type WebRTCSessionInfo, type WhiteLedConfig, type WhiteLedState, type WirelessChimeSilentState, type ZoomFocusStatus, type ZoomFocusTriplet, abilitiesHasAny, aesDecrypt, aesEncrypt, asLogger, autoDetectDeviceType, bcDecrypt, bcEncrypt, bcHeaderHasPayloadOffset, buildAacAudioSpecificConfigHex, buildAbilityInfoExtensionXml, buildBinaryExtensionXml, buildChannelExtensionXml, buildFloodlightManualXml, buildHlsRedirectUrl, buildLoginXml, buildLogoutXml, buildPreviewStopXml, buildPreviewStopXmlV11, buildPreviewXml, buildPreviewXmlV11, buildPtzControlXml, buildPtzPresetXml, buildPtzPresetXmlV2, buildRfc4571Sdp, buildRtspPath, buildRtspUrl, buildSirenManualXml, buildSirenTimesXml, buildStartZoomFocusXml, buildWhiteLedStateXml, captureModelFixtures, collectCgiDiagnostics, collectMultifocalDiagnostics, collectNativeDiagnostics, collectNvrDiagnostics, computeDeviceCapabilities, computeExpectedStreamCompatibility, convertToAnnexB as convertH265ToAnnexB, convertToAnnexB$1 as convertToAnnexB, convertToLengthPrefixed, createBaichuanEndpointsServer, createDebugGateLogger, createDiagnosticsBundle, createLogger, createMjpegBoundary, createNativeStream, createNullLogger, createReplayHttpServer, createRfc4571TcpServer, createRfc4571TcpServerForReplay, createRtspProxyServer, createTaggedLogger, decideSleepInferenceTransition, decideVideoclipTranscodeMode, decodeHeader, deriveAesKey, detectIosClient, detectVideoCodecFromNal, discoverReolinkDevices, discoverViaArpTable, discoverViaDhcpListener, discoverViaHttpScan, discoverViaOnvif, discoverViaTcpPortScan, discoverViaUdpBroadcast, discoverViaUdpDirect, encodeHeader, extractH264ParamSetsFromAccessUnit, extractH265ParamSetsFromAccessUnit, extractPpsFromAnnexB, extractSpsFromAnnexB, extractVpsFromAnnexB, flattenAbilitiesForChannel, formatMjpegFrame, getConstructedVideoStreamOptions, getGlobalLogger, getH265NalType, getMjpegContentType, getSupportItemForChannel, getVideoStream, getVideoclipClientInfo, getXmlText, hasStartCodes as hasH265StartCodes, hasStartCodes$1 as hasStartCodes, isDualLenseModel, isH264KeyframeAnnexB, isH265Irap, isH265KeyframeAnnexB, isNvrHubModel, isTcpFailureThatShouldFallbackToUdp, isValidH264AnnexBAccessUnit, isValidH265AnnexBAccessUnit, maskUid, md5HexUpper, md5StrModern, normalizeUid, packetizeAacAdtsFrame, packetizeAacRawFrame, packetizeH264, packetizeH265, parseAdtsHeader, parseBcMedia, parseRecordingFileName, parseSupportXml, printNvrDiagnostics, runAllDiagnosticsConsecutively, runMultifocalDiagnosticsConsecutively, sampleStreams, sanitizeFixtureData, setGlobalLogger, splitAnnexBToNalPayloads$1 as splitAnnexBToNalPayloads, splitAnnexBToNals, splitAnnexBToNalPayloads as splitH265AnnexBToNalPayloads, testChannelStreams, xmlEscape, xmlIndicatesFloodlight, zipDirectory };