Skip to content

Commit

Permalink
Use k10056 if supported and not fps #1194
Browse files Browse the repository at this point in the history
  • Loading branch information
mrlt8 committed Jul 6, 2024
1 parent 7f6f286 commit 3a50e59
Showing 1 changed file with 16 additions and 16 deletions.
32 changes: 16 additions & 16 deletions app/wyzecam/iotc.py
Original file line number Diff line number Diff line change
Expand Up @@ -529,11 +529,19 @@ def valid_frame_size(self) -> set[int]:
return {self.preferred_frame_size, int(os.getenv("IGNORE_RES", alt))}

def sync_camera_time(self, wait: bool = False):
with self.iotctrl_mux(False) as mux:
with contextlib.suppress(tutk_ioctl_mux.Empty, tutk.TutkError):
with contextlib.suppress(tutk_ioctl_mux.Empty, tutk.TutkError):
with self.iotctrl_mux(False) as mux:
mux.send_ioctl(tutk_protocol.K10092SetCameraTime()).result(wait)
self.frame_ts = time.time()

def set_resolving_bit(self, fps: int = 0):
if fps or self.camera.model_name in {"WYZEDB3", "WVOD1", "HL_WCO2", "WYZEC1"}:
return K10052DBSetResolvingBit(
self.preferred_frame_size, self.preferred_bitrate, fps
)

return K10056SetResolvingBit(self.preferred_frame_size, self.preferred_bitrate)

def update_frame_size_rate(self, bitrate: Optional[int] = None, fps: int = 0):
"""Send a message to the camera to update the frame_size and bitrate."""
if bitrate:
Expand All @@ -543,11 +551,12 @@ def update_frame_size_rate(self, bitrate: Optional[int] = None, fps: int = 0):
self.preferred_frame_rate = fps
self.sync_camera_time()

ioctl_params = self.preferred_frame_size, self.preferred_bitrate, fps
logger.warning("Requesting frame_size=%d, bitrate=%d, fps=%d" % ioctl_params)
params = self.preferred_frame_size, self.preferred_bitrate, fps
logger.warning("Requesting frame_size=%d, bitrate=%d, fps=%d" % params)

with self.iotctrl_mux() as mux:
with contextlib.suppress(tutk_ioctl_mux.Empty):
mux.send_ioctl(K10052DBSetResolvingBit(*ioctl_params)).result(False)
mux.send_ioctl(self.set_resolving_bit(fps)).result(False)

def clear_buffer(self) -> None:
"""Clear local buffer."""
Expand Down Expand Up @@ -1031,17 +1040,8 @@ def _auth(self):
warnings.warn(f"AUTH FAILED: {auth_response}")
raise ValueError("AUTH_FAILED")
self.camera.set_camera_info(auth_response["cameraInfo"])
frame_bit = self.preferred_frame_size, self.preferred_bitrate
if self.camera.product_model in (
"WYZEDB3",
"WVOD1",
"HL_WCO2",
"WYZEC1",
):
ioctl_msg = K10052DBSetResolvingBit(*frame_bit)
else:
ioctl_msg = K10056SetResolvingBit(*frame_bit)
mux.waitfor(mux.send_ioctl(ioctl_msg))

mux.send_ioctl(self.set_resolving_bit()).result()
self.state = WyzeIOTCSessionState.AUTHENTICATION_SUCCEEDED
except tutk.TutkError:
self._disconnect()
Expand Down

0 comments on commit 3a50e59

Please sign in to comment.