mirror of
https://github.com/mofeng-git/One-KVM.git
synced 2025-12-12 09:10:30 +08:00
configurable desired_fps
This commit is contained in:
parent
55307fe8da
commit
3cafcaf431
@ -322,7 +322,8 @@ def _get_config_scheme() -> Dict:
|
|||||||
},
|
},
|
||||||
|
|
||||||
"vnc": {
|
"vnc": {
|
||||||
"keymap": Option("", type=valid_abs_path),
|
"desired_fps": Option(30, type=valid_stream_fps),
|
||||||
|
"keymap": Option("", type=valid_abs_path),
|
||||||
|
|
||||||
"server": {
|
"server": {
|
||||||
"host": Option("::", type=valid_ip_or_host),
|
"host": Option("::", type=valid_ip_or_host),
|
||||||
|
|||||||
@ -43,6 +43,7 @@ def main(argv: Optional[List[str]]=None) -> None:
|
|||||||
VncServer(
|
VncServer(
|
||||||
kvmd=KvmdClient(**config.kvmd._unpack()),
|
kvmd=KvmdClient(**config.kvmd._unpack()),
|
||||||
streamer=StreamerClient(**config.streamer._unpack()),
|
streamer=StreamerClient(**config.streamer._unpack()),
|
||||||
|
desired_fps=config.desired_fps,
|
||||||
symmap=build_symmap(config.keymap),
|
symmap=build_symmap(config.keymap),
|
||||||
**config.server._unpack(),
|
**config.server._unpack(),
|
||||||
).run()
|
).run()
|
||||||
|
|||||||
@ -63,6 +63,7 @@ class _Client(RfbClient): # pylint: disable=too-many-instance-attributes
|
|||||||
kvmd: KvmdClient,
|
kvmd: KvmdClient,
|
||||||
streamer: StreamerClient,
|
streamer: StreamerClient,
|
||||||
|
|
||||||
|
desired_fps: int,
|
||||||
symmap: Dict[int, str],
|
symmap: Dict[int, str],
|
||||||
|
|
||||||
shared_params: _SharedParams,
|
shared_params: _SharedParams,
|
||||||
@ -72,6 +73,7 @@ class _Client(RfbClient): # pylint: disable=too-many-instance-attributes
|
|||||||
|
|
||||||
self.__kvmd = kvmd
|
self.__kvmd = kvmd
|
||||||
self.__streamer = streamer
|
self.__streamer = streamer
|
||||||
|
self.__desired_fps = desired_fps
|
||||||
self.__symmap = symmap
|
self.__symmap = symmap
|
||||||
self.__shared_params = shared_params
|
self.__shared_params = shared_params
|
||||||
|
|
||||||
@ -244,10 +246,9 @@ 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()
|
||||||
(user, passwd) = self.__authorized.result()
|
(user, passwd) = self.__authorized.result()
|
||||||
(quality, desired_fps) = (self._encodings.tight_jpeg_quality, 30)
|
|
||||||
get_logger(0).info("[main] Client %s: Applying streamer params: quality=%d%%; desired_fps=%d ...",
|
get_logger(0).info("[main] Client %s: Applying streamer params: quality=%d%%; desired_fps=%d ...",
|
||||||
self._remote, quality, desired_fps)
|
self._remote, self._encodings.tight_jpeg_quality, self.__desired_fps)
|
||||||
await self.__kvmd.set_streamer_params(user, passwd, quality=quality, desired_fps=desired_fps)
|
await self.__kvmd.set_streamer_params(user, passwd, self._encodings.tight_jpeg_quality, self.__desired_fps)
|
||||||
|
|
||||||
async def _on_fb_update_request(self) -> None:
|
async def _on_fb_update_request(self) -> None:
|
||||||
self.__fb_requested = True
|
self.__fb_requested = True
|
||||||
@ -264,6 +265,7 @@ class VncServer:
|
|||||||
kvmd: KvmdClient,
|
kvmd: KvmdClient,
|
||||||
streamer: StreamerClient,
|
streamer: StreamerClient,
|
||||||
|
|
||||||
|
desired_fps: int,
|
||||||
symmap: Dict[int, str],
|
symmap: Dict[int, str],
|
||||||
) -> None:
|
) -> None:
|
||||||
|
|
||||||
@ -271,12 +273,13 @@ class VncServer:
|
|||||||
self.__port = port
|
self.__port = port
|
||||||
self.__max_clients = max_clients
|
self.__max_clients = max_clients
|
||||||
|
|
||||||
self.__kvmd = kvmd
|
self.__client_kwargs = {
|
||||||
self.__streamer = streamer
|
"kvmd": kvmd,
|
||||||
|
"streamer": streamer,
|
||||||
self.__symmap = symmap
|
"desired_fps": desired_fps,
|
||||||
|
"symmap": symmap,
|
||||||
self.__shared_params = _SharedParams()
|
"shared_params": _SharedParams(),
|
||||||
|
}
|
||||||
|
|
||||||
def run(self) -> None:
|
def run(self) -> None:
|
||||||
logger = get_logger(0)
|
logger = get_logger(0)
|
||||||
@ -309,4 +312,4 @@ class VncServer:
|
|||||||
logger.info("Bye-bye")
|
logger.info("Bye-bye")
|
||||||
|
|
||||||
async def __handle_client(self, reader: asyncio.StreamReader, writer: asyncio.StreamWriter) -> None:
|
async def __handle_client(self, reader: asyncio.StreamReader, writer: asyncio.StreamWriter) -> None:
|
||||||
await _Client(reader, writer, self.__kvmd, self.__streamer, self.__symmap, self.__shared_params).run()
|
await _Client(reader, writer, **self.__client_kwargs).run() # type: ignore
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user