Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

active stylus position defects #302

Open
beroal opened this issue Nov 3, 2024 · 12 comments
Open

active stylus position defects #302

beroal opened this issue Nov 3, 2024 · 12 comments

Comments

@beroal
Copy link

beroal commented Nov 3, 2024

When an active HUAWEI M-Pen lite stylus is used on a HUAWEI MediaPad M5 lite tablet in the Chrome webbrowser, stylus positions are transmitted with defects shown in the screenshots below. The blue line with the red dots was produced by Android when the option Settings, System, Developer options, Input, Pointer location is enabled. The black line is what was drawn in GIMP on the desktop where the Weylus executable was running.

  • There is a superfluous straight segment at the beginning of a stroke.
  • The end of a stroke is not transmitted.
  • The drawn position deviates from the true position quite noticeably in the middle of a stroke.

active-start
active-deviate

There are no such defects when drawing with a capacitive stylus as shown in the screenshots below.

capacitive-start
capacitive-deviate

There are no such defects when drawing in the Squid application on the tablet (without Weylus).

Would such defects occur with a native Android application communicating with the Weylus executable?

@H-M-H
Copy link
Owner

H-M-H commented Nov 3, 2024

Thanks for the report! Do these defects also occur when you disable the video stream? Specifically, how does the debug overlay from Android compare to the blue lines from Weylus?

You could also inspect how the pointer events that arrive at your computer look like using:

$ WEYLUS_LOG_LEVEL=TRACE ./weylus 2>&1 | rg "PointerEvent.+x: (\\d.\\d+), y: (\\d.\\d+)" -or '$1 $2' > data &
# run once the first pointer events have been recorded
$ gnuplot -p -e "while (1) { pause 0.5; plot 'data' using 1:2 with linespoints lc rgb 'black' ps 1 title '' }"

Also, make sure to use builds from latest master (or build Weylus yourself): https://github.com/H-M-H/Weylus/actions/runs/11405365806

Finally, please attach the log output of WEYLUS_LOG_LEVEL=TRACE ./weylus of another stroke with defects.

Would such defects occur with a native Android application communicating with the Weylus executable?

I suspect a native app could work better as browsers tend to be quirky, especially around pens. Actually, I am looking into writing such an app, but no promises :).

@beroal
Copy link
Author

beroal commented Nov 4, 2024

Do these defects also occur when you disable the video stream? Specifically, how does the debug overlay from Android compare to the blue lines from Weylus?

There are no such defects when video is disabled as shown in the screenshots below. But Weylus skips points which is bad too.

active-debug-start
active-debug-deviate

@beroal
Copy link
Author

beroal commented Nov 4, 2024

I suspect a native app could work better as browsers tend to be quirky, especially around pens. Actually, I am looking into writing such an app, but no promises :).

Which programming language are you planning to use?

@H-M-H
Copy link
Owner

H-M-H commented Nov 4, 2024

I am considering flutter + native code (Kotlin) where necessary. But I am not sure if I can justify working on this without getting paid. Therefore, said app probably won't be open source for now.

@beroal
Copy link
Author

beroal commented Nov 6, 2024

Below is a stroke. I'll make more stroke to have more data. I plotted the Weylus log with my program.

active-log-screen-0

active-log-plot-0

2024-11-05T22:52:32.533177Z DEBUG weylus::config: Failed to read configuration file: No such file or directory (os error 2)
2024-11-05T22:52:35.592282Z DEBUG weylus::web: Client connected. address=127.0.0.1:53424
2024-11-05T22:52:35.594578Z DEBUG weylus::web: Got request: Request { method: GET, uri: /?access_code=0f39b781, version: HTTP/1.1, headers: {"host": "192.168.59.1:1701", "connection": "keep-alive", "cache-control": "max-age=0", "sec-ch-ua": "\"Chromium\";v=\"130\", \"Google Chrome\";v=\"130\", \"Not?A_Brand\";v=\"99\"", "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": "\"Android\"", "upgrade-insecure-requests": "1", "user-agent": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "sec-fetch-site": "same-origin", "sec-fetch-mode": "navigate", "sec-fetch-user": "?1", "sec-fetch-dest": "document", "referer": "https://192.168.59.1:1701/?access_code=09bdfe22", "accept-encoding": "gzip, deflate, br, zstd", "accept-language": "uk-UA,uk;q=0.9,en-US;q=0.8,en;q=0.7,ru-UA;q=0.6,ru;q=0.5,ja-JP;q=0.4,ja;q=0.3,de-DE;q=0.2,de;q=0.1"}, body: Body(Empty) }
2024-11-05T22:52:35.655016Z DEBUG weylus::web: Got request: Request { method: GET, uri: /style.css, version: HTTP/1.1, headers: {"host": "192.168.59.1:1701", "connection": "keep-alive", "sec-ch-ua-platform": "\"Android\"", "user-agent": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "sec-ch-ua": "\"Chromium\";v=\"130\", \"Google Chrome\";v=\"130\", \"Not?A_Brand\";v=\"99\"", "sec-ch-ua-mobile": "?0", "accept": "text/css,*/*;q=0.1", "sec-fetch-site": "same-origin", "sec-fetch-mode": "no-cors", "sec-fetch-dest": "style", "referer": "https://192.168.59.1:1701/?access_code=0f39b781", "accept-encoding": "gzip, deflate, br, zstd", "accept-language": "uk-UA,uk;q=0.9,en-US;q=0.8,en;q=0.7,ru-UA;q=0.6,ru;q=0.5,ja-JP;q=0.4,ja;q=0.3,de-DE;q=0.2,de;q=0.1"}, body: Body(Empty) }
2024-11-05T22:52:52.353011Z DEBUG weylus::web: Got request: Request { method: GET, uri: /?access_code=dfc35c78, version: HTTP/1.1, headers: {"host": "192.168.59.1:1701", "connection": "keep-alive", "sec-ch-ua": "\"Chromium\";v=\"130\", \"Google Chrome\";v=\"130\", \"Not?A_Brand\";v=\"99\"", "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": "\"Android\"", "upgrade-insecure-requests": "1", "user-agent": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "sec-fetch-site": "same-origin", "sec-fetch-mode": "navigate", "sec-fetch-user": "?1", "sec-fetch-dest": "document", "referer": "https://192.168.59.1:1701/?access_code=0f39b781", "accept-encoding": "gzip, deflate, br, zstd", "accept-language": "uk-UA,uk;q=0.9,en-US;q=0.8,en;q=0.7,ru-UA;q=0.6,ru;q=0.5,ja-JP;q=0.4,ja;q=0.3,de-DE;q=0.2,de;q=0.1"}, body: Body(Empty) }
2024-11-05T22:52:52.353242Z DEBUG weylus::web: Web-Client authenticated. address=127.0.0.1:53424
2024-11-05T22:52:52.402559Z DEBUG weylus::web: Got request: Request { method: GET, uri: /style.css, version: HTTP/1.1, headers: {"host": "192.168.59.1:1701", "connection": "keep-alive", "sec-ch-ua-platform": "\"Android\"", "user-agent": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "sec-ch-ua": "\"Chromium\";v=\"130\", \"Google Chrome\";v=\"130\", \"Not?A_Brand\";v=\"99\"", "sec-ch-ua-mobile": "?0", "accept": "text/css,*/*;q=0.1", "sec-fetch-site": "same-origin", "sec-fetch-mode": "no-cors", "sec-fetch-dest": "style", "referer": "https://192.168.59.1:1701/?access_code=dfc35c78", "accept-encoding": "gzip, deflate, br, zstd", "accept-language": "uk-UA,uk;q=0.9,en-US;q=0.8,en;q=0.7,ru-UA;q=0.6,ru;q=0.5,ja-JP;q=0.4,ja;q=0.3,de-DE;q=0.2,de;q=0.1"}, body: Body(Empty) }
2024-11-05T22:52:52.415464Z DEBUG weylus::web: Got request: Request { method: GET, uri: /lib.js, version: HTTP/1.1, headers: {"host": "192.168.59.1:1701", "connection": "keep-alive", "sec-ch-ua-platform": "\"Android\"", "user-agent": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "sec-ch-ua": "\"Chromium\";v=\"130\", \"Google Chrome\";v=\"130\", \"Not?A_Brand\";v=\"99\"", "sec-ch-ua-mobile": "?0", "accept": "*/*", "sec-fetch-site": "same-origin", "sec-fetch-mode": "no-cors", "sec-fetch-dest": "script", "referer": "https://192.168.59.1:1701/?access_code=dfc35c78", "accept-encoding": "gzip, deflate, br, zstd", "accept-language": "uk-UA,uk;q=0.9,en-US;q=0.8,en;q=0.7,ru-UA;q=0.6,ru;q=0.5,ja-JP;q=0.4,ja;q=0.3,de-DE;q=0.2,de;q=0.1"}, body: Body(Empty) }
2024-11-05T22:52:52.617739Z DEBUG weylus::web: Client connected. address=127.0.0.1:40030
2024-11-05T22:52:52.618430Z DEBUG weylus::web: Got request: Request { method: GET, uri: /ws?access_code=dfc35c78, version: HTTP/1.1, headers: {"host": "192.168.59.1:1701", "connection": "Upgrade", "pragma": "no-cache", "cache-control": "no-cache", "user-agent": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "upgrade": "websocket", "origin": "https://192.168.59.1:1701", "sec-websocket-version": "13", "accept-encoding": "gzip, deflate, br, zstd", "accept-language": "uk-UA,uk;q=0.9,en-US;q=0.8,en;q=0.7,ru-UA;q=0.6,ru;q=0.5,ja-JP;q=0.4,ja;q=0.3,de-DE;q=0.2,de;q=0.1", "sec-websocket-key": "HU1Ru+Q/aE4yTjnp/dvX5A==", "sec-websocket-extensions": "permessage-deflate; client_max_window_bits"}, body: Body(Empty) }
2024-11-05T22:52:52.618609Z DEBUG weylus::web: Web-Client authenticated. address=127.0.0.1:40030
2024-11-05T22:52:52.625770Z TRACE weylus::websocket: Received message: GetCapturableList
2024-11-05T22:52:52.629239Z DEBUG weylus::capturable::pipewire: Response from DBus: response: OrgFreedesktopPortalRequestResponse { response: 0, results: {"session_handle": Variant("/org/freedesktop/portal/desktop/session/1_18/weylus14315882587227825134")} }, message: Message { Type: Signal, Path: "/org/freedesktop/portal/desktop/request/1_18/weylus2308099861250551618", Interface: "org.freedesktop.portal.Request", Member: "Response", Sender: ":1.10", Destination: ":1.18", Serial: 93, Args: [0, {"session_handle": Variant("/org/freedesktop/portal/desktop/session/1_18/weylus14315882587227825134")}] }
2024-11-05T22:52:52.629419Z DEBUG weylus::capturable::pipewire: on_create_session_response
2024-11-05T22:52:52.629469Z DEBUG weylus::capturable::pipewire: select_sources
2024-11-05T22:52:52.629849Z DEBUG weylus::capturable::pipewire: Available source types: 1.
2024-11-05T22:52:54.799582Z DEBUG weylus::capturable::pipewire: Response from DBus: response: OrgFreedesktopPortalRequestResponse { response: 1, results: {} }, message: Message { Type: Signal, Path: "/org/freedesktop/portal/desktop/request/1_18/weylus17050432315288973656", Interface: "org.freedesktop.portal.Request", Member: "Response", Sender: ":1.10", Destination: ":1.18", Serial: 101, Args: [1, {}] }
2024-11-05T22:52:54.799746Z  WARN weylus::capturable::pipewire: DBus response: User cancelled interaction.
2024-11-05T22:52:54.799829Z  WARN weylus::capturable: Failed to get list of capturables via dbus/pipewire: Failed to obtain screen capture.
2024-11-05T22:52:54.801423Z TRACE weylus::websocket: Sent message: CapturableList(["Desktop", "Monitor: DP-2", "[Без имени]-2.0 (Цвета RGB 8 бит, нелинейное целочисленное, GIMP built-in sRGB, 1 сло", "Test Source 200x200", "Test Source 800x600", "Test Source 1080x720", "Test Source 1920x1080", "Test Source 3840x2160", "Test Source 15360x2160"])
2024-11-05T22:52:54.801609Z TRACE weylus::websocket: Received message: Config(ClientConfiguration { uinput_support: true, capturable_id: None, capture_cursor: false, max_width: 3456, max_height: 1609, client_name: None, frame_rate: 2.1002247498779743 })
2024-11-05T22:52:54.801659Z  INFO weylus::websocket: No capturable is selected
2024-11-05T22:52:54.801698Z TRACE weylus::websocket: Received message: Config(ClientConfiguration { uinput_support: true, capturable_id: None, capture_cursor: false, max_width: 3456, max_height: 1609, client_name: None, frame_rate: 2.1002247498779743 })
2024-11-05T22:52:54.801732Z  INFO weylus::websocket: No capturable is selected
2024-11-05T22:53:03.665530Z TRACE weylus::websocket: Received message: Config(ClientConfiguration { uinput_support: true, capturable_id: Some(2), capture_cursor: false, max_width: 3456, max_height: 1609, client_name: None, frame_rate: 2.1002247498779743 })
2024-11-05T22:53:04.165996Z  INFO weylus::log: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
2024-11-05T22:53:04.194982Z  INFO weylus::log: profile Constrained Baseline, level 6.1, 4:2:0, 8-bit
2024-11-05T22:53:04.195733Z  INFO weylus::log: 264 - core 164 r3108 31e19f9 - H.264/MPEG-4 AVC codec - Copyleft 2003-2023 - http://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=4 lookahead_threads=4 sliced_threads=1 slices=4 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=12 keyint_min=1 scenecut=0 intra_refresh=0 rc=crf mbtree=0 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=0
2024-11-05T22:53:04.195867Z DEBUG weylus::log: Empty MOOV enabled; disabling automatic bitstream filtering
2024-11-05T22:53:04.197448Z  INFO weylus::log: Video: 1676x1014@libx264 pix_fmt: yuv420p
2024-11-05T22:53:04.213173Z TRACE weylus::log: frame=   0 QP=20.00 NAL=3 Slice:I Poc:0   I:6720 P:0    SKIP:0    size=62721 bytes
2024-11-05T22:53:04.642735Z TRACE weylus::log: frame=   1 QP=25.00 NAL=2 Slice:P Poc:2   I:0    P:0    SKIP:6720 size=49 bytes
2024-11-05T22:53:05.110714Z TRACE weylus::log: frame=   2 QP=23.00 NAL=2 Slice:P Poc:4   I:0    P:2    SKIP:6718 size=55 bytes
2024-11-05T22:53:05.586983Z TRACE weylus::log: frame=   3 QP=21.00 NAL=2 Slice:P Poc:6   I:0    P:33   SKIP:6687 size=177 bytes
2024-11-05T22:53:06.062961Z TRACE weylus::log: frame=   4 QP=19.00 NAL=2 Slice:P Poc:8   I:0    P:98   SKIP:6622 size=400 bytes
2024-11-05T22:53:06.539479Z TRACE weylus::log: frame=   5 QP=18.00 NAL=2 Slice:P Poc:10  I:1    P:68   SKIP:6651 size=407 bytes
2024-11-05T22:53:07.016339Z TRACE weylus::log: frame=   6 QP=18.00 NAL=2 Slice:P Poc:12  I:1    P:0    SKIP:6719 size=58 bytes
2024-11-05T22:53:07.491843Z TRACE weylus::log: frame=   7 QP=18.00 NAL=2 Slice:P Poc:14  I:1    P:0    SKIP:6719 size=58 bytes
2024-11-05T22:53:07.969876Z TRACE weylus::log: frame=   8 QP=17.00 NAL=2 Slice:P Poc:16  I:259  P:663  SKIP:5798 size=5958 bytes
2024-11-05T22:53:08.443966Z TRACE weylus::log: frame=   9 QP=17.00 NAL=2 Slice:P Poc:18  I:0    P:1    SKIP:6719 size=54 bytes
2024-11-05T22:53:08.449416Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: OVER, pointer_id: 4, timestamp: 16095000, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(0x0), x: 0.3292102163080258, y: 0.6547231386000175, movement_x: 0, movement_y: 0, pressure: 0.0, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0011580490422968997, height: 0.0011580490422968997 })
2024-11-05T22:53:08.450310Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: ENTER, pointer_id: 4, timestamp: 16095000, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(0x0), x: 0.3292102163080258, y: 0.6547231386000175, movement_x: 0, movement_y: 0, pressure: 0.0, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0011580490422968997, height: 0.0011580490422968997 })
2024-11-05T22:53:08.450932Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 16095000, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(0x0), x: 0.3292102163080258, y: 0.6547231386000175, movement_x: 0, movement_y: 0, pressure: 0.0, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0011580490422968997, height: 0.0011580490422968997 })
2024-11-05T22:53:08.532450Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 16188600, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(0x0), x: 0.33123942582214233, y: 0.6603114349383903, movement_x: 2, movement_y: 3, pressure: 0.0, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0011580490422968997, height: 0.0011580490422968997 })
2024-11-05T22:53:08.667819Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 16325500, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(0x0), x: 0.3332685940308766, y: 0.6793115878703138, movement_x: 1, movement_y: 8, pressure: 0.0, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0011580490422968997, height: 0.0011580490422968997 })
2024-11-05T22:53:08.752214Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 16408400, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(0x0), x: 0.33259221839642594, y: 0.6781939559119112, movement_x: 0, movement_y: 0, pressure: 0.0, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0011580490422968997, height: 0.0011580490422968997 })
2024-11-05T22:53:08.752587Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 16422700, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(0x0), x: 0.3298866332478587, y: 0.6714879593419558, movement_x: -2, movement_y: -3, pressure: 0.0, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0011580490422968997, height: 0.0011580490422968997 })
2024-11-05T22:53:08.754692Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: DOWN, pointer_id: 4, timestamp: 16426300, is_primary: true, pointer_type: Pen, button: Button(PRIMARY), buttons: Button(PRIMARY), x: 0.32109350216770643, y: 0.6435465459232719, movement_x: 0, movement_y: 0, pressure: 0.5588666200637817, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0, height: 0.0 })
2024-11-05T22:53:08.774489Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 16430000, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(PRIMARY), x: 0.32109350216770643, y: 0.6312523895613038, movement_x: 0, movement_y: -5, pressure: 0.5583781003952026, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0, height: 0.0 })
2024-11-05T22:53:08.803430Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 16444300, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(PRIMARY), x: 0.331915801456593, y: 0.5597223739404003, movement_x: 8, movement_y: -32, pressure: 0.5637518167495728, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0, height: 0.0 })
2024-11-05T22:53:08.805847Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 16465700, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(PRIMARY), x: 0.34882568798244684, y: 0.5060748110198374, movement_x: 13, movement_y: -24, pressure: 0.5710796117782593, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0, height: 0.0 })
2024-11-05T22:53:08.837425Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 16480100, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(PRIMARY), x: 0.3785870833113038, y: 0.4434860558856943, movement_x: 22, movement_y: -28, pressure: 0.5808500051498413, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0, height: 0.0 })
2024-11-05T22:53:08.852576Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 16495000, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(PRIMARY), x: 0.4272875333747488, y: 0.3708384083063882, movement_x: 36, movement_y: -33, pressure: 0.6243282556533813, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0, height: 0.0 })
2024-11-05T22:53:08.869566Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 16512500, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(PRIMARY), x: 0.47869352728137887, y: 0.32613217414576595, movement_x: 38, movement_y: -20, pressure: 0.6697606444358826, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0, height: 0.0 })
2024-11-05T22:53:08.886409Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 16530800, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(PRIMARY), x: 0.5158952611161045, y: 0.318308545617408, movement_x: 27, movement_y: -3, pressure: 0.7132388949394226, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0, height: 0.0 })
2024-11-05T22:53:08.902594Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 16546300, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(PRIMARY), x: 0.5530969949508301, y: 0.35295588733286726, movement_x: 28, movement_y: 15, pressure: 0.7278944849967957, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0, height: 0.0 })
2024-11-05T22:53:08.919061Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 16570000, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(PRIMARY), x: 0.5645957524849318, y: 0.3998974536834746, movement_x: 8, movement_y: 21, pressure: 0.8080117106437683, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0, height: 0.0 })
2024-11-05T22:53:08.922188Z TRACE weylus::log: frame=  10 QP=21.00 NAL=2 Slice:P Poc:20  I:34   P:74   SKIP:6612 size=7553 bytes
2024-11-05T22:53:08.937473Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 16584400, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(PRIMARY), x: 0.563242918605266, y: 0.45466264856243993, movement_x: -1, movement_y: 25, pressure: 0.8177821040153503, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0, height: 0.0 })
2024-11-05T22:53:08.955859Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 16595400, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(PRIMARY), x: 0.5429510712963942, y: 0.5261926641833435, movement_x: -15, movement_y: 32, pressure: 0.8275524973869324, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0, height: 0.0 })
2024-11-05T22:53:08.972647Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 16613000, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(PRIMARY), x: 0.5010145841043672, y: 0.5898990512758892, movement_x: -31, movement_y: 28, pressure: 0.7933561205863953, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0, height: 0.0 })
2024-11-05T22:53:08.976319Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 16631700, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(PRIMARY), x: 0.45163771710108913, y: 0.6312523895613038, movement_x: -36, movement_y: 19, pressure: 0.0004885197849944234, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0, height: 0.0 })
2024-11-05T22:53:08.978137Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: UP, pointer_id: 4, timestamp: 16649500, is_primary: true, pointer_type: Pen, button: Button(PRIMARY), buttons: Button(0x0), x: 0.45163771710108913, y: 0.6312523895613038, movement_x: 0, movement_y: 0, pressure: 0.0, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0011580490422968997, height: 0.0011580490422968997 })
2024-11-05T22:53:08.978861Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: OUT, pointer_id: 4, timestamp: 16649500, is_primary: true, pointer_type: Pen, button: Button(PRIMARY), buttons: Button(0x0), x: 0.45163771710108913, y: 0.6312523895613038, movement_x: 0, movement_y: 0, pressure: 0.0, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0011580490422968997, height: 0.0011580490422968997 })
2024-11-05T22:53:08.979550Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: LEAVE, pointer_id: 4, timestamp: 16649500, is_primary: true, pointer_type: Pen, button: Button(PRIMARY), buttons: Button(0x0), x: 0.45163771710108913, y: 0.6312523895613038, movement_x: 0, movement_y: 0, pressure: 0.0, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0011580490422968997, height: 0.0011580490422968997 })
2024-11-05T22:53:09.006894Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: OVER, pointer_id: 5, timestamp: 16660500, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(0x0), x: 0.41984715356349794, y: 0.6312523895613038, movement_x: 0, movement_y: 0, pressure: 0.0, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0011580490422968997, height: 0.0011580490422968997 })
2024-11-05T22:53:09.007371Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: ENTER, pointer_id: 5, timestamp: 16660500, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(0x0), x: 0.41984715356349794, y: 0.6312523895613038, movement_x: 0, movement_y: 0, pressure: 0.0, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0011580490422968997, height: 0.0011580490422968997 })
2024-11-05T22:53:09.008093Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 5, timestamp: 16660500, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(0x0), x: 0.41984715356349794, y: 0.6312523895613038, movement_x: 0, movement_y: 0, pressure: 0.0, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0011580490422968997, height: 0.0011580490422968997 })
2024-11-05T22:53:09.010285Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: OVER, pointer_id: 1, timestamp: 16689500, is_primary: true, pointer_type: Mouse, button: Button(0x0), buttons: Button(0x0), x: 0.41984715356349794, y: 0.6312523895613038, movement_x: 0, movement_y: 0, pressure: 0.0, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0011580490422968997, height: 0.0011580490422968997 })
2024-11-05T22:53:09.011124Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: ENTER, pointer_id: 1, timestamp: 16689500, is_primary: true, pointer_type: Mouse, button: Button(0x0), buttons: Button(0x0), x: 0.41984715356349794, y: 0.6312523895613038, movement_x: 0, movement_y: 0, pressure: 0.0, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0011580490422968997, height: 0.0011580490422968997 })
2024-11-05T22:53:09.021051Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 5, timestamp: 16664000, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(0x0), x: 0.4151124002061965, y: 0.6301346893297213, movement_x: -3, movement_y: -1, pressure: 0.0, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0011580490422968997, height: 0.0011580490422968997 })
2024-11-05T22:53:09.401090Z TRACE weylus::log: frame=  11 QP=22.00 NAL=2 Slice:P Poc:22  I:27   P:34   SKIP:6659 size=3070 bytes
2024-11-05T22:53:09.873463Z TRACE weylus::log: frame=  12 QP=17.00 NAL=3 Slice:I Poc:0   I:6720 P:0    SKIP:0    size=82724 bytes
2024-11-05T22:53:10.355268Z TRACE weylus::log: frame=  13 QP=25.00 NAL=2 Slice:P Poc:2   I:0    P:0    SKIP:6720 size=49 bytes
2024-11-05T22:53:10.826246Z TRACE weylus::log: frame=  14 QP=23.00 NAL=2 Slice:P Poc:4   I:0    P:0    SKIP:6720 size=46 bytes
2024-11-05T22:53:11.301168Z TRACE weylus::log: frame=  15 QP=21.00 NAL=2 Slice:P Poc:6   I:0    P:0    SKIP:6720 size=49 bytes
2024-11-05T22:53:11.778534Z TRACE weylus::log: frame=  16 QP=20.00 NAL=2 Slice:P Poc:8   I:0    P:1    SKIP:6719 size=53 bytes
2024-11-05T22:53:12.252898Z TRACE weylus::log: frame=  17 QP=19.00 NAL=2 Slice:P Poc:10  I:0    P:22   SKIP:6698 size=130 bytes
2024-11-05T22:53:12.729576Z TRACE weylus::log: frame=  18 QP=18.00 NAL=2 Slice:P Poc:12  I:0    P:9    SKIP:6711 size=85 bytes
2024-11-05T22:53:13.205234Z TRACE weylus::log: frame=  19 QP=18.00 NAL=2 Slice:P Poc:14  I:0    P:0    SKIP:6720 size=50 bytes
2024-11-05T22:53:13.681285Z TRACE weylus::log: frame=  20 QP=17.00 NAL=2 Slice:P Poc:16  I:0    P:148  SKIP:6572 size=579 bytes
2024-11-05T22:53:14.162748Z TRACE weylus::log: frame=  21 QP=18.00 NAL=2 Slice:P Poc:18  I:5    P:12   SKIP:6703 size=644 bytes
2024-11-05T22:53:14.634913Z TRACE weylus::log: frame=  22 QP=18.00 NAL=2 Slice:P Poc:20  I:65   P:14   SKIP:6641 size=1405 bytes
2024-11-05T22:53:15.113424Z TRACE weylus::log: frame=  23 QP=18.00 NAL=2 Slice:P Poc:22  I:0    P:0    SKIP:6720 size=50 bytes
2024-11-05T22:53:15.591552Z TRACE weylus::log: frame=  24 QP=17.00 NAL=3 Slice:I Poc:0   I:6720 P:0    SKIP:0    size=76996 bytes
2024-11-05T22:53:16.068054Z TRACE weylus::log: frame=  25 QP=25.00 NAL=2 Slice:P Poc:2   I:0    P:0    SKIP:6720 size=49 bytes
2024-11-05T22:53:16.539701Z TRACE weylus::log: frame=  26 QP=23.00 NAL=2 Slice:P Poc:4   I:0    P:0    SKIP:6720 size=46 bytes
2024-11-05T22:53:17.016001Z TRACE weylus::log: frame=  27 QP=21.00 NAL=2 Slice:P Poc:6   I:0    P:1    SKIP:6719 size=54 bytes
^C

I slightly modified the capturables list feature, added printing of additional log messages, and compiled Weylus in the debug mode.

@KarimElsayad247
Copy link

What would an android app need to do? I just started using Weylus and I'm absolutely loving it. If possible I would like to contribute.

@KarimElsayad247
Copy link

Does this have the potential for lower latency? i.e. does Browser overhead naturally result in higher latency that a dedicated app would reduce?

@KarimElsayad247
Copy link

@H-M-H

@H-M-H
Copy link
Owner

H-M-H commented Nov 10, 2024

What would an android app need to do?

First it would need to connect to Weylus via websockets, request a window or a screen to record and send input events to, see https://github.com/H-M-H/Weylus/blob/master/src/protocol.rs for the protocol. Then Weylus will start sending a video stream.

Does this have the potential for lower latency? i.e. does Browser overhead naturally result in higher latency that a dedicated app would reduce?

There are several things that introduce latency. Most importantly:

  • Screen recording and video encoding
  • Network latency
  • Video decoding

For the latter two points there is little customization that can be done with browsers and leaves not much room for improvement. It is possible that a dedicated app could result in lower latency.

If there are more questions about an app, please see #136 or open a discussion here: https://github.com/H-M-H/Weylus/discussions.

@beroal
Copy link
Author

beroal commented Nov 21, 2024

More strokes.

screen-1

2931934b
2024-11-21T17:54:11.714592Z DEBUG weylus::config: Failed to read configuration file: No such file or directory (os error 2)
2024-11-21T17:54:14.238050Z DEBUG weylus::web: Client connected. address=127.0.0.1:46988
2024-11-21T17:54:14.239071Z DEBUG weylus::web: Got request: Request { method: GET, uri: /?access_code=8abf2557, version: HTTP/1.1, headers: {"host": "192.168.59.1:1701", "connection": "keep-alive", "cache-control": "max-age=0", "sec-ch-ua": "\"Google Chrome\";v=\"131\", \"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": "\"Android\"", "upgrade-insecure-requests": "1", "user-agent": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "sec-fetch-site": "same-origin", "sec-fetch-mode": "navigate", "sec-fetch-user": "?1", "sec-fetch-dest": "document", "referer": "https://192.168.59.1:1701/?access_code=13e3b0ed", "accept-encoding": "gzip, deflate, br, zstd", "accept-language": "uk-UA,uk;q=0.9,en-US;q=0.8,en;q=0.7,ru-UA;q=0.6,ru;q=0.5,ja-JP;q=0.4,ja;q=0.3,de-DE;q=0.2,de;q=0.1"}, body: Body(Empty) }
2024-11-21T17:54:14.296257Z DEBUG weylus::web: Got request: Request { method: GET, uri: /style.css, version: HTTP/1.1, headers: {"host": "192.168.59.1:1701", "connection": "keep-alive", "sec-ch-ua-platform": "\"Android\"", "user-agent": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "sec-ch-ua": "\"Google Chrome\";v=\"131\", \"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile": "?0", "accept": "text/css,*/*;q=0.1", "sec-fetch-site": "same-origin", "sec-fetch-mode": "no-cors", "sec-fetch-dest": "style", "referer": "https://192.168.59.1:1701/?access_code=8abf2557", "accept-encoding": "gzip, deflate, br, zstd", "accept-language": "uk-UA,uk;q=0.9,en-US;q=0.8,en;q=0.7,ru-UA;q=0.6,ru;q=0.5,ja-JP;q=0.4,ja;q=0.3,de-DE;q=0.2,de;q=0.1"}, body: Body(Empty) }
2024-11-21T17:54:27.088378Z DEBUG weylus::web: Got request: Request { method: GET, uri: /?access_code=2931934b, version: HTTP/1.1, headers: {"host": "192.168.59.1:1701", "connection": "keep-alive", "sec-ch-ua": "\"Google Chrome\";v=\"131\", \"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": "\"Android\"", "upgrade-insecure-requests": "1", "user-agent": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "sec-fetch-site": "same-origin", "sec-fetch-mode": "navigate", "sec-fetch-user": "?1", "sec-fetch-dest": "document", "referer": "https://192.168.59.1:1701/?access_code=8abf2557", "accept-encoding": "gzip, deflate, br, zstd", "accept-language": "uk-UA,uk;q=0.9,en-US;q=0.8,en;q=0.7,ru-UA;q=0.6,ru;q=0.5,ja-JP;q=0.4,ja;q=0.3,de-DE;q=0.2,de;q=0.1"}, body: Body(Empty) }
2024-11-21T17:54:27.088607Z DEBUG weylus::web: Web-Client authenticated. address=127.0.0.1:46988
2024-11-21T17:54:27.152548Z DEBUG weylus::web: Got request: Request { method: GET, uri: /style.css, version: HTTP/1.1, headers: {"host": "192.168.59.1:1701", "connection": "keep-alive", "sec-ch-ua-platform": "\"Android\"", "user-agent": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "sec-ch-ua": "\"Google Chrome\";v=\"131\", \"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile": "?0", "accept": "text/css,*/*;q=0.1", "sec-fetch-site": "same-origin", "sec-fetch-mode": "no-cors", "sec-fetch-dest": "style", "referer": "https://192.168.59.1:1701/?access_code=2931934b", "accept-encoding": "gzip, deflate, br, zstd", "accept-language": "uk-UA,uk;q=0.9,en-US;q=0.8,en;q=0.7,ru-UA;q=0.6,ru;q=0.5,ja-JP;q=0.4,ja;q=0.3,de-DE;q=0.2,de;q=0.1"}, body: Body(Empty) }
2024-11-21T17:54:27.169479Z DEBUG weylus::web: Got request: Request { method: GET, uri: /lib.js, version: HTTP/1.1, headers: {"host": "192.168.59.1:1701", "connection": "keep-alive", "sec-ch-ua-platform": "\"Android\"", "user-agent": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "sec-ch-ua": "\"Google Chrome\";v=\"131\", \"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile": "?0", "accept": "*/*", "sec-fetch-site": "same-origin", "sec-fetch-mode": "no-cors", "sec-fetch-dest": "script", "referer": "https://192.168.59.1:1701/?access_code=2931934b", "accept-encoding": "gzip, deflate, br, zstd", "accept-language": "uk-UA,uk;q=0.9,en-US;q=0.8,en;q=0.7,ru-UA;q=0.6,ru;q=0.5,ja-JP;q=0.4,ja;q=0.3,de-DE;q=0.2,de;q=0.1"}, body: Body(Empty) }
2024-11-21T17:54:27.320239Z DEBUG weylus::web: Client connected. address=127.0.0.1:47870
2024-11-21T17:54:27.320853Z DEBUG weylus::web: Got request: Request { method: GET, uri: /ws?access_code=2931934b, version: HTTP/1.1, headers: {"host": "192.168.59.1:1701", "connection": "Upgrade", "pragma": "no-cache", "cache-control": "no-cache", "user-agent": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "upgrade": "websocket", "origin": "https://192.168.59.1:1701", "sec-websocket-version": "13", "accept-encoding": "gzip, deflate, br, zstd", "accept-language": "uk-UA,uk;q=0.9,en-US;q=0.8,en;q=0.7,ru-UA;q=0.6,ru;q=0.5,ja-JP;q=0.4,ja;q=0.3,de-DE;q=0.2,de;q=0.1", "sec-websocket-key": "pih3hnC/fYSuSrDuvxBAdA==", "sec-websocket-extensions": "permessage-deflate; client_max_window_bits"}, body: Body(Empty) }
2024-11-21T17:54:27.321023Z DEBUG weylus::web: Web-Client authenticated. address=127.0.0.1:47870
2024-11-21T17:54:27.326772Z TRACE weylus::websocket: Received message: GetCapturableList
2024-11-21T17:54:27.330579Z DEBUG weylus::capturable::pipewire: Response from DBus: response: OrgFreedesktopPortalRequestResponse { response: 0, results: {"session_handle": Variant("/org/freedesktop/portal/desktop/session/1_20/weylus13399439813300762686")} }, message: Message { Type: Signal, Path: "/org/freedesktop/portal/desktop/request/1_20/weylus1746239590214571659", Interface: "org.freedesktop.portal.Request", Member: "Response", Sender: ":1.4", Destination: ":1.20", Serial: 127, Args: [0, {"session_handle": Variant("/org/freedesktop/portal/desktop/session/1_20/weylus13399439813300762686")}] }
2024-11-21T17:54:27.330760Z DEBUG weylus::capturable::pipewire: on_create_session_response
2024-11-21T17:54:27.330811Z DEBUG weylus::capturable::pipewire: select_sources
2024-11-21T17:54:27.331196Z DEBUG weylus::capturable::pipewire: Available source types: 1.
2024-11-21T17:54:29.745555Z DEBUG weylus::capturable::pipewire: Response from DBus: response: OrgFreedesktopPortalRequestResponse { response: 1, results: {} }, message: Message { Type: Signal, Path: "/org/freedesktop/portal/desktop/request/1_20/weylus5831189488202205172", Interface: "org.freedesktop.portal.Request", Member: "Response", Sender: ":1.4", Destination: ":1.20", Serial: 135, Args: [1, {}] }
2024-11-21T17:54:29.745728Z  WARN weylus::capturable::pipewire: DBus response: User cancelled interaction.
2024-11-21T17:54:29.745811Z  WARN weylus::capturable: Failed to get list of capturables via dbus/pipewire: Failed to obtain screen capture.
2024-11-21T17:54:29.746974Z TRACE weylus::websocket: Sent message: CapturableList(["Desktop", "Monitor: DP-2", "[Без имени]-1.0 (Цвета RGB 8 бит, нелинейное целочисленное, GIMP built-in sRGB, 1 сло", "Test Source 200x200", "Test Source 800x600", "Test Source 1080x720", "Test Source 1920x1080", "Test Source 3840x2160", "Test Source 15360x2160"])
2024-11-21T17:54:29.747125Z TRACE weylus::websocket: Received message: Config(ClientConfiguration { uinput_support: true, capturable_id: None, capture_cursor: false, max_width: 3456, max_height: 1609, client_name: None, frame_rate: 2.1002247498779743 })
2024-11-21T17:54:29.747173Z  INFO weylus::websocket: No capturable is selected
2024-11-21T17:54:46.341047Z TRACE weylus::websocket: Received message: Config(ClientConfiguration { uinput_support: true, capturable_id: Some(2), capture_cursor: false, max_width: 3456, max_height: 1609, client_name: None, frame_rate: 2.1002247498779743 })
2024-11-21T17:54:46.841169Z  INFO weylus::log: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
2024-11-21T17:54:46.870271Z  INFO weylus::log: profile Constrained Baseline, level 6.1, 4:2:0, 8-bit
2024-11-21T17:54:46.871022Z  INFO weylus::log: 264 - core 164 r3108 31e19f9 - H.264/MPEG-4 AVC codec - Copyleft 2003-2023 - http://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=4 lookahead_threads=4 sliced_threads=1 slices=4 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=12 keyint_min=1 scenecut=0 intra_refresh=0 rc=crf mbtree=0 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=0
2024-11-21T17:54:46.871147Z DEBUG weylus::log: Empty MOOV enabled; disabling automatic bitstream filtering
2024-11-21T17:54:46.872836Z  INFO weylus::log: Video: 1676x1014@libx264 pix_fmt: yuv420p
2024-11-21T17:54:46.888358Z TRACE weylus::log: frame=   0 QP=20.00 NAL=3 Slice:I Poc:0   I:6720 P:0    SKIP:0    size=68750 bytes
2024-11-21T17:54:47.317458Z TRACE weylus::log: frame=   1 QP=25.00 NAL=2 Slice:P Poc:2   I:0    P:0    SKIP:6720 size=49 bytes
2024-11-21T17:54:47.786164Z TRACE weylus::log: frame=   2 QP=23.00 NAL=2 Slice:P Poc:4   I:0    P:2    SKIP:6718 size=55 bytes
2024-11-21T17:54:48.262213Z TRACE weylus::log: frame=   3 QP=21.00 NAL=2 Slice:P Poc:6   I:0    P:30   SKIP:6690 size=166 bytes
2024-11-21T17:54:48.739968Z TRACE weylus::log: frame=   4 QP=20.00 NAL=2 Slice:P Poc:8   I:0    P:11   SKIP:6709 size=93 bytes
2024-11-21T17:54:49.214646Z TRACE weylus::log: frame=   5 QP=19.00 NAL=2 Slice:P Poc:10  I:0    P:89   SKIP:6631 size=377 bytes
2024-11-21T17:54:49.690707Z TRACE weylus::log: frame=   6 QP=18.00 NAL=2 Slice:P Poc:12  I:1    P:71   SKIP:6648 size=420 bytes
2024-11-21T17:54:50.167714Z TRACE weylus::log: frame=   7 QP=18.00 NAL=2 Slice:P Poc:14  I:1    P:0    SKIP:6719 size=58 bytes
2024-11-21T17:54:50.644402Z TRACE weylus::log: frame=   8 QP=17.00 NAL=2 Slice:P Poc:16  I:175  P:747  SKIP:5798 size=6780 bytes
2024-11-21T17:54:51.119216Z TRACE weylus::log: frame=   9 QP=17.00 NAL=2 Slice:P Poc:18  I:0    P:1    SKIP:6719 size=54 bytes
2024-11-21T17:54:51.595025Z TRACE weylus::log: frame=  10 QP=17.00 NAL=2 Slice:P Poc:20  I:0    P:1    SKIP:6719 size=54 bytes
2024-11-21T17:54:51.726960Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: OVER, pointer_id: 4, timestamp: 24669200, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(0x0), x: 0.34476731025959606, y: 0.5507811134536398, movement_x: 0, movement_y: 0, pressure: 0.0, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0011580490422968997, height: 0.0011580490422968997 })
2024-11-21T17:54:51.727500Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: ENTER, pointer_id: 4, timestamp: 24669200, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(0x0), x: 0.34476731025959606, y: 0.5507811134536398, movement_x: 0, movement_y: 0, pressure: 0.0, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0011580490422968997, height: 0.0011580490422968997 })
2024-11-21T17:54:51.728519Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 24669200, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(0x0), x: 0.34476731025959606, y: 0.5507811134536398, movement_x: 0, movement_y: 0, pressure: 0.0, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0011580490422968997, height: 0.0011580490422968997 })
2024-11-21T17:54:51.739607Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 24694500, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(0x0), x: 0.3440909346251454, y: 0.5474281493052521, movement_x: -1, movement_y: -2, pressure: 0.0, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0011580490422968997, height: 0.0011580490422968997 })
2024-11-21T17:54:51.741731Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 24708800, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(0x0), x: 0.33800334738817805, y: 0.5317809605217163, movement_x: -4, movement_y: -7, pressure: 0.0, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0011580490422968997, height: 0.0011580490422968997 })
2024-11-21T17:54:51.747137Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: DOWN, pointer_id: 4, timestamp: 24712300, is_primary: true, pointer_type: Pen, button: Button(PRIMARY), buttons: Button(PRIMARY), x: 0.3292102163080258, y: 0.4971336188062571, movement_x: 0, movement_y: 0, pressure: 0.7269174456596375, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0, height: 0.0 })
2024-11-21T17:54:51.764495Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 24716100, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(PRIMARY), x: 0.331915801456593, y: 0.4758981336843485, movement_x: 2, movement_y: -10, pressure: 0.7278944849967957, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0, height: 0.0 })
2024-11-21T17:54:51.776303Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 24731800, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(PRIMARY), x: 0.345443727199429, y: 0.4211329388053832, movement_x: 10, movement_y: -24, pressure: 0.7313141226768494, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0, height: 0.0 })
2024-11-21T17:54:51.805950Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 24745800, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(PRIMARY), x: 0.3738522886486201, y: 0.3652501119680154, movement_x: 21, movement_y: -25, pressure: 0.7425500750541687, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0, height: 0.0 })
2024-11-21T17:54:51.821449Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 24766200, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(PRIMARY), x: 0.4097012299090621, y: 0.32501447391418337, movement_x: 27, movement_y: -18, pressure: 0.7855398058891296, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0, height: 0.0 })
2024-11-21T17:54:51.837817Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 24780400, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(PRIMARY), x: 0.4550197191894893, y: 0.30489668902385736, movement_x: 33, movement_y: -9, pressure: 0.8265754580497742, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0, height: 0.0 })
2024-11-21T17:54:51.854743Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 24798400, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(PRIMARY), x: 0.4780171516469282, y: 0.30936728513064754, movement_x: 17, movement_y: 2, pressure: 0.8358573317527771, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0, height: 0.0 })
2024-11-21T17:54:51.871776Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 24813000, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(PRIMARY), x: 0.511160507758803, y: 0.3507206234160622, movement_x: 25, movement_y: 18, pressure: 0.8485588431358337, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0, height: 0.0 })
2024-11-21T17:54:51.889255Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 24831000, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(PRIMARY), x: 0.5240120165618061, y: 0.41666234269859304, movement_x: 9, movement_y: 30, pressure: 0.8563751578330994, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0, height: 0.0 })
2024-11-21T17:54:51.905180Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 24846900, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(PRIMARY), x: 0.5213064314132388, y: 0.4971336188062571, movement_x: -2, movement_y: 36, pressure: 0.8671225905418396, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0, height: 0.0 })
2024-11-21T17:54:51.922369Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 24867100, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(PRIMARY), x: 0.5118368833932537, y: 0.5608400058988028, movement_x: -7, movement_y: 28, pressure: 0.873961865901947, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0, height: 0.0 })
2024-11-21T17:54:51.936516Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 24884500, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(PRIMARY), x: 0.4996617915300835, y: 0.6088992042078126, movement_x: -9, movement_y: 22, pressure: 0.8768930435180664, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0, height: 0.0 })
2024-11-21T17:54:51.938004Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 24898900, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(PRIMARY), x: 0.4868102827270805, y: 0.6424289139648693, movement_x: -9, movement_y: 15, pressure: 0.0004885197849944234, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0, height: 0.0 })
2024-11-21T17:54:51.938291Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: UP, pointer_id: 4, timestamp: 24911900, is_primary: true, pointer_type: Pen, button: Button(PRIMARY), buttons: Button(0x0), x: 0.4868102827270805, y: 0.6424289139648693, movement_x: 0, movement_y: 0, pressure: 0.0, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0011580490422968997, height: 0.0011580490422968997 })
2024-11-21T17:54:51.938578Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: OUT, pointer_id: 4, timestamp: 24911900, is_primary: true, pointer_type: Pen, button: Button(PRIMARY), buttons: Button(0x0), x: 0.4868102827270805, y: 0.6424289139648693, movement_x: 0, movement_y: 0, pressure: 0.0, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0011580490422968997, height: 0.0011580490422968997 })
2024-11-21T17:54:51.939763Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: LEAVE, pointer_id: 4, timestamp: 24911900, is_primary: true, pointer_type: Pen, button: Button(PRIMARY), buttons: Button(0x0), x: 0.4868102827270805, y: 0.6424289139648693, movement_x: 0, movement_y: 0, pressure: 0.0, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0011580490422968997, height: 0.0011580490422968997 })
2024-11-21T17:54:51.955232Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: OVER, pointer_id: 5, timestamp: 24911900, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(0x0), x: 0.4868102827270805, y: 0.6424289139648693, movement_x: 0, movement_y: 0, pressure: 0.0, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0011580490422968997, height: 0.0011580490422968997 })
2024-11-21T17:54:51.960272Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: ENTER, pointer_id: 5, timestamp: 24911900, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(0x0), x: 0.4868102827270805, y: 0.6424289139648693, movement_x: 0, movement_y: 0, pressure: 0.0, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0011580490422968997, height: 0.0011580490422968997 })
2024-11-21T17:54:51.961184Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 5, timestamp: 24911900, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(0x0), x: 0.4868102827270805, y: 0.6424289139648693, movement_x: 0, movement_y: 0, pressure: 0.0, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0011580490422968997, height: 0.0011580490422968997 })
2024-11-21T17:54:52.071551Z TRACE weylus::log: frame=  11 QP=21.00 NAL=2 Slice:P Poc:22  I:50   P:45   SKIP:6625 size=4723 bytes
2024-11-21T17:54:52.548372Z TRACE weylus::log: frame=  12 QP=17.00 NAL=3 Slice:I Poc:0   I:6720 P:0    SKIP:0    size=82706 bytes
2024-11-21T17:54:53.024833Z TRACE weylus::log: frame=  13 QP=25.00 NAL=2 Slice:P Poc:2   I:0    P:0    SKIP:6720 size=49 bytes
2024-11-21T17:54:53.505166Z TRACE weylus::log: frame=  14 QP=23.00 NAL=2 Slice:P Poc:4   I:0    P:0    SKIP:6720 size=46 bytes
2024-11-21T17:54:53.976688Z TRACE weylus::log: frame=  15 QP=21.00 NAL=2 Slice:P Poc:6   I:0    P:0    SKIP:6720 size=49 bytes
2024-11-21T17:54:54.453182Z TRACE weylus::log: frame=  16 QP=20.00 NAL=2 Slice:P Poc:8   I:0    P:0    SKIP:6720 size=49 bytes
2024-11-21T17:54:54.929208Z TRACE weylus::log: frame=  17 QP=19.00 NAL=2 Slice:P Poc:10  I:0    P:18   SKIP:6702 size=119 bytes
2024-11-21T17:54:55.406608Z TRACE weylus::log: frame=  18 QP=18.00 NAL=2 Slice:P Poc:12  I:5    P:19   SKIP:6696 size=942 bytes
2024-11-21T17:54:55.886349Z TRACE weylus::log: frame=  19 QP=18.00 NAL=2 Slice:P Poc:14  I:64   P:14   SKIP:6642 size=1282 bytes
2024-11-21T17:54:56.356759Z TRACE weylus::log: frame=  20 QP=18.00 NAL=2 Slice:P Poc:16  I:0    P:0    SKIP:6720 size=50 bytes
2024-11-21T17:54:56.838706Z TRACE weylus::log: frame=  21 QP=18.00 NAL=2 Slice:P Poc:18  I:0    P:0    SKIP:6720 size=50 bytes
2024-11-21T17:54:57.310820Z TRACE weylus::log: frame=  22 QP=17.00 NAL=2 Slice:P Poc:20  I:0    P:154  SKIP:6566 size=650 bytes
2024-11-21T17:54:57.786098Z TRACE weylus::log: frame=  23 QP=17.00 NAL=2 Slice:P Poc:22  I:0    P:3    SKIP:6717 size=59 bytes
2024-11-21T17:54:58.262168Z TRACE weylus::log: frame=  24 QP=16.00 NAL=3 Slice:I Poc:0   I:6720 P:0    SKIP:0    size=80356 bytes
^C

plot-1

@beroal
Copy link
Author

beroal commented Nov 21, 2024

screen-2

ae1282ba
2024-11-21T18:07:34.426189Z DEBUG weylus::config: Failed to read configuration file: No such file or directory (os error 2)
2024-11-21T18:07:41.519160Z DEBUG weylus::web: Client connected. address=127.0.0.1:44412
2024-11-21T18:07:41.520916Z DEBUG weylus::web: Got request: Request { method: GET, uri: /?access_code=2931934b, version: HTTP/1.1, headers: {"host": "192.168.59.1:1701", "connection": "keep-alive", "cache-control": "max-age=0", "sec-ch-ua": "\"Google Chrome\";v=\"131\", \"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": "\"Android\"", "upgrade-insecure-requests": "1", "user-agent": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "sec-fetch-site": "same-origin", "sec-fetch-mode": "navigate", "sec-fetch-user": "?1", "sec-fetch-dest": "document", "referer": "https://192.168.59.1:1701/?access_code=8abf2557", "accept-encoding": "gzip, deflate, br, zstd", "accept-language": "uk-UA,uk;q=0.9,en-US;q=0.8,en;q=0.7,ru-UA;q=0.6,ru;q=0.5,ja-JP;q=0.4,ja;q=0.3,de-DE;q=0.2,de;q=0.1"}, body: Body(Empty) }
2024-11-21T18:07:41.605632Z DEBUG weylus::web: Got request: Request { method: GET, uri: /style.css, version: HTTP/1.1, headers: {"host": "192.168.59.1:1701", "connection": "keep-alive", "sec-ch-ua-platform": "\"Android\"", "user-agent": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "sec-ch-ua": "\"Google Chrome\";v=\"131\", \"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile": "?0", "accept": "text/css,*/*;q=0.1", "sec-fetch-site": "same-origin", "sec-fetch-mode": "no-cors", "sec-fetch-dest": "style", "referer": "https://192.168.59.1:1701/?access_code=2931934b", "accept-encoding": "gzip, deflate, br, zstd", "accept-language": "uk-UA,uk;q=0.9,en-US;q=0.8,en;q=0.7,ru-UA;q=0.6,ru;q=0.5,ja-JP;q=0.4,ja;q=0.3,de-DE;q=0.2,de;q=0.1"}, body: Body(Empty) }
2024-11-21T18:08:24.260514Z DEBUG weylus::web: Got request: Request { method: GET, uri: /?access_code=ae1282ba, version: HTTP/1.1, headers: {"host": "192.168.59.1:1701", "connection": "keep-alive", "sec-ch-ua": "\"Google Chrome\";v=\"131\", \"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": "\"Android\"", "upgrade-insecure-requests": "1", "user-agent": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "sec-fetch-site": "same-origin", "sec-fetch-mode": "navigate", "sec-fetch-user": "?1", "sec-fetch-dest": "document", "referer": "https://192.168.59.1:1701/?access_code=2931934b", "accept-encoding": "gzip, deflate, br, zstd", "accept-language": "uk-UA,uk;q=0.9,en-US;q=0.8,en;q=0.7,ru-UA;q=0.6,ru;q=0.5,ja-JP;q=0.4,ja;q=0.3,de-DE;q=0.2,de;q=0.1"}, body: Body(Empty) }
2024-11-21T18:08:24.260797Z DEBUG weylus::web: Web-Client authenticated. address=127.0.0.1:44412
2024-11-21T18:08:24.312510Z DEBUG weylus::web: Got request: Request { method: GET, uri: /style.css, version: HTTP/1.1, headers: {"host": "192.168.59.1:1701", "connection": "keep-alive", "sec-ch-ua-platform": "\"Android\"", "user-agent": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "sec-ch-ua": "\"Google Chrome\";v=\"131\", \"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile": "?0", "accept": "text/css,*/*;q=0.1", "sec-fetch-site": "same-origin", "sec-fetch-mode": "no-cors", "sec-fetch-dest": "style", "referer": "https://192.168.59.1:1701/?access_code=ae1282ba", "accept-encoding": "gzip, deflate, br, zstd", "accept-language": "uk-UA,uk;q=0.9,en-US;q=0.8,en;q=0.7,ru-UA;q=0.6,ru;q=0.5,ja-JP;q=0.4,ja;q=0.3,de-DE;q=0.2,de;q=0.1"}, body: Body(Empty) }
2024-11-21T18:08:24.326331Z DEBUG weylus::web: Got request: Request { method: GET, uri: /lib.js, version: HTTP/1.1, headers: {"host": "192.168.59.1:1701", "connection": "keep-alive", "sec-ch-ua-platform": "\"Android\"", "user-agent": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "sec-ch-ua": "\"Google Chrome\";v=\"131\", \"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile": "?0", "accept": "*/*", "sec-fetch-site": "same-origin", "sec-fetch-mode": "no-cors", "sec-fetch-dest": "script", "referer": "https://192.168.59.1:1701/?access_code=ae1282ba", "accept-encoding": "gzip, deflate, br, zstd", "accept-language": "uk-UA,uk;q=0.9,en-US;q=0.8,en;q=0.7,ru-UA;q=0.6,ru;q=0.5,ja-JP;q=0.4,ja;q=0.3,de-DE;q=0.2,de;q=0.1"}, body: Body(Empty) }
2024-11-21T18:08:24.477465Z DEBUG weylus::web: Client connected. address=127.0.0.1:42168
2024-11-21T18:08:24.479825Z DEBUG weylus::web: Got request: Request { method: GET, uri: /ws?access_code=ae1282ba, version: HTTP/1.1, headers: {"host": "192.168.59.1:1701", "connection": "Upgrade", "pragma": "no-cache", "cache-control": "no-cache", "user-agent": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "upgrade": "websocket", "origin": "https://192.168.59.1:1701", "sec-websocket-version": "13", "accept-encoding": "gzip, deflate, br, zstd", "accept-language": "uk-UA,uk;q=0.9,en-US;q=0.8,en;q=0.7,ru-UA;q=0.6,ru;q=0.5,ja-JP;q=0.4,ja;q=0.3,de-DE;q=0.2,de;q=0.1", "sec-websocket-key": "UZzB/975m9KoJ+86ii+W9g==", "sec-websocket-extensions": "permessage-deflate; client_max_window_bits"}, body: Body(Empty) }
2024-11-21T18:08:24.480041Z DEBUG weylus::web: Web-Client authenticated. address=127.0.0.1:42168
2024-11-21T18:08:24.485700Z TRACE weylus::websocket: Received message: GetCapturableList
2024-11-21T18:08:24.489528Z DEBUG weylus::capturable::pipewire: Response from DBus: response: OrgFreedesktopPortalRequestResponse { response: 0, results: {"session_handle": Variant("/org/freedesktop/portal/desktop/session/1_21/weylus9140841349275707235")} }, message: Message { Type: Signal, Path: "/org/freedesktop/portal/desktop/request/1_21/weylus4006767757969825064", Interface: "org.freedesktop.portal.Request", Member: "Response", Sender: ":1.4", Destination: ":1.21", Serial: 152, Args: [0, {"session_handle": Variant("/org/freedesktop/portal/desktop/session/1_21/weylus9140841349275707235")}] }
2024-11-21T18:08:24.489709Z DEBUG weylus::capturable::pipewire: on_create_session_response
2024-11-21T18:08:24.489761Z DEBUG weylus::capturable::pipewire: select_sources
2024-11-21T18:08:24.490195Z DEBUG weylus::capturable::pipewire: Available source types: 1.
2024-11-21T18:08:30.772822Z DEBUG weylus::capturable::pipewire: Response from DBus: response: OrgFreedesktopPortalRequestResponse { response: 1, results: {} }, message: Message { Type: Signal, Path: "/org/freedesktop/portal/desktop/request/1_21/weylus4181873168745376739", Interface: "org.freedesktop.portal.Request", Member: "Response", Sender: ":1.4", Destination: ":1.21", Serial: 160, Args: [1, {}] }
2024-11-21T18:08:30.772993Z  WARN weylus::capturable::pipewire: DBus response: User cancelled interaction.
2024-11-21T18:08:30.773082Z  WARN weylus::capturable: Failed to get list of capturables via dbus/pipewire: Failed to obtain screen capture.
2024-11-21T18:08:30.774437Z TRACE weylus::websocket: Sent message: CapturableList(["Desktop", "Monitor: DP-2", "*[Без имени]-1.0 (Цвета RGB 8 бит, нелинейное целочисленное, GIMP built-in sRGB, 1 сл�", "Test Source 200x200", "Test Source 800x600", "Test Source 1080x720", "Test Source 1920x1080", "Test Source 3840x2160", "Test Source 15360x2160"])
2024-11-21T18:08:30.774595Z TRACE weylus::websocket: Received message: Config(ClientConfiguration { uinput_support: true, capturable_id: None, capture_cursor: false, max_width: 3456, max_height: 1609, client_name: None, frame_rate: 2.1002247498779743 })
2024-11-21T18:08:30.774649Z  INFO weylus::websocket: No capturable is selected
2024-11-21T18:09:06.009439Z TRACE weylus::websocket: Received message: Config(ClientConfiguration { uinput_support: true, capturable_id: Some(2), capture_cursor: false, max_width: 3456, max_height: 1609, client_name: None, frame_rate: 2.1002247498779743 })
2024-11-21T18:09:06.509544Z  INFO weylus::log: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
2024-11-21T18:09:06.538825Z  INFO weylus::log: profile Constrained Baseline, level 6.1, 4:2:0, 8-bit
2024-11-21T18:09:06.539628Z  INFO weylus::log: 264 - core 164 r3108 31e19f9 - H.264/MPEG-4 AVC codec - Copyleft 2003-2023 - http://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=4 lookahead_threads=4 sliced_threads=1 slices=4 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=12 keyint_min=1 scenecut=0 intra_refresh=0 rc=crf mbtree=0 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=0
2024-11-21T18:09:06.539757Z DEBUG weylus::log: Empty MOOV enabled; disabling automatic bitstream filtering
2024-11-21T18:09:06.541376Z  INFO weylus::log: Video: 1676x1014@libx264 pix_fmt: yuv420p
2024-11-21T18:09:06.557582Z TRACE weylus::log: frame=   0 QP=20.00 NAL=3 Slice:I Poc:0   I:6720 P:0    SKIP:0    size=63643 bytes
2024-11-21T18:09:06.986424Z TRACE weylus::log: frame=   1 QP=25.00 NAL=2 Slice:P Poc:2   I:0    P:0    SKIP:6720 size=49 bytes
2024-11-21T18:09:07.456507Z TRACE weylus::log: frame=   2 QP=23.00 NAL=2 Slice:P Poc:4   I:0    P:2    SKIP:6718 size=55 bytes
2024-11-21T18:09:07.930908Z TRACE weylus::log: frame=   3 QP=21.00 NAL=2 Slice:P Poc:6   I:0    P:29   SKIP:6691 size=162 bytes
2024-11-21T18:09:08.407351Z TRACE weylus::log: frame=   4 QP=19.00 NAL=2 Slice:P Poc:8   I:0    P:93   SKIP:6627 size=388 bytes
2024-11-21T18:09:08.882964Z TRACE weylus::log: frame=   5 QP=18.00 NAL=2 Slice:P Poc:10  I:1    P:68   SKIP:6651 size=400 bytes
2024-11-21T18:09:09.360679Z TRACE weylus::log: frame=   6 QP=18.00 NAL=2 Slice:P Poc:12  I:1    P:0    SKIP:6719 size=58 bytes
2024-11-21T18:09:09.837076Z TRACE weylus::log: frame=   7 QP=18.00 NAL=2 Slice:P Poc:14  I:1    P:0    SKIP:6719 size=58 bytes
2024-11-21T18:09:10.312699Z TRACE weylus::log: frame=   8 QP=17.00 NAL=2 Slice:P Poc:16  I:188  P:687  SKIP:5845 size=6157 bytes
2024-11-21T18:09:10.789551Z TRACE weylus::log: frame=   9 QP=17.00 NAL=2 Slice:P Poc:18  I:0    P:1    SKIP:6719 size=54 bytes
2024-11-21T18:09:11.263999Z TRACE weylus::log: frame=  10 QP=17.00 NAL=2 Slice:P Poc:20  I:0    P:1    SKIP:6719 size=54 bytes
2024-11-21T18:09:11.434306Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: OVER, pointer_id: 4, timestamp: 47203400, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(0x0), x: 0.34679647846833034, y: 0.5675459341955781, movement_x: 0, movement_y: 0, pressure: 0.0, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0011580490422968997, height: 0.0011580490422968997 })
2024-11-21T18:09:11.434714Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: ENTER, pointer_id: 4, timestamp: 47203400, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(0x0), x: 0.34679647846833034, y: 0.5675459341955781, movement_x: 0, movement_y: 0, pressure: 0.0, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0011580490422968997, height: 0.0011580490422968997 })
2024-11-21T18:09:11.435803Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 47203400, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(0x0), x: 0.34679647846833034, y: 0.5675459341955781, movement_x: 0, movement_y: 0, pressure: 0.0, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0011580490422968997, height: 0.0011580490422968997 })
2024-11-21T18:09:11.461447Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 47242400, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(0x0), x: 0.34679647846833034, y: 0.5697812663855633, movement_x: 0, movement_y: 1, pressure: 0.0, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0011580490422968997, height: 0.0011580490422968997 })
2024-11-21T18:09:11.468842Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 47257100, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(0x0), x: 0.3461201028338797, y: 0.5720165985755483, movement_x: 0, movement_y: 1, pressure: 0.0, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0011580490422968997, height: 0.0011580490422968997 })
2024-11-21T18:09:11.469237Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 47264400, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(0x0), x: 0.345443727199429, y: 0.5731342305339509, movement_x: -1, movement_y: 1, pressure: 0.0, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0011580490422968997, height: 0.0011580490422968997 })
2024-11-21T18:09:11.470620Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: DOWN, pointer_id: 4, timestamp: 47267900, is_primary: true, pointer_type: Pen, button: Button(PRIMARY), buttons: Button(PRIMARY), x: 0.33800334738817805, y: 0.5697812663855633, movement_x: 0, movement_y: 0, pressure: 0.715192973613739, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0, height: 0.0 })
2024-11-21T18:09:11.545159Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 47271500, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(PRIMARY), x: 0.4171415684149307, y: 0.3652501119680154, movement_x: 58, movement_y: -91, pressure: 0.7327796816825867, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0, height: 0.0 })
2024-11-21T18:09:11.547821Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 47328900, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(PRIMARY), x: 0.4874866583615312, y: 0.28589653609193394, movement_x: 52, movement_y: -36, pressure: 0.7469467520713806, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0, height: 0.0 })
2024-11-21T18:09:11.579582Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 47350400, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(PRIMARY), x: 0.5328051476419583, y: 0.26354338487503276, movement_x: 34, movement_y: -10, pressure: 0.7889594435691833, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0, height: 0.0 })
2024-11-21T18:09:11.597523Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 47364700, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(PRIMARY), x: 0.5720360909908004, y: 0.268014015118413, movement_x: 29, movement_y: 2, pressure: 0.7987298369407654, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0, height: 0.0 })
2024-11-21T18:09:11.598045Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 47383100, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(PRIMARY), x: 0.5997682768055409, y: 0.29483776244210436, movement_x: 20, movement_y: 12, pressure: 0.8397654891014099, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0, height: 0.0 })
2024-11-21T18:09:11.628978Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 47397200, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(PRIMARY), x: 0.6112669517288781, y: 0.3708384083063882, movement_x: 9, movement_y: 34, pressure: 0.8524670004844666, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0, height: 0.0 })
2024-11-21T18:09:11.647510Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 47415700, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(PRIMARY), x: 0.5936806895685736, y: 0.446839020034082, movement_x: -13, movement_y: 34, pressure: 0.8602833151817322, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0, height: 0.0 })
2024-11-21T18:09:11.664183Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 47429700, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(PRIMARY), x: 0.5382163179390927, y: 0.5686635661539806, movement_x: -41, movement_y: 55, pressure: 0.8680996298789978, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0, height: 0.0 })
2024-11-21T18:09:11.671598Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 47451600, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(PRIMARY), x: 0.5010145841043672, y: 0.6267817251813336, movement_x: -28, movement_y: 26, pressure: 0.7513434290885925, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0, height: 0.0 })
2024-11-21T18:09:11.674025Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 47467400, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(PRIMARY), x: 0.4834283219440626, y: 0.6524878064100323, movement_x: -13, movement_y: 11, pressure: 0.0004885197849944234, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0, height: 0.0 })
2024-11-21T18:09:11.677600Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: UP, pointer_id: 4, timestamp: 47474700, is_primary: true, pointer_type: Pen, button: Button(PRIMARY), buttons: Button(0x0), x: 0.4834283219440626, y: 0.6524878064100323, movement_x: 0, movement_y: 0, pressure: 0.0, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0011580490422968997, height: 0.0011580490422968997 })
2024-11-21T18:09:11.677957Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: OUT, pointer_id: 4, timestamp: 47474700, is_primary: true, pointer_type: Pen, button: Button(PRIMARY), buttons: Button(0x0), x: 0.4834283219440626, y: 0.6524878064100323, movement_x: 0, movement_y: 0, pressure: 0.0, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0011580490422968997, height: 0.0011580490422968997 })
2024-11-21T18:09:11.678822Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: LEAVE, pointer_id: 4, timestamp: 47474700, is_primary: true, pointer_type: Pen, button: Button(PRIMARY), buttons: Button(0x0), x: 0.4834283219440626, y: 0.6524878064100323, movement_x: 0, movement_y: 0, pressure: 0.0, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0011580490422968997, height: 0.0011580490422968997 })
2024-11-21T18:09:11.696135Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: OVER, pointer_id: 5, timestamp: 47474700, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(0x0), x: 0.4834283219440626, y: 0.6524878064100323, movement_x: 0, movement_y: 0, pressure: 0.0, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0011580490422968997, height: 0.0011580490422968997 })
2024-11-21T18:09:11.699601Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: ENTER, pointer_id: 5, timestamp: 47474700, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(0x0), x: 0.4834283219440626, y: 0.6524878064100323, movement_x: 0, movement_y: 0, pressure: 0.0, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0011580490422968997, height: 0.0011580490422968997 })
2024-11-21T18:09:11.699961Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 5, timestamp: 47474700, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(0x0), x: 0.4834283219440626, y: 0.6524878064100323, movement_x: 0, movement_y: 0, pressure: 0.0, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0011580490422968997, height: 0.0011580490422968997 })
2024-11-21T18:09:11.742073Z TRACE weylus::log: frame=  11 QP=22.00 NAL=2 Slice:P Poc:22  I:55   P:87   SKIP:6578 size=9115 bytes
2024-11-21T18:09:12.222891Z TRACE weylus::log: frame=  12 QP=17.00 NAL=3 Slice:I Poc:0   I:6720 P:0    SKIP:0    size=84119 bytes
2024-11-21T18:09:12.693773Z TRACE weylus::log: frame=  13 QP=25.00 NAL=2 Slice:P Poc:2   I:0    P:0    SKIP:6720 size=49 bytes
2024-11-21T18:09:13.173050Z TRACE weylus::log: frame=  14 QP=23.00 NAL=2 Slice:P Poc:4   I:0    P:0    SKIP:6720 size=46 bytes
2024-11-21T18:09:13.646266Z TRACE weylus::log: frame=  15 QP=22.00 NAL=2 Slice:P Poc:6   I:0    P:0    SKIP:6720 size=48 bytes
2024-11-21T18:09:14.122556Z TRACE weylus::log: frame=  16 QP=20.00 NAL=2 Slice:P Poc:8   I:0    P:1    SKIP:6719 size=53 bytes
2024-11-21T18:09:14.597278Z TRACE weylus::log: frame=  17 QP=19.00 NAL=2 Slice:P Poc:10  I:0    P:18   SKIP:6702 size=119 bytes
2024-11-21T18:09:15.074014Z TRACE weylus::log: frame=  18 QP=18.00 NAL=2 Slice:P Poc:12  I:0    P:7    SKIP:6713 size=80 bytes
2024-11-21T18:09:15.550134Z TRACE weylus::log: frame=  19 QP=18.00 NAL=2 Slice:P Poc:14  I:0    P:0    SKIP:6720 size=50 bytes
2024-11-21T18:09:16.027185Z TRACE weylus::log: frame=  20 QP=18.00 NAL=2 Slice:P Poc:16  I:0    P:0    SKIP:6720 size=50 bytes
2024-11-21T18:09:16.502644Z TRACE weylus::log: frame=  21 QP=17.00 NAL=2 Slice:P Poc:18  I:0    P:152  SKIP:6568 size=597 bytes
2024-11-21T18:09:16.979266Z TRACE weylus::log: frame=  22 QP=17.00 NAL=2 Slice:P Poc:20  I:0    P:3    SKIP:6717 size=59 bytes
2024-11-21T18:09:17.454062Z TRACE weylus::log: frame=  23 QP=17.00 NAL=2 Slice:P Poc:22  I:0    P:3    SKIP:6717 size=59 bytes
2024-11-21T18:09:17.934994Z TRACE weylus::log: frame=  24 QP=16.00 NAL=3 Slice:I Poc:0   I:6720 P:0    SKIP:0    size=82101 bytes
2024-11-21T18:09:18.407382Z TRACE weylus::log: frame=  25 QP=25.00 NAL=2 Slice:P Poc:2   I:0    P:0    SKIP:6720 size=49 bytes
2024-11-21T18:09:18.525909Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: OVER, pointer_id: 1, timestamp: 54332200, is_primary: true, pointer_type: Mouse, button: Button(0x0), buttons: Button(0x0), x: 0.4834283219440626, y: 0.6524878064100323, movement_x: 0, movement_y: 0, pressure: 0.0, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0011580490422968997, height: 0.0011580490422968997 })
2024-11-21T18:09:18.526327Z  WARN weylus::input::uinput_device: Failed to activate window, sending no input (CError: code: 1 message: Cannot find desktop ID of the window.)
2024-11-21T18:09:18.526394Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: ENTER, pointer_id: 1, timestamp: 54332200, is_primary: true, pointer_type: Mouse, button: Button(0x0), buttons: Button(0x0), x: 0.4834283219440626, y: 0.6524878064100323, movement_x: 0, movement_y: 0, pressure: 0.0, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0011580490422968997, height: 0.0011580490422968997 })
2024-11-21T18:09:18.526563Z  WARN weylus::input::uinput_device: Failed to activate window, sending no input (CError: code: 1 message: Cannot find desktop ID of the window.)
2024-11-21T18:09:18.889843Z TRACE weylus::log: frame=  26 QP=23.00 NAL=2 Slice:P Poc:4   I:0    P:0    SKIP:6720 size=46 bytes
2024-11-21T18:09:19.359627Z TRACE weylus::log: frame=  27 QP=21.00 NAL=2 Slice:P Poc:6   I:0    P:1    SKIP:6719 size=53 bytes
2024-11-21T18:09:19.834547Z TRACE weylus::log: frame=  28 QP=20.00 NAL=2 Slice:P Poc:8   I:0    P:0    SKIP:6720 size=49 bytes
2024-11-21T18:09:20.310611Z TRACE weylus::log: frame=  29 QP=19.00 NAL=2 Slice:P Poc:10  I:0    P:5    SKIP:6715 size=70 bytes
^C

plot-2

@beroal
Copy link
Author

beroal commented Nov 21, 2024

screen-3

1fbbab59
2024-11-21T18:14:35.804756Z DEBUG weylus::config: Failed to read configuration file: No such file or directory (os error 2)
2024-11-21T18:14:38.233591Z DEBUG weylus::web: Client connected. address=127.0.0.1:47154
2024-11-21T18:14:38.234534Z DEBUG weylus::web: Got request: Request { method: GET, uri: /?access_code=ae1282ba, version: HTTP/1.1, headers: {"host": "192.168.59.1:1701", "connection": "keep-alive", "cache-control": "max-age=0", "sec-ch-ua": "\"Google Chrome\";v=\"131\", \"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": "\"Android\"", "upgrade-insecure-requests": "1", "user-agent": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "sec-fetch-site": "same-origin", "sec-fetch-mode": "navigate", "sec-fetch-user": "?1", "sec-fetch-dest": "document", "referer": "https://192.168.59.1:1701/?access_code=2931934b", "accept-encoding": "gzip, deflate, br, zstd", "accept-language": "uk-UA,uk;q=0.9,en-US;q=0.8,en;q=0.7,ru-UA;q=0.6,ru;q=0.5,ja-JP;q=0.4,ja;q=0.3,de-DE;q=0.2,de;q=0.1"}, body: Body(Empty) }
2024-11-21T18:14:38.319462Z DEBUG weylus::web: Got request: Request { method: GET, uri: /style.css, version: HTTP/1.1, headers: {"host": "192.168.59.1:1701", "connection": "keep-alive", "sec-ch-ua-platform": "\"Android\"", "user-agent": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "sec-ch-ua": "\"Google Chrome\";v=\"131\", \"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile": "?0", "accept": "text/css,*/*;q=0.1", "sec-fetch-site": "same-origin", "sec-fetch-mode": "no-cors", "sec-fetch-dest": "style", "referer": "https://192.168.59.1:1701/?access_code=ae1282ba", "accept-encoding": "gzip, deflate, br, zstd", "accept-language": "uk-UA,uk;q=0.9,en-US;q=0.8,en;q=0.7,ru-UA;q=0.6,ru;q=0.5,ja-JP;q=0.4,ja;q=0.3,de-DE;q=0.2,de;q=0.1"}, body: Body(Empty) }
2024-11-21T18:14:53.667739Z DEBUG weylus::web: Got request: Request { method: GET, uri: /?access_code=1fbbab59, version: HTTP/1.1, headers: {"host": "192.168.59.1:1701", "connection": "keep-alive", "sec-ch-ua": "\"Google Chrome\";v=\"131\", \"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": "\"Android\"", "upgrade-insecure-requests": "1", "user-agent": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "sec-fetch-site": "same-origin", "sec-fetch-mode": "navigate", "sec-fetch-user": "?1", "sec-fetch-dest": "document", "referer": "https://192.168.59.1:1701/?access_code=ae1282ba", "accept-encoding": "gzip, deflate, br, zstd", "accept-language": "uk-UA,uk;q=0.9,en-US;q=0.8,en;q=0.7,ru-UA;q=0.6,ru;q=0.5,ja-JP;q=0.4,ja;q=0.3,de-DE;q=0.2,de;q=0.1"}, body: Body(Empty) }
2024-11-21T18:14:53.667971Z DEBUG weylus::web: Web-Client authenticated. address=127.0.0.1:47154
2024-11-21T18:14:53.715124Z DEBUG weylus::web: Got request: Request { method: GET, uri: /style.css, version: HTTP/1.1, headers: {"host": "192.168.59.1:1701", "connection": "keep-alive", "sec-ch-ua-platform": "\"Android\"", "user-agent": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "sec-ch-ua": "\"Google Chrome\";v=\"131\", \"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile": "?0", "accept": "text/css,*/*;q=0.1", "sec-fetch-site": "same-origin", "sec-fetch-mode": "no-cors", "sec-fetch-dest": "style", "referer": "https://192.168.59.1:1701/?access_code=1fbbab59", "accept-encoding": "gzip, deflate, br, zstd", "accept-language": "uk-UA,uk;q=0.9,en-US;q=0.8,en;q=0.7,ru-UA;q=0.6,ru;q=0.5,ja-JP;q=0.4,ja;q=0.3,de-DE;q=0.2,de;q=0.1"}, body: Body(Empty) }
2024-11-21T18:14:53.732276Z DEBUG weylus::web: Got request: Request { method: GET, uri: /lib.js, version: HTTP/1.1, headers: {"host": "192.168.59.1:1701", "connection": "keep-alive", "sec-ch-ua-platform": "\"Android\"", "user-agent": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "sec-ch-ua": "\"Google Chrome\";v=\"131\", \"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile": "?0", "accept": "*/*", "sec-fetch-site": "same-origin", "sec-fetch-mode": "no-cors", "sec-fetch-dest": "script", "referer": "https://192.168.59.1:1701/?access_code=1fbbab59", "accept-encoding": "gzip, deflate, br, zstd", "accept-language": "uk-UA,uk;q=0.9,en-US;q=0.8,en;q=0.7,ru-UA;q=0.6,ru;q=0.5,ja-JP;q=0.4,ja;q=0.3,de-DE;q=0.2,de;q=0.1"}, body: Body(Empty) }
2024-11-21T18:14:53.857182Z DEBUG weylus::web: Client connected. address=127.0.0.1:33206
2024-11-21T18:14:53.858609Z DEBUG weylus::web: Got request: Request { method: GET, uri: /ws?access_code=1fbbab59, version: HTTP/1.1, headers: {"host": "192.168.59.1:1701", "connection": "Upgrade", "pragma": "no-cache", "cache-control": "no-cache", "user-agent": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "upgrade": "websocket", "origin": "https://192.168.59.1:1701", "sec-websocket-version": "13", "accept-encoding": "gzip, deflate, br, zstd", "accept-language": "uk-UA,uk;q=0.9,en-US;q=0.8,en;q=0.7,ru-UA;q=0.6,ru;q=0.5,ja-JP;q=0.4,ja;q=0.3,de-DE;q=0.2,de;q=0.1", "sec-websocket-key": "CZdat34y2gvKNgaDPEyRdA==", "sec-websocket-extensions": "permessage-deflate; client_max_window_bits"}, body: Body(Empty) }
2024-11-21T18:14:53.858790Z DEBUG weylus::web: Web-Client authenticated. address=127.0.0.1:33206
2024-11-21T18:14:53.865663Z TRACE weylus::websocket: Received message: GetCapturableList
2024-11-21T18:14:53.869193Z DEBUG weylus::capturable::pipewire: Response from DBus: response: OrgFreedesktopPortalRequestResponse { response: 0, results: {"session_handle": Variant("/org/freedesktop/portal/desktop/session/1_22/weylus8744268142294271002")} }, message: Message { Type: Signal, Path: "/org/freedesktop/portal/desktop/request/1_22/weylus3422770542544552209", Interface: "org.freedesktop.portal.Request", Member: "Response", Sender: ":1.4", Destination: ":1.22", Serial: 177, Args: [0, {"session_handle": Variant("/org/freedesktop/portal/desktop/session/1_22/weylus8744268142294271002")}] }
2024-11-21T18:14:53.869390Z DEBUG weylus::capturable::pipewire: on_create_session_response
2024-11-21T18:14:53.869444Z DEBUG weylus::capturable::pipewire: select_sources
2024-11-21T18:14:53.869898Z DEBUG weylus::capturable::pipewire: Available source types: 1.
2024-11-21T18:14:56.340034Z DEBUG weylus::capturable::pipewire: Response from DBus: response: OrgFreedesktopPortalRequestResponse { response: 1, results: {} }, message: Message { Type: Signal, Path: "/org/freedesktop/portal/desktop/request/1_22/weylus12180495189904714585", Interface: "org.freedesktop.portal.Request", Member: "Response", Sender: ":1.4", Destination: ":1.22", Serial: 185, Args: [1, {}] }
2024-11-21T18:14:56.340205Z  WARN weylus::capturable::pipewire: DBus response: User cancelled interaction.
2024-11-21T18:14:56.340392Z  WARN weylus::capturable: Failed to get list of capturables via dbus/pipewire: Failed to obtain screen capture.
2024-11-21T18:14:56.341690Z TRACE weylus::websocket: Sent message: CapturableList(["Desktop", "Monitor: DP-2", "[Без имени]-1.0 (Цвета RGB 8 бит, нелинейное целочисленное, GIMP built-in sRGB, 1 сло", "Test Source 200x200", "Test Source 800x600", "Test Source 1080x720", "Test Source 1920x1080", "Test Source 3840x2160", "Test Source 15360x2160"])
2024-11-21T18:14:56.341862Z TRACE weylus::websocket: Received message: Config(ClientConfiguration { uinput_support: true, capturable_id: None, capture_cursor: false, max_width: 3456, max_height: 1609, client_name: None, frame_rate: 2.1002247498779743 })
2024-11-21T18:14:56.341926Z  INFO weylus::websocket: No capturable is selected
2024-11-21T18:15:16.530733Z TRACE weylus::websocket: Received message: Config(ClientConfiguration { uinput_support: true, capturable_id: Some(2), capture_cursor: false, max_width: 3456, max_height: 1609, client_name: None, frame_rate: 2.1002247498779743 })
2024-11-21T18:15:17.030659Z  INFO weylus::log: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
2024-11-21T18:15:17.060519Z  INFO weylus::log: profile Constrained Baseline, level 6.1, 4:2:0, 8-bit
2024-11-21T18:15:17.061296Z  INFO weylus::log: 264 - core 164 r3108 31e19f9 - H.264/MPEG-4 AVC codec - Copyleft 2003-2023 - http://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=4 lookahead_threads=4 sliced_threads=1 slices=4 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=12 keyint_min=1 scenecut=0 intra_refresh=0 rc=crf mbtree=0 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=0
2024-11-21T18:15:17.061503Z DEBUG weylus::log: Empty MOOV enabled; disabling automatic bitstream filtering
2024-11-21T18:15:17.063103Z  INFO weylus::log: Video: 1676x1014@libx264 pix_fmt: yuv420p
2024-11-21T18:15:17.081773Z TRACE weylus::log: frame=   0 QP=20.00 NAL=3 Slice:I Poc:0   I:6720 P:0    SKIP:0    size=68658 bytes
2024-11-21T18:15:17.507015Z TRACE weylus::log: frame=   1 QP=25.00 NAL=2 Slice:P Poc:2   I:0    P:0    SKIP:6720 size=49 bytes
2024-11-21T18:15:17.975524Z TRACE weylus::log: frame=   2 QP=23.00 NAL=2 Slice:P Poc:4   I:0    P:2    SKIP:6718 size=55 bytes
2024-11-21T18:15:18.452384Z TRACE weylus::log: frame=   3 QP=21.00 NAL=2 Slice:P Poc:6   I:0    P:29   SKIP:6691 size=162 bytes
2024-11-21T18:15:18.930175Z TRACE weylus::log: frame=   4 QP=20.00 NAL=2 Slice:P Poc:8   I:0    P:9    SKIP:6711 size=85 bytes
2024-11-21T18:15:19.405920Z TRACE weylus::log: frame=   5 QP=19.00 NAL=2 Slice:P Poc:10  I:0    P:87   SKIP:6633 size=371 bytes
2024-11-21T18:15:19.880637Z TRACE weylus::log: frame=   6 QP=18.00 NAL=2 Slice:P Poc:12  I:1    P:76   SKIP:6643 size=440 bytes
2024-11-21T18:15:20.302173Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: OVER, pointer_id: 4, timestamp: 26670800, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(0x0), x: 0.31906429265358993, y: 0.45466264856243993, movement_x: 0, movement_y: 0, pressure: 0.0, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0011580490422968997, height: 0.0011580490422968997 })
2024-11-21T18:15:20.302591Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: ENTER, pointer_id: 4, timestamp: 26670800, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(0x0), x: 0.31906429265358993, y: 0.45466264856243993, movement_x: 0, movement_y: 0, pressure: 0.0, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0011580490422968997, height: 0.0011580490422968997 })
2024-11-21T18:15:20.303048Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 26670800, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(0x0), x: 0.31906429265358993, y: 0.45466264856243993, movement_x: 0, movement_y: 0, pressure: 0.0, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0011580490422968997, height: 0.0011580490422968997 })
2024-11-21T18:15:20.329573Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: DOWN, pointer_id: 4, timestamp: 26727700, is_primary: true, pointer_type: Pen, button: Button(PRIMARY), buttons: Button(PRIMARY), x: 0.32718104809929155, y: 0.4412507919688893, movement_x: 0, movement_y: 0, pressure: 0.6995603442192078, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0, height: 0.0 })
2024-11-21T18:15:20.357365Z TRACE weylus::log: frame=   7 QP=18.00 NAL=2 Slice:P Poc:14  I:4    P:16   SKIP:6700 size=713 bytes
2024-11-21T18:15:20.364619Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 26731600, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(PRIMARY), x: 0.33800334738817805, y: 0.42448590295377087, movement_x: 8, movement_y: -8, pressure: 0.7000488638877869, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0, height: 0.0 })
2024-11-21T18:15:20.464630Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 26745600, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(PRIMARY), x: 0.42458194822618167, y: 0.3551912195228524, movement_x: 64, movement_y: -31, pressure: 0.7122618556022644, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0, height: 0.0 })
2024-11-21T18:15:20.467110Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 26782100, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(PRIMARY), x: 0.5774472612879349, y: 0.5977226798042471, movement_x: 113, movement_y: 109, pressure: 0.859306275844574, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0, height: 0.0 })
2024-11-21T18:15:20.496784Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 26861100, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(PRIMARY), x: 0.5585081652479644, y: 0.7083706332474001, movement_x: -14, movement_y: 49, pressure: 0.8666340708732605, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0, height: 0.0 })
2024-11-21T18:15:20.505660Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 26882500, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(PRIMARY), x: 0.5348343158506926, y: 0.7597828639779778, movement_x: -18, movement_y: 23, pressure: 0.7669760584831238, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0, height: 0.0 })
2024-11-21T18:15:20.507948Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 4, timestamp: 26898500, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(PRIMARY), x: 0.5104840908189701, y: 0.8044890981386, movement_x: -18, movement_y: 20, pressure: 0.0004885197849944234, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0, height: 0.0 })
2024-11-21T18:15:20.510349Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: UP, pointer_id: 4, timestamp: 26905600, is_primary: true, pointer_type: Pen, button: Button(PRIMARY), buttons: Button(0x0), x: 0.5104840908189701, y: 0.8044890981386, movement_x: 0, movement_y: 0, pressure: 0.0, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0011580490422968997, height: 0.0011580490422968997 })
2024-11-21T18:15:20.510981Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: OUT, pointer_id: 4, timestamp: 26905600, is_primary: true, pointer_type: Pen, button: Button(PRIMARY), buttons: Button(0x0), x: 0.5104840908189701, y: 0.8044890981386, movement_x: 0, movement_y: 0, pressure: 0.0, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0011580490422968997, height: 0.0011580490422968997 })
2024-11-21T18:15:20.513276Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: LEAVE, pointer_id: 4, timestamp: 26905600, is_primary: true, pointer_type: Pen, button: Button(PRIMARY), buttons: Button(0x0), x: 0.5104840908189701, y: 0.8044890981386, movement_x: 0, movement_y: 0, pressure: 0.0, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0011580490422968997, height: 0.0011580490422968997 })
2024-11-21T18:15:20.530610Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: OVER, pointer_id: 5, timestamp: 26905600, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(0x0), x: 0.5104840908189701, y: 0.7854889452066766, movement_x: 0, movement_y: 0, pressure: 0.0, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0011580490422968997, height: 0.0011580490422968997 })
2024-11-21T18:15:20.533606Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: ENTER, pointer_id: 5, timestamp: 26905600, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(0x0), x: 0.5104840908189701, y: 0.7854889452066766, movement_x: 0, movement_y: 0, pressure: 0.0, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0011580490422968997, height: 0.0011580490422968997 })
2024-11-21T18:15:20.534532Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 5, timestamp: 26905600, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(0x0), x: 0.5104840908189701, y: 0.7854889452066766, movement_x: 0, movement_y: 0, pressure: 0.0, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0011580490422968997, height: 0.0011580490422968997 })
2024-11-21T18:15:20.547197Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: MOVE, pointer_id: 5, timestamp: 26914900, is_primary: true, pointer_type: Pen, button: Button(0x0), buttons: Button(0x0), x: 0.5043965448873851, y: 0.7877242773966617, movement_x: -4, movement_y: 1, pressure: 0.0, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0011580490422968997, height: 0.0011580490422968997 })
2024-11-21T18:15:20.838463Z TRACE weylus::log: frame=   8 QP=21.00 NAL=2 Slice:P Poc:16  I:25   P:38   SKIP:6657 size=3732 bytes
2024-11-21T18:15:21.310577Z TRACE weylus::log: frame=   9 QP=19.00 NAL=2 Slice:P Poc:18  I:1    P:44   SKIP:6675 size=598 bytes
2024-11-21T18:15:21.790333Z TRACE weylus::log: frame=  10 QP=19.00 NAL=2 Slice:P Poc:20  I:1    P:0    SKIP:6719 size=58 bytes
2024-11-21T18:15:22.262906Z TRACE weylus::log: frame=  11 QP=18.00 NAL=2 Slice:P Poc:22  I:1    P:31   SKIP:6688 size=305 bytes
2024-11-21T18:15:22.347164Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: OVER, pointer_id: 1, timestamp: 28750800, is_primary: true, pointer_type: Mouse, button: Button(0x0), buttons: Button(0x0), x: 0.5043965448873851, y: 0.7877242773966617, movement_x: 0, movement_y: 0, pressure: 0.0, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0011580490422968997, height: 0.0011580490422968997 })
2024-11-21T18:15:22.347823Z TRACE weylus::websocket: Received message: PointerEvent(PointerEvent { event_type: ENTER, pointer_id: 1, timestamp: 28750800, is_primary: true, pointer_type: Mouse, button: Button(0x0), buttons: Button(0x0), x: 0.5043965448873851, y: 0.7877242773966617, movement_x: 0, movement_y: 0, pressure: 0.0, tilt_x: 0, tilt_y: 0, twist: 0, width: 0.0011580490422968997, height: 0.0011580490422968997 })
2024-11-21T18:15:22.743343Z TRACE weylus::log: frame=  12 QP=17.00 NAL=3 Slice:I Poc:0   I:6720 P:0    SKIP:0    size=81275 bytes
2024-11-21T18:15:23.218064Z TRACE weylus::log: frame=  13 QP=25.00 NAL=2 Slice:P Poc:2   I:0    P:0    SKIP:6720 size=49 bytes
2024-11-21T18:15:23.696154Z TRACE weylus::log: frame=  14 QP=23.00 NAL=2 Slice:P Poc:4   I:0    P:0    SKIP:6720 size=46 bytes
2024-11-21T18:15:24.166567Z TRACE weylus::log: frame=  15 QP=21.00 NAL=2 Slice:P Poc:6   I:0    P:1    SKIP:6719 size=54 bytes
2024-11-21T18:15:24.643409Z TRACE weylus::log: frame=  16 QP=20.00 NAL=2 Slice:P Poc:8   I:1    P:0    SKIP:6719 size=57 bytes
2024-11-21T18:15:25.119934Z TRACE weylus::log: frame=  17 QP=19.00 NAL=2 Slice:P Poc:10  I:0    P:21   SKIP:6699 size=130 bytes
2024-11-21T18:15:25.593918Z TRACE weylus::log: frame=  18 QP=18.00 NAL=2 Slice:P Poc:12  I:0    P:5    SKIP:6715 size=71 bytes
2024-11-21T18:15:26.070531Z TRACE weylus::log: frame=  19 QP=18.00 NAL=2 Slice:P Poc:14  I:0    P:0    SKIP:6720 size=50 bytes
2024-11-21T18:15:26.547843Z TRACE weylus::log: frame=  20 QP=17.00 NAL=2 Slice:P Poc:16  I:0    P:149  SKIP:6571 size=586 bytes
2024-11-21T18:15:27.023991Z TRACE weylus::log: frame=  21 QP=17.00 NAL=2 Slice:P Poc:18  I:0    P:3    SKIP:6717 size=59 bytes
2024-11-21T18:15:27.499901Z TRACE weylus::log: frame=  22 QP=17.00 NAL=2 Slice:P Poc:20  I:0    P:3    SKIP:6717 size=59 bytes
2024-11-21T18:15:27.974963Z TRACE weylus::log: frame=  23 QP=17.00 NAL=2 Slice:P Poc:22  I:0    P:3    SKIP:6717 size=59 bytes
2024-11-21T18:15:28.453432Z TRACE weylus::log: frame=  24 QP=16.00 NAL=3 Slice:I Poc:0   I:6720 P:0    SKIP:0    size=84908 bytes
2024-11-21T18:15:28.927268Z TRACE weylus::log: frame=  25 QP=25.00 NAL=2 Slice:P Poc:2   I:0    P:0    SKIP:6720 size=49 bytes
2024-11-21T18:15:29.403942Z TRACE weylus::log: frame=  26 QP=23.00 NAL=2 Slice:P Poc:4   I:0    P:0    SKIP:6720 size=46 bytes
2024-11-21T18:15:29.880483Z TRACE weylus::log: frame=  27 QP=21.00 NAL=2 Slice:P Poc:6   I:4    P:15   SKIP:6701 size=595 bytes
2024-11-21T18:15:30.357279Z TRACE weylus::log: frame=  28 QP=20.00 NAL=2 Slice:P Poc:8   I:61   P:16   SKIP:6643 size=1273 bytes
2024-11-21T18:15:30.836169Z TRACE weylus::log: frame=  29 QP=19.00 NAL=2 Slice:P Poc:10  I:0    P:19   SKIP:6701 size=224 bytes
2024-11-21T18:15:31.313977Z TRACE weylus::log: frame=  30 QP=18.00 NAL=2 Slice:P Poc:12  I:0    P:13   SKIP:6707 size=148 bytes
2024-11-21T18:15:31.783768Z TRACE weylus::log: frame=  31 QP=18.00 NAL=2 Slice:P Poc:14  I:0    P:0    SKIP:6720 size=50 bytes
^C

plot-3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants