deeily e61d8ac649 dvr_admin v2.4.0: Novicam NR1604 integration (частичная)
Поддержка Novicam V3.4.96 рядом с Hikvision, изолировано через IP-whitelist
_NOVICAM_IPS_TEMP. Cam 2/3/4 работают (live + playback с шифрованием), cam 1
остаётся открытым вопросом — Linux libPlayCtrl.so не декодит её mainstream
несмотря на идентичный wire-формат плагину.

Инфраструктура Novicam:
- _novicam_session_login() — sessionID из <SessionUserCheck>, используется
  как Cookie WebSession (Novicam не выставляет Set-Cookie)
- _sdk_http_live_reader_novicam() — отдельный reader для live stream
- _sdk_http_playback_reader_encrypted(_novicam=True) — ветка в encrypted
  playback для Novicam (без /ISAPI/Security/token, свой HB pattern)
- _fetch_channels_inline fallback на /ContentMgmt/InputProxy/channels
  при 403 от /Streaming/channels (маппинг id=N → N01)
- Pre-activation probes перед /SDK/play (security=1 + PTZ endpoints) —
  активируют канал в сессии после Spy DLL анализа плагина
- HTTP-заголовки (Accept/Accept-Language/Accept-Charset) идентичны
  эталонному плагину — влияет на формат потока

Playback fixes:
- PlayM4_GetSourceBufferRemain throttle перед InputData — фикс 15-сек
  прыжков при ×1 воспроизведении. DVR заливает архив в scan-режиме
  (~10× быстрее реалтайма), без троттлинга libPlayCtrl захлёбывается.
  TCP flow control естественно замедляет DVR до темпа декодера.
- PTS-based current_start через buf.video_ms при reconnect — защита от
  прыжков вперёд на неотыгранный интервал

Инфраструктура для cam 1 (готова, отключена):
- _NovMuxWine singleton — wine + Windows PlayCtrl.dll (Novicam 194 exp)
- wine_playm4_nov/ с mux server без SetStreamOpenMode (file mode) —
  плагин использует default stream mode
- Включается через _use_nov_wine = (cam_num == 1), сейчас False

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 17:27:38 +03:00
Description
No description provided
14 MiB
Languages
Python 97.4%
C 2.2%
Dockerfile 0.3%