mirror of
https://github.com/mofeng-git/One-KVM.git
synced 2025-12-12 01:00:29 +08:00
fixed VNC for capture without quality control
This commit is contained in:
parent
7f74d7ee45
commit
f0882df330
@ -274,9 +274,11 @@ class _Client(RfbClient): # pylint: disable=too-many-instance-attributes
|
|||||||
async def _on_set_encodings(self) -> None:
|
async def _on_set_encodings(self) -> None:
|
||||||
assert self.__authorized.done()
|
assert self.__authorized.done()
|
||||||
assert self.__kvmd_session
|
assert self.__kvmd_session
|
||||||
get_logger(0).info("[main] %s: Applying streamer params: quality=%d%%; desired_fps=%d ...",
|
has_quality = (await self.__kvmd_session.streamer.get_state())["features"]["quality"]
|
||||||
self._remote, self._encodings.tight_jpeg_quality, self.__desired_fps)
|
quality = (self._encodings.tight_jpeg_quality if has_quality else None)
|
||||||
await self.__kvmd_session.streamer.set_params(self._encodings.tight_jpeg_quality, self.__desired_fps)
|
get_logger(0).info("[main] %s: Applying streamer params: quality=%s; desired_fps=%d ...",
|
||||||
|
self._remote, quality, self.__desired_fps)
|
||||||
|
await self.__kvmd_session.streamer.set_params(quality, self.__desired_fps)
|
||||||
|
|
||||||
async def _on_fb_update_request(self) -> None:
|
async def _on_fb_update_request(self) -> None:
|
||||||
async with self.__lock:
|
async with self.__lock:
|
||||||
|
|||||||
@ -66,11 +66,24 @@ class _AuthApiPart(_BaseApiPart):
|
|||||||
|
|
||||||
|
|
||||||
class _StreamerApiPart(_BaseApiPart):
|
class _StreamerApiPart(_BaseApiPart):
|
||||||
async def set_params(self, quality: int, desired_fps: int) -> None:
|
async def get_state(self) -> Dict:
|
||||||
|
session = self._ensure_http_session()
|
||||||
|
async with session.get(self._make_url("streamer")) as response:
|
||||||
|
htclient.raise_not_200(response)
|
||||||
|
return (await response.json())["result"]
|
||||||
|
|
||||||
|
async def set_params(self, quality: Optional[int]=None, desired_fps: Optional[int]=None) -> None:
|
||||||
session = self._ensure_http_session()
|
session = self._ensure_http_session()
|
||||||
async with session.post(
|
async with session.post(
|
||||||
url=self._make_url("streamer/set_params"),
|
url=self._make_url("streamer/set_params"),
|
||||||
params={"quality": quality, "desired_fps": desired_fps},
|
params={
|
||||||
|
key: value
|
||||||
|
for (key, value) in [
|
||||||
|
("quality", quality),
|
||||||
|
("desired_fps", desired_fps),
|
||||||
|
]
|
||||||
|
if value is not None
|
||||||
|
},
|
||||||
) as response:
|
) as response:
|
||||||
htclient.raise_not_200(response)
|
htclient.raise_not_200(response)
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user