Image RemoteFX - neutrinolabs/xrdp GitHub Wiki

As Windows 11 client doesn't send (Video) RemoteFX capability anymore. Image RemoteFX is available instead. Here is a note Image RemoteFX specification to implement.

Specification

Difference

Difference between Remote FX video mode and image mode.

  • If the encoder is initialized with OperationalMode set to video mode, then it MUST send the encode header message sequence at the start of the stream. The encode header message sequence is then followed by an arbitrary number of encode data message sequences.
  • If the encoder is initialized with OperationalMode set to image mode, then it MUST send the encode header message sequence before every encode data message sequence.

Establishing connections

[2023-09-17T15:26:14.915+0900] [DEBUG] [xrdp_rdp_recv(xrdp_rdp.c:490)] xrdp_rdp_recv: out code -1 (send demand active)
[2023-09-17T15:26:14.926+0900] [INFO ] [xrdp_caps_process_confirm_active(xrdp_caps.c:758)] Received [MS-RDPBCGR] TS_CONFIRM_ACTIVE_PDU - TS_CAPS_SET capabilitySetType = CAPSTYPE_GENERAL
[2023-09-17T15:26:14.927+0900] [INFO ] [xrdp_caps_process_confirm_active(xrdp_caps.c:763)] Received [MS-RDPBCGR] TS_CONFIRM_ACTIVE_PDU - TS_CAPS_SET capabilitySetType = CAPSTYPE_BITMAP - Ignored
[2023-09-17T15:26:14.928+0900] [INFO ] [xrdp_caps_process_confirm_active(xrdp_caps.c:767)] Received [MS-RDPBCGR] TS_CONFIRM_ACTIVE_PDU - TS_CAPS_SET capabilitySetType = CAPSTYPE_ORDER
[2023-09-17T15:26:14.932+0900] [INFO ] [xrdp_caps_process_order(xrdp_caps.c:197)] Client Capability: bitmap cache v3 supported
[2023-09-17T15:26:14.934+0900] [INFO ] [xrdp_caps_process_confirm_active(xrdp_caps.c:772)] Received [MS-RDPBCGR] TS_CONFIRM_ACTIVE_PDU - TS_CAPS_SET capabilitySetType = CAPSTYPE_BITMAPCACHE
[2023-09-17T15:26:14.935+0900] [INFO ] [xrdp_caps_process_confirm_active(xrdp_caps.c:799)] Received [MS-RDPBCGR] TS_CONFIRM_ACTIVE_PDU - TS_CAPS_SET capabilitySetType = CAPSTYPE_COLORCACHE - Ignored
[2023-09-17T15:26:14.937+0900] [INFO ] [xrdp_caps_process_confirm_active(xrdp_caps.c:786)] Received [MS-RDPBCGR] TS_CONFIRM_ACTIVE_PDU - TS_CAPS_SET capabilitySetType = CAPSTYPE_ACTIVATION - Ignored
[2023-09-17T15:26:14.938+0900] [INFO ] [xrdp_caps_process_confirm_active(xrdp_caps.c:777)] Received [MS-RDPBCGR] TS_CONFIRM_ACTIVE_PDU - TS_CAPS_SET capabilitySetType = CAPSTYPE_CONTROL - Ignored
[2023-09-17T15:26:14.939+0900] [INFO ] [xrdp_caps_process_confirm_active(xrdp_caps.c:790)] Received [MS-RDPBCGR] TS_CONFIRM_ACTIVE_PDU - TS_CAPS_SET capabilitySetType = CAPSTYPE_POINTER
[2023-09-17T15:26:14.940+0900] [INFO ] [xrdp_caps_process_pointer(xrdp_caps.c:352)] xrdp_caps_process_pointer: client supports new(color) cursor
[2023-09-17T15:26:14.941+0900] [INFO ] [xrdp_caps_process_confirm_active(xrdp_caps.c:795)] Received [MS-RDPBCGR] TS_CONFIRM_ACTIVE_PDU - TS_CAPS_SET capabilitySetType = CAPSTYPE_SHARE - Ignored
[2023-09-17T15:26:14.942+0900] [INFO ] [xrdp_caps_process_confirm_active(xrdp_caps.c:807)] Received [MS-RDPBCGR] TS_CONFIRM_ACTIVE_PDU - TS_CAPS_SET capabilitySetType = CAPSTYPE_INPUT
[2023-09-17T15:26:14.942+0900] [INFO ] [xrdp_caps_process_confirm_active(xrdp_caps.c:803)] Received [MS-RDPBCGR] TS_CONFIRM_ACTIVE_PDU - TS_CAPS_SET capabilitySetType = CAPSTYPE_SOUND - Ignored
[2023-09-17T15:26:14.943+0900] [INFO ] [xrdp_caps_process_confirm_active(xrdp_caps.c:812)] Received [MS-RDPBCGR] TS_CONFIRM_ACTIVE_PDU - TS_CAPS_SET capabilitySetType = CAPSTYPE_FONT - Ignored
[2023-09-17T15:26:14.944+0900] [INFO ] [xrdp_caps_process_confirm_active(xrdp_caps.c:821)] Received [MS-RDPBCGR] TS_CONFIRM_ACTIVE_PDU - TS_CAPS_SET capabilitySetType = CAPSTYPE_GLYPHCACHE
[2023-09-17T15:26:14.945+0900] [INFO ] [xrdp_caps_process_confirm_active(xrdp_caps.c:816)] Received [MS-RDPBCGR] TS_CONFIRM_ACTIVE_PDU - TS_CAPS_SET capabilitySetType = CAPSTYPE_BRUSH
[2023-09-17T15:26:14.946+0900] [INFO ] [xrdp_caps_process_confirm_active(xrdp_caps.c:826)] Received [MS-RDPBCGR] TS_CONFIRM_ACTIVE_PDU - TS_CAPS_SET capabilitySetType = CAPSTYPE_OFFSCREENCACHE
[2023-09-17T15:26:14.947+0900] [INFO ] [xrdp_caps_process_offscreen_bmpcache(xrdp_caps.c:456)] xrdp_process_offscreen_bmpcache: support level 1 cache size 10485760 MB cache entries 100
[2023-09-17T15:26:14.948+0900] [INFO ] [xrdp_caps_process_confirm_active(xrdp_caps.c:836)] Received [MS-RDPBCGR] TS_CONFIRM_ACTIVE_PDU - TS_CAPS_SET capabilitySetType = CAPSTYPE_VIRTUALCHANNEL - Ignored
[2023-09-17T15:26:14.949+0900] [INFO ] [xrdp_caps_process_confirm_active(xrdp_caps.c:840)] Received [MS-RDPBCGR] TS_CONFIRM_ACTIVE_PDU - TS_CAPS_SET capabilitySetType = CAPSTYPE_DRAWNINGRIDCACHE - Ignored
[2023-09-17T15:26:14.950+0900] [INFO ] [xrdp_caps_process_confirm_active(xrdp_caps.c:858)] Received [MS-RDPBCGR] TS_CONFIRM_ACTIVE_PDU - TS_CAPS_SET capabilitySetType = CAPSSETTYPE_MULTIFRAGMENTUPDATE
[2023-09-17T15:26:14.951+0900] [INFO ] [xrdp_caps_process_confirm_active(xrdp_caps.c:868)] Received [MS-RDPBCGR] TS_CONFIRM_ACTIVE_PDU - TS_CAPS_SET capabilitySetType = CAPSETTYPE_SURFACE_COMMANDS
[2023-09-17T15:26:14.952+0900] [INFO ] [xrdp_caps_process_confirm_active(xrdp_caps.c:863)] Received [MS-RDPBCGR] TS_CONFIRM_ACTIVE_PDU - TS_CAPS_SET capabilitySetType = CAPSETTYPE_LARGE_POINTER
[2023-09-17T15:26:14.953+0900] [INFO ] [xrdp_caps_process_confirm_active(xrdp_caps.c:878)] Received [MS-RDPBCGR] TS_CONFIRM_ACTIVE_PDU - TS_CAPS_SET capabilitySetType = CAPSTYPE_FRAME_ACKNOWLEDGE
[2023-09-17T15:26:14.954+0900] [INFO ] [xrdp_caps_process_confirm_active(xrdp_caps.c:873)] Received [MS-RDPBCGR] TS_CONFIRM_ACTIVE_PDU - TS_CAPS_SET capabilitySetType = CAPSSETTYPE_BITMAP_CODECS
[2023-09-17T15:26:14.955+0900] [INFO ] [xrdp_caps_process_codecs(xrdp_caps.c:565)] xrdp_caps_process_codecs: NSCodec(CA8D1BB9-000F-154F-589F-AE2D1A87E2D6), codec id [1], properties len [3]
[2023-09-17T15:26:14.956+0900] [WARN ] [xrdp_caps_process_codecs(xrdp_caps.c:609)] xrdp_caps_process_codecs: unknown(2744CCD4-9D8A-4E74-803C-0ECBEEA19C54), codec id [5], properties len [49]
[2023-09-17T15:26:14.957+0900] [INFO ] [xrdp_caps_process_codecs(xrdp_caps.c:574)] xrdp_caps_process_codecs: RemoteFX(76772F12-BD72-4463-AFB3-B73C9C6F7886), codec id [3], properties len [49]
[2023-09-17T15:26:14.958+0900] [INFO ] [xrdp_caps_process_confirm_active(xrdp_caps.c:934)] Client Capability: LARGE_POINTER_FLAG_96x96 supported
[2023-09-17T15:26:14.958+0900] [WARN ] [xrdp_rdp_process_data_control(xrdp_rdp.c:1156)] Received [MS-RDPBCGR] TS_CONTROL_PDU action 4 is unknown (skipped)
[2023-09-17T15:26:14.959+0900] [DEBUG] [xrdp_rdp_process_data_control(xrdp_rdp.c:1148)] Responding to [MS-RDPBCGR] TS_CONTROL_PDU action CTRLACTION_REQUEST_CONTROL with 3 messages: TS_SYNCHRONIZE_PDU, TS_CONTROL_PDU with CTRLACTION_COOPERATE,  and TS_CONTROL_PDU with CTRLACTION_GRANTED_CONTROL
[2023-09-17T15:26:14.960+0900] [DEBUG] [xrdp_rdp_recv(xrdp_rdp.c:478)] xrdp_rdp_recv: out code 2 (fastpath)
[2023-09-17T15:26:14.961+0900] [DEBUG] [xrdp_rdp_process_data_font(xrdp_rdp.c:1289)] Client sent FONTLIST_LAST, replying with server fontmap
[2023-09-17T15:26:14.962+0900] [INFO ] [xrdp_rdp_process_data_font(xrdp_rdp.c:1293)] yeah, up_and_running
[2023-09-17T15:26:14.963+0900] [DEBUG] [xrdp_rdp_send_fastpath(xrdp_rdp.c:788)] xrdp_rdp_send_fastpath: no_comp_len 4, fragmentation 0
[2023-09-17T15:26:14.964+0900] [DEBUG] [xrdp_sec_send_fastpath(xrdp_sec.c:1930)] xrdp_sec_send_fastpath: no crypt
[2023-09-17T15:26:14.965+0900] [INFO ] [xrdp_channel_drdynvc_start(xrdp_channel.c:760)] xrdp_channel_drdynvc_start: drdynvc_channel_id -1
[2023-09-17T15:26:14.966+0900] [DEBUG] [xrdp_channel_drdynvc_start(xrdp_channel.c:785)] Initializing Dynamic Virtual Channel with channel id 3
[2023-09-17T15:26:14.967+0900] [INFO ] [xrdp_bitmap_create(xrdp_bitmap_common.c:102)] xrdp_bitmap_create: noorders
[2023-09-17T15:26:14.968+0900] [DEBUG] [xrdp_wm_create(xrdp_wm.c:56)] xrdp_0000a4d2_wm_login_state_event_00000001
[2023-09-17T15:26:14.969+0900] [DEBUG] [xrdp_painter_create(xrdp_painter.c:139)] xrdp_painter_create:
[2023-09-17T15:26:14.977+0900] [DEBUG] [xrdp_cache_create(xrdp_cache.c:118)] xrdp_cache_create: 0 120 1 120 2 337
[2023-09-17T15:26:14.978+0900] [INFO ] [xrdp_mm_create(xrdp_mm.c:78)] xrdp_mm_create: bpp 32 mcs_connection_type 6 jpeg_codec_id 0 v3_codec_id 0 rfx_codec_id 3 h264_codec_id 0
[2023-09-17T15:26:14.979+0900] [INFO ] [xrdp_encoder_create(xrdp_encoder.c:107)] xrdp_encoder_create: starting rfx codec session
[2023-09-17T15:26:14.980+0900] [INFO ] [xrdp_encoder_create(xrdp_encoder.c:134)] init_xrdp_encoder: initializing encoder codec_id 3
[2023-09-17T15:26:14.981+0900] [INFO ] [km_load_file(lang.c:290)] Loading keymap file /usr/local/etc/xrdp/km-00000409.ini
[2023-09-17T15:26:14.981+0900] [INFO ] [proc_enc_msg(xrdp_encoder.c:456)] proc_enc_msg: thread is running
[2023-09-17T15:26:14.984+0900] [WARN ] [get_keymaps(lang.c:271)] local keymap file for 0x00000409 found and doesn't match built in keymap, using local keymap file
[2023-09-17T15:26:14.985+0900] [DEBUG] [xrdp_wm_set_login_state(xrdp_wm.c:2381)] Login state change request WMLS_RESET -> WMLS_RESET
[2023-09-17T15:26:14.986+0900] [DEBUG] [xrdp_wm_login_state_changed(xrdp_wm.c:2039)] xrdp_wm_login_mode_changed: login_mode is 0
[2023-09-17T15:26:14.987+0900] [DEBUG] [xrdp_wm_set_login_state(xrdp_wm.c:2381)] Login state change request WMLS_RESET -> WMLS_USER_PROMPT
[2023-09-17T15:26:14.988+0900] [DEBUG] [xrdp_wm_init(xrdp_wm.c:577)] in xrdp_wm_init: