gstwebrtc-api: Guacamole integration issues
There are several observed issues regarding the integration of the Guacamole-based keyboard handler:
- The
modifier_state
is consistently sent as "Undefined" because themodifierState
is not defined within the source code. Consequently, this results in errors during JSON deserialization, such as:
0:00:08.663457232 24 0x7f859800a860 ERROR webrtcsink net/webrtc/src/webrtcsink/imp.rs:286:gstrswebrtc::webrtcsink::imp::create_navigation_event: Invalid navigation event: "{\"event\":\"KeyRelease\",\"key\":\"a\"}"
- Guacamole incorrectly identifies certain characters, like Cyrillic characters. For example, "ф" (Cyrillic_ef) is identified as 16778308 (0x1000444), a value not present in the
keysymsToStrings
mapping table. This leads to issues where the user receives incomplete information, as seen in the following error message:
0:28:39.846410858 24 0x7f859800a860 ERROR webrtcsink net/webrtc/src/webrtcsink/imp.rs:286:gstrswebrtc::webrtcsink::imp::create_navigation_event: Invalid navigation event: "{\"event\":\"KeyPress\"}"
With due respect to Guacamole, it is suggested that we may not actually require its use, and relying on the native browser event's key/code values should suffice for most of our requirements.