1. 01 Jul, 2022 1 commit
  2. 21 Jun, 2022 1 commit
  3. 16 Jun, 2022 1 commit
  4. 09 Jun, 2022 2 commits
  5. 06 Jun, 2022 1 commit
  6. 05 Jun, 2022 1 commit
  7. 30 May, 2022 2 commits
  8. 29 May, 2022 1 commit
  9. 26 May, 2022 1 commit
  10. 23 May, 2022 1 commit
  11. 21 May, 2022 1 commit
  12. 19 May, 2022 10 commits
    • Pascal Nowack's avatar
      rdp-graphics-pipeline: Measure bandwidth when sending frame updates · b41628fa
      Pascal Nowack authored
      With the APIs now being available, measure now the bandwidth, when
      sending frame updates.
      Since gnome-remote-desktop can only account for the network
      characteristics when using the graphics pipeline, only measure the
      bandwidth there.
      b41628fa
    • Pascal Nowack's avatar
      session-rdp: Handle queued bandwidth measure stop operations · 2bb9e506
      Pascal Nowack authored
      The socket thread, where channel messages, including graphics updates
      via the graphics pipeline,  are sent to the client, needs to take care
      of sending queued Bandwidth Measure Stop PDUs.
      To do this, use the previously implemented APIs to retrieve the event
      handle for queued updated and the API to actually send the Bandwidth
      Measure Stop PDU.
      2bb9e506
    • Pascal Nowack's avatar
      rdp/nw-auto: Add APIs for bandwidth measurement · 2e0e69de
      Pascal Nowack authored
      mstsc has a network indicator icon, which is only shown, when the
      server side also sends Network Characteristics Result PDUs containing a
      bandwidth measurement result.
      Currently, gnome-remote-desktop does not measure the bandwidth, so add
      additional APIs to be able to perform these measurements.
      Measuring the bandwidth is useful for screen updates.
      With the graphics pipeline, progressive rendering is possible, which is
      helpful for low bandwidth scenarios.
      Currently, it is not yet implemented, but will hopefully be in the
      future.
      Since sending screen updates in the graphics pipeline is done in an
      async way, add an additional API to be able to queue a bandwidth
      measure stop.
      To be able to be notified of such queued bandwidth measure stop, add an
      API to retrieve the associated WinPR event handle.
      2e0e69de
    • Pascal Nowack's avatar
      rdp/nw-auto: Also notify client about network characteristics results · 7857bc7d
      Pascal Nowack authored
      RDP clients can tell the user about the quality of the network
      connection.
      This is done with the help of the network characteristics results, that
      are sent by the server.
      The RDP protocol currently allows these characteristics to be sent in
      the following combinations:
      
      1. Base RTT, and average RTT value
      2. Bandwidth speed, and average RTT value
      3. Base RTT, bandwidth speed, and average RTT value
      
      FreeRDP currently implements combination 1 and 3.
      So, to be able to send these characteristics, also determine the base
      round trip time value.
      Then send the Network Characteristics Result PDU, when receiving RTT
      responses.
      Since, for the server side only RTT values with ping intervals way
      lower than one second are useful, Network Characteristics Result PDUs
      should not be sent upon retrieval of any RTT response, as otherwise the
      RDP client might update the network indicator very rapidly.
      Usually, ping values in applications are updated every second, so add
      additional handling to ensure the same behaviour is achieved.
      7857bc7d
    • Pascal Nowack's avatar
      rdp/nw-auto: Turn ping info condition into assertion · b1685222
      Pascal Nowack authored
      The if condition is here superfluous, as the ping info always exists at
      this point here.
      This is ensured by the previous condition, that uses
      g_hash_table_contains().
      b1685222
    • Pascal Nowack's avatar
      rdp/nw-auto: Assert RTT consumer != NONE, when removing RTT consumer · 7e20b84e
      Pascal Nowack authored
      The same assertion exists for ensure_rtt_consumer(), so add it for
      consistency.
      7e20b84e
    • Pascal Nowack's avatar
      d15eb8a6
    • Pascal Nowack's avatar
      rdp/nw-auto: Fix initial ping source not being created · 351893fa
      Pascal Nowack authored
      Currently, gnome-remote-desktop does not create the initial GSource to
      emit pings, unless ping interval changes to low due to inactivity on
      the screen.
      As a result, stutters can appear.
      
      To fix this issue, introduce a new ping internal with the name "NONE".
      This new interval represents the absence of the ping source.
      When the client emits the SuppressOutput PDU, where
      gnome-remote-desktop stops emitting pings, also reset the ping
      interval.
      351893fa
    • Pascal Nowack's avatar
      rdp/rdpgfx: Create RTT pause source while GFX mutex is locked · ac070694
      Pascal Nowack authored
      The RTT pause source callback runs in the graphics thread, which is not
      the main thread.
      To ensure no race conditions happen, create this source, while the GFX
      mutex is locked.
      ac070694
    • Daniel Mustieles García's avatar
      Updated Spanish translation · 9864cafc
      Daniel Mustieles García authored
      9864cafc
  13. 17 May, 2022 1 commit
  14. 16 May, 2022 2 commits
  15. 11 May, 2022 1 commit
  16. 10 May, 2022 3 commits
    • Doomsdayrs's avatar
      Convert README to MD · b288d488
      Doomsdayrs authored
      b288d488
    • Pascal Nowack's avatar
      build: Bump FreeRDP version requirement · a96b5a25
      Pascal Nowack authored
      FreeRDP 2.7.0 contains an important fix for an issue which allowed to
      circumvent the authentication mechanism in FreeRDP.
      
      To ensure, that gnome-remote-desktop runs with a FreeRDP version, that
      contains the fix, bump the FreeRDP version.
      
      Fixes: #95
      a96b5a25
    • Pascal Nowack's avatar
      tests/egl: Replace tautologies with actual modifier checks · 7913a1be
      Pascal Nowack authored
      The DRM format modifier should only be used, when it is not invalid.
      The current checks currently do not correctly check for this.
      Instead, the existence of the modifiers array in the DmaBuf struct is
      always checked, which is always true.
      
      So, fix this by replacing this tautology with an actual modifier check.
      7913a1be
  17. 09 May, 2022 1 commit
  18. 06 May, 2022 9 commits
    • Pascal Nowack's avatar
      tests/rdp: Add additional debug messages to RDP test · e7b0d50a
      Pascal Nowack authored
      This should make finding errors easier.
      e7b0d50a
    • Pascal Nowack's avatar
      tests/rdp: Add missing NULL check on stop_event · 570fd69e
      Pascal Nowack authored
      It must be non-NULL for a successful test run.
      570fd69e
    • Pascal Nowack's avatar
      vnc-pipewire-stream: Remove unused SPA_DATA_MemPtr path · 81babbd2
      Pascal Nowack authored
      Unless the PW_STREAM_FLAG_MAP_BUFFERS flag is specified, the
      SPA_DATA_MemPtr path in process_frame_data() is never triggered.
      Since the PW_STREAM_FLAG_MAP_BUFFERS is not specified, this path is
      basically dead.
      So, remove it.
      81babbd2
    • Pascal Nowack's avatar
      rdp-pipewire-stream: Remove unused SPA_DATA_MemPtr path · 1583f389
      Pascal Nowack authored
      Unless the PW_STREAM_FLAG_MAP_BUFFERS flag is specified, the
      SPA_DATA_MemPtr path in process_frame_data() is never triggered.
      Since the PW_STREAM_FLAG_MAP_BUFFERS is not specified, this path is
      basically dead.
      So, remove it.
      1583f389
    • Pascal Nowack's avatar
      pipewire-utils: Remove grd_maybe_initialize_pipewire() · 50f27b65
      Pascal Nowack authored
      It is now unused.
      50f27b65
    • Pascal Nowack's avatar
      vnc-pipewire-stream: Properly deinitialize PipeWire upon destruction · 230dbf37
      Pascal Nowack authored
      Currently, gnome-remote-desktop never calls pw_deinit(), resulting in
      leaking resources.
      With the current implementation, simply calling pw_deinit() is not
      possible, since multiple remote desktop sessions can run at the same
      time and therefore multiple PipeWire streams too.
      Since PipeWire 0.3.49 pw_init() and pw_deinit() can be called multiple
      times, removing the need of a global variable.
      PipeWire now internally tracks the reference count, which is increased
      by calling pw_init() and decreased by calling pw_deinit().
      
      So, replace the grd_maybe_initialize_pipewire() call with pw_init() and
      also call pw_deinit(), when destructing the PipeWire class instance.
      230dbf37
    • Pascal Nowack's avatar
      rdp-pipewire-stream: Properly deinitialize PipeWire upon destruction · 42d1890a
      Pascal Nowack authored
      Currently, gnome-remote-desktop never calls pw_deinit(), resulting in
      leaking resources.
      With the current implementation, simply calling pw_deinit() is not
      possible, since multiple remote desktop sessions can run at the same
      time and therefore multiple PipeWire streams too.
      Since PipeWire 0.3.49 pw_init() and pw_deinit() can be called multiple
      times, removing the need of a global variable.
      PipeWire now internally tracks the reference count, which is increased
      by calling pw_init() and decreased by calling pw_deinit().
      
      So, replace the grd_maybe_initialize_pipewire() call with pw_init() and
      also call pw_deinit(), when destructing the PipeWire class instance.
      Also, bump the PipeWire version requirement.
      42d1890a
    • Pascal Nowack's avatar
      rdp: Combine buffer creation and resize operations · 81bab7e5
      Pascal Nowack authored
      Before the buffer pool can be used, it needs to be resized anyway.
      So, don't initially fill the buffer pool.
      This also removes the need of the additional buffer resize function,
      making the implementation easier.
      81bab7e5
    • Pascal Nowack's avatar
      rdp-event-queue: Correctly clean up resources · 932cc432
      Pascal Nowack authored
      The dispose() method can run multiple times. So, add additional NULL
      checks and run some cleanup functions in finalize, if need be.
      932cc432