diff --git a/server/Windows/wf_info.c b/server/Windows/wf_info.c index bb2e8a878..c3241433c 100644 --- a/server/Windows/wf_info.c +++ b/server/Windows/wf_info.c @@ -216,8 +216,24 @@ void wf_info_find_invalid_region(wfInfo* info) WaitForSingleObject(info->mutex, INFINITE); buf = (GETCHANGESBUF*)info->changeBuffer; + + if(info->enc_data == false) + { + info->invalid_x1 = 1920;//info->width; + info->invalid_x2 = 0; + info->invalid_y1 = 1200;// info->height; + info->invalid_y2 = 0; + } + + printf("\tFIND = (%d, %d), (%d, %d)\n", info->invalid_x1, info->invalid_y1, info->invalid_x2, info->invalid_y2); for(i = info->lastUpdate; i != info->nextUpdate; i = (i+1) % MAXCHANGES_BUF ) { + /*printf("\t(%d, %d), (%d, %d)\n", + buf->buffer->pointrect[i].rect.left, + buf->buffer->pointrect[i].rect.top, + buf->buffer->pointrect[i].rect.right, + buf->buffer->pointrect[i].rect.bottom); + */ info->invalid_x1 = min(info->invalid_x1, buf->buffer->pointrect[i].rect.left); info->invalid_x2 = max(info->invalid_x2, buf->buffer->pointrect[i].rect.right); info->invalid_y1 = min(info->invalid_y1, buf->buffer->pointrect[i].rect.top); diff --git a/server/Windows/wf_peer.c b/server/Windows/wf_peer.c index 645ac41db..773c4f5fc 100644 --- a/server/Windows/wf_peer.c +++ b/server/Windows/wf_peer.c @@ -65,7 +65,7 @@ static DWORD WINAPI wf_peer_mirror_monitor(LPVOID lpParam) wf_info_update_changes(wfInfoSingleton); if(wf_info_have_updates(wfInfoSingleton)) { - wf_info_find_invalid_region(wfInfoSingleton); + //wf_info_find_invalid_region(wfInfoSingleton); //printf("Fake Encode!\n"); wf_rfx_encode(client); } @@ -117,6 +117,8 @@ void wf_rfx_encode(freerdp_peer* client) { case WAIT_OBJECT_0: + wf_info_find_invalid_region(wfInfoSingleton); + if( (wfp->activated == false) || (wf_info_has_subscribers(wfi) == false) || !wf_info_have_invalid_region(wfi) ) @@ -138,10 +140,10 @@ void wf_rfx_encode(freerdp_peer* client) stream_set_pos(wfp->s, 0); s = wfp->s; - rect.x = wfi->invalid_x1; - rect.y = wfi->invalid_y1; + rect.x = 0; + rect.y = 0; rect.width = width; - rect.height = width; + rect.height = height; rfx_compose_message(wfp->rfx_context, s, &rect, 1, @@ -150,7 +152,7 @@ void wf_rfx_encode(freerdp_peer* client) cmd->destLeft = wfi->invalid_x1; cmd->destTop = wfi->invalid_y1; cmd->destRight = wfi->invalid_x1 + width; - cmd->destBottom = wfi->invalid_y1 + height; + cmd->destBottom = wfi->invalid_y2 + height; cmd->bpp = 32;