No need to special-case codec_properties_len == 0, defer to the decoding
of the properties instead.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
"session" has a fixed set of supported codecs with associated IDs.
"connector" must expose the set of codecs during capabilities exchange.
It currently uses hard-codes codec IDs in different places.
Move the BitmapCodecs set to ironrdp-pdu. Shared code will be used by
the server, so this is a suitable common place.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Make some internal APIs publicly visible thanks to "visibility" when
compiling with the "__bench" feature.
("testsuite-core" also learned "__bench", because fast_path.rs is a
shared file)
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Keep a framebuffer and tile-diff against it, to save from
encoding/sending the same bitmap data regions.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
- `iron_init` is renamed to `setup`, so that
- `init` is the function for initializing the WASM module.
- `setup` is the function taking parameters for logger and performing
other setting up operations.
- Since `setup` may be called after `init` is called, it’s possible to
use some functions of the WASM module before calling `setup` if
necessity arises.
- Common initializion code is moved to an hidden "internal" module of
iron-remote-desktop crate, that is thus not part of the public API.
- Restored the "IronRDP is ready" debug log when `setup` is called.
We used to inject the resolved target server address, but that is not
what is expected. Server typically ignores this field so this was not a
problem up until now.
A single display update can now result in multiple commands / update
code (FastPathUpdate).
The update dispatching and bitmap encoding is now done by the
UpdateEncoder itself.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Trying to share a common buffer creates all sort of complicated lifetime
issues when trying to move the encoding to a 'static handler, or when
implementing iterators. It's not worth it.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>