python-aidot-cameras 0.5.1__tar.gz → 0.5.2__tar.gz
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.
- {python_aidot_cameras-0.5.1/src/python_aidot_cameras.egg-info → python_aidot_cameras-0.5.2}/PKG-INFO +1 -1
- {python_aidot_cameras-0.5.1 → python_aidot_cameras-0.5.2}/pyproject.toml +1 -1
- {python_aidot_cameras-0.5.1 → python_aidot_cameras-0.5.2}/src/aidot/device_client.py +11 -4
- {python_aidot_cameras-0.5.1 → python_aidot_cameras-0.5.2/src/python_aidot_cameras.egg-info}/PKG-INFO +1 -1
- {python_aidot_cameras-0.5.1 → python_aidot_cameras-0.5.2}/LICENSE +0 -0
- {python_aidot_cameras-0.5.1 → python_aidot_cameras-0.5.2}/README.md +0 -0
- {python_aidot_cameras-0.5.1 → python_aidot_cameras-0.5.2}/setup.cfg +0 -0
- {python_aidot_cameras-0.5.1 → python_aidot_cameras-0.5.2}/src/aidot/__init__.py +0 -0
- {python_aidot_cameras-0.5.1 → python_aidot_cameras-0.5.2}/src/aidot/aes_utils.py +0 -0
- {python_aidot_cameras-0.5.1 → python_aidot_cameras-0.5.2}/src/aidot/client.py +0 -0
- {python_aidot_cameras-0.5.1 → python_aidot_cameras-0.5.2}/src/aidot/const.py +0 -0
- {python_aidot_cameras-0.5.1 → python_aidot_cameras-0.5.2}/src/aidot/credentials.py +0 -0
- {python_aidot_cameras-0.5.1 → python_aidot_cameras-0.5.2}/src/aidot/discover.py +0 -0
- {python_aidot_cameras-0.5.1 → python_aidot_cameras-0.5.2}/src/aidot/exceptions.py +0 -0
- {python_aidot_cameras-0.5.1 → python_aidot_cameras-0.5.2}/src/aidot/g711.py +0 -0
- {python_aidot_cameras-0.5.1 → python_aidot_cameras-0.5.2}/src/python_aidot_cameras.egg-info/SOURCES.txt +0 -0
- {python_aidot_cameras-0.5.1 → python_aidot_cameras-0.5.2}/src/python_aidot_cameras.egg-info/dependency_links.txt +0 -0
- {python_aidot_cameras-0.5.1 → python_aidot_cameras-0.5.2}/src/python_aidot_cameras.egg-info/requires.txt +0 -0
- {python_aidot_cameras-0.5.1 → python_aidot_cameras-0.5.2}/src/python_aidot_cameras.egg-info/top_level.txt +0 -0
- {python_aidot_cameras-0.5.1 → python_aidot_cameras-0.5.2}/tests/test_alarm_event.py +0 -0
- {python_aidot_cameras-0.5.1 → python_aidot_cameras-0.5.2}/tests/test_highport_nomination.py +0 -0
- {python_aidot_cameras-0.5.1 → python_aidot_cameras-0.5.2}/tests/test_motion_poll.py +0 -0
- {python_aidot_cameras-0.5.1 → python_aidot_cameras-0.5.2}/tests/test_sdes_talk.py +0 -0
- {python_aidot_cameras-0.5.1 → python_aidot_cameras-0.5.2}/tests/test_sdes_watchdog.py +0 -0
- {python_aidot_cameras-0.5.1 → python_aidot_cameras-0.5.2}/tests/test_speak.py +0 -0
- {python_aidot_cameras-0.5.1 → python_aidot_cameras-0.5.2}/tests/test_stream_cap.py +0 -0
- {python_aidot_cameras-0.5.1 → python_aidot_cameras-0.5.2}/tests/test_talk.py +0 -0
- {python_aidot_cameras-0.5.1 → python_aidot_cameras-0.5.2}/tests/test_terminal_ack.py +0 -0
- {python_aidot_cameras-0.5.1 → python_aidot_cameras-0.5.2}/tests/test_token_refresh.py +0 -0
{python_aidot_cameras-0.5.1/src/python_aidot_cameras.egg-info → python_aidot_cameras-0.5.2}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: python-aidot-cameras
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.2
|
|
4
4
|
Summary: Control AiDot/Leedarson WiFi lights and cameras (WebRTC streaming, two-way audio, PTZ, controls)
|
|
5
5
|
Author-email: cbrightly <chris.brightly@gmail.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "python-aidot-cameras"
|
|
7
|
-
version = "0.5.
|
|
7
|
+
version = "0.5.2"
|
|
8
8
|
description = "Control AiDot/Leedarson WiFi lights and cameras (WebRTC streaming, two-way audio, PTZ, controls)"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = "MIT"
|
|
@@ -3433,7 +3433,7 @@ class DeviceClient(object):
|
|
|
3433
3433
|
"MotionDetection_Enable", "1" if enabled else "0")
|
|
3434
3434
|
|
|
3435
3435
|
async def async_set_floodlight(self, on: bool, brightness: int = 100) -> bool:
|
|
3436
|
-
# Confirmed 2026-05-05: cameras with autoLightEnable=1 (PTZ,
|
|
3436
|
+
# Confirmed 2026-05-05: cameras with autoLightEnable=1 (A001064 PTZ, A000088) ignore
|
|
3437
3437
|
# manual LightOnOff commands unless auto-light is disabled first.
|
|
3438
3438
|
# Turning on: disable auto-light, set LightOnOff=1 (and optional Dimming).
|
|
3439
3439
|
# Turning off: set LightOnOff=0 only (leave autoLightEnable as-is so the
|
|
@@ -4600,6 +4600,13 @@ class DeviceClient(object):
|
|
|
4600
4600
|
return None
|
|
4601
4601
|
cmd = [
|
|
4602
4602
|
"ffmpeg", "-y", "-loglevel", "warning",
|
|
4603
|
+
# Suppress input-side buffering: the PyAV mux already writes
|
|
4604
|
+
# correctly-interleaved, timestamped MPEG-TS to the pipe every
|
|
4605
|
+
# ~20ms. Without +nobuffer ffmpeg's mpegts demuxer accumulates a
|
|
4606
|
+
# read-ahead window (and the output mpegts muxer defaults to 700ms
|
|
4607
|
+
# of A/V interleave delay) before flushing to go2rtc - exactly the
|
|
4608
|
+
# bursty/choppy audio pattern. Matches the SDES serve's approach.
|
|
4609
|
+
"-fflags", "+nobuffer",
|
|
4603
4610
|
"-i", "pipe:0",
|
|
4604
4611
|
"-c", "copy", "-f", "mpegts", "-listen", "1", serve_url,
|
|
4605
4612
|
]
|
|
@@ -5363,7 +5370,7 @@ class DeviceClient(object):
|
|
|
5363
5370
|
liveplay_resp_fut: asyncio.Future = loop.create_future() # set on livePlayResp
|
|
5364
5371
|
camera_reconnect_ev: asyncio.Event = asyncio.Event() # set when camera sends device/connect
|
|
5365
5372
|
# Mutable flag: set True when setDevAttrNotif delivers sptPreconn:1.
|
|
5366
|
-
# Confirmed 2026-05-02: both A000088
|
|
5373
|
+
# Confirmed 2026-05-02: both A000088 and A001064 PTZ report
|
|
5367
5374
|
# sptPreconn:1. AVIO LIVING (SESSION_MODE_REQ=5376) must be sent
|
|
5368
5375
|
# via the data channel to trigger streaming in PreCon cameras.
|
|
5369
5376
|
_spt_preconn: list = [False]
|
|
@@ -5563,7 +5570,7 @@ class DeviceClient(object):
|
|
|
5563
5570
|
# and won't send its own binding requests.
|
|
5564
5571
|
_extract_cam_ip("setDevAttrNotif", inner, msg)
|
|
5565
5572
|
# Also capture sptPreconn (PreCon / PreConnect support flag).
|
|
5566
|
-
# Confirmed 2026-05-02: both A001064 PTZ and A000088
|
|
5573
|
+
# Confirmed 2026-05-02: both A001064 PTZ and A000088 have
|
|
5567
5574
|
# sptPreconn:1. Per BaseKVSCameraView.k():805-815, the official
|
|
5568
5575
|
# client sends AVIO LIVING (SESSION_MODE_REQ=5376) via the data
|
|
5569
5576
|
# channel only when isSupportPreCon() is true. Set the flag
|
|
@@ -6312,7 +6319,7 @@ class DeviceClient(object):
|
|
|
6312
6319
|
|
|
6313
6320
|
# AVIO LIVING (E_CMD_AVIO_CTRL_SESSION_MODE_REQ=5376) is sent
|
|
6314
6321
|
# unconditionally when DC opens. 2026-05-03 testing confirmed:
|
|
6315
|
-
# A000088 cameras
|
|
6322
|
+
# A000088 cameras connect via DTLS,
|
|
6316
6323
|
# SCTP comes up, DC opens at t+1-2s - but camera tears down at
|
|
6317
6324
|
# t+22s if LIVING is not sent. This is the PreCon watchdog:
|
|
6318
6325
|
# without LIVING the camera gives up waiting for a viewer.
|
{python_aidot_cameras-0.5.1 → python_aidot_cameras-0.5.2/src/python_aidot_cameras.egg-info}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: python-aidot-cameras
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.2
|
|
4
4
|
Summary: Control AiDot/Leedarson WiFi lights and cameras (WebRTC streaming, two-way audio, PTZ, controls)
|
|
5
5
|
Author-email: cbrightly <chris.brightly@gmail.com>
|
|
6
6
|
License-Expression: MIT
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|