if (client->settings->RemoteFxCodec)
{
+ WLog_DBG(TAG, "Using RemoteFX codec");
if (!rfx_compose_message(context->rfx_context, s, &rect, 1, rgb_data, rect.width,
rect.height, rect.width * 3))
{
}
cmd.bmp.codecID = client->settings->RemoteFxCodecId;
+ cmd.cmdType = CMDTYPE_STREAM_SURFACE_BITS;
}
else
{
+ WLog_DBG(TAG, "Using NSCodec");
nsc_compose_message(context->nsc_context, s, rgb_data, rect.width, rect.height,
rect.width * 3);
cmd.bmp.codecID = client->settings->NSCodecId;
+ cmd.cmdType = CMDTYPE_SET_SURFACE_BITS;
}
- cmd.cmdType = CMDTYPE_SET_SURFACE_BITS;
cmd.destLeft = 0;
cmd.destTop = 0;
cmd.destRight = rect.width;
rect.width = context->icon_width;
rect.height = context->icon_height;
+ if (client->settings->RemoteFxCodec)
+ {
+ cmd.bmp.codecID = client->settings->RemoteFxCodecId;
+ cmd.cmdType = CMDTYPE_STREAM_SURFACE_BITS;
+ }
+ else
+ {
+ cmd.bmp.codecID = client->settings->NSCodecId;
+ cmd.cmdType = CMDTYPE_SET_SURFACE_BITS;
+ }
+
if (context->icon_x >= 0)
{
s = test_peer_stream_init(context);
if (client->settings->RemoteFxCodec)
- {
rfx_compose_message(context->rfx_context, s, &rect, 1, context->bg_data, rect.width,
rect.height, rect.width * 3);
- cmd.bmp.codecID = client->settings->RemoteFxCodecId;
- }
else
- {
nsc_compose_message(context->nsc_context, s, context->bg_data, rect.width, rect.height,
rect.width * 3);
- cmd.bmp.codecID = client->settings->NSCodecId;
- }
- cmd.cmdType = CMDTYPE_SET_SURFACE_BITS;
cmd.destLeft = context->icon_x;
cmd.destTop = context->icon_y;
cmd.destRight = context->icon_x + context->icon_width;
s = test_peer_stream_init(context);
if (client->settings->RemoteFxCodec)
- {
rfx_compose_message(context->rfx_context, s, &rect, 1, context->icon_data, rect.width,
rect.height, rect.width * 3);
- cmd.bmp.codecID = client->settings->RemoteFxCodecId;
- }
else
- {
nsc_compose_message(context->nsc_context, s, context->icon_data, rect.width, rect.height,
rect.width * 3);
- cmd.bmp.codecID = client->settings->NSCodecId;
- }
- cmd.cmdType = CMDTYPE_SET_SURFACE_BITS;
cmd.destLeft = x;
cmd.destTop = y;
cmd.destRight = x + context->icon_width;
/* client->settings->EncryptionLevel = ENCRYPTION_LEVEL_LOW; */
/* client->settings->EncryptionLevel = ENCRYPTION_LEVEL_FIPS; */
client->settings->RemoteFxCodec = TRUE;
+ client->settings->NSCodec = TRUE;
client->settings->ColorDepth = 32;
client->settings->SuppressOutput = TRUE;
client->settings->RefreshRect = TRUE;
#include "shadow_encoder.h"
+#define TAG CLIENT_TAG("shadow")
+
int shadow_encoder_preferred_fps(rdpShadowEncoder* encoder)
{
/* Return preferred fps calculated according to the last
if ((codecs & FREERDP_CODEC_REMOTEFX) && !(encoder->codecs & FREERDP_CODEC_REMOTEFX))
{
+ WLog_DBG(TAG, "initializing RemoteFX encoder");
status = shadow_encoder_init_rfx(encoder);
if (status < 0)
if ((codecs & FREERDP_CODEC_NSCODEC) && !(encoder->codecs & FREERDP_CODEC_NSCODEC))
{
+ WLog_DBG(TAG, "initializing NSCodec encoder");
status = shadow_encoder_init_nsc(encoder);
if (status < 0)
if ((codecs & FREERDP_CODEC_PLANAR) && !(encoder->codecs & FREERDP_CODEC_PLANAR))
{
+ WLog_DBG(TAG, "initializing planar bitmap encoder");
status = shadow_encoder_init_planar(encoder);
if (status < 0)
if ((codecs & FREERDP_CODEC_INTERLEAVED) && !(encoder->codecs & FREERDP_CODEC_INTERLEAVED))
{
+ WLog_DBG(TAG, "initializing interleaved bitmap encoder");
status = shadow_encoder_init_interleaved(encoder);
if (status < 0)
if ((codecs & (FREERDP_CODEC_AVC420 | FREERDP_CODEC_AVC444)) &&
!(encoder->codecs & (FREERDP_CODEC_AVC420 | FREERDP_CODEC_AVC444)))
{
+ WLog_DBG(TAG, "initializing H.264 encoder");
status = shadow_encoder_init_h264(encoder);
if (status < 0)