Merge pull request #10338 from akallabeth/fixes

Fixes
This commit is contained in:
akallabeth 2024-07-03 16:07:53 +02:00 committed by GitHub
commit d30f0cedb5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 12 additions and 10 deletions

View File

@ -1184,6 +1184,7 @@ static UINT rdpgfx_recv_end_frame_pdu(GENERIC_CHANNEL_CALLBACK* callback, wStrea
Stream_Read_UINT32(s, pdu.frameId); /* frameId (4 bytes) */ Stream_Read_UINT32(s, pdu.frameId); /* frameId (4 bytes) */
DEBUG_RDPGFX(gfx->log, "RecvEndFramePdu: frameId: %" PRIu32 "", pdu.frameId); DEBUG_RDPGFX(gfx->log, "RecvEndFramePdu: frameId: %" PRIu32 "", pdu.frameId);
const UINT64 start = GetTickCount64();
if (context) if (context)
{ {
IFCALLRET(context->EndFrame, error, context, &pdu); IFCALLRET(context->EndFrame, error, context, &pdu);
@ -1195,7 +1196,8 @@ static UINT rdpgfx_recv_end_frame_pdu(GENERIC_CHANNEL_CALLBACK* callback, wStrea
return error; return error;
} }
} }
const UINT64 end = GetTickCount64();
const UINT64 EndFrameTime = end - start;
gfx->TotalDecodedFrames++; gfx->TotalDecodedFrames++;
if (!gfx->sendFrameAcks) if (!gfx->sendFrameAcks)
@ -1235,7 +1237,7 @@ static UINT rdpgfx_recv_end_frame_pdu(GENERIC_CHANNEL_CALLBACK* callback, wStrea
case RDPGFX_CAPVERSION_107: case RDPGFX_CAPVERSION_107:
if (freerdp_settings_get_bool(gfx->rdpcontext->settings, FreeRDP_GfxSendQoeAck)) if (freerdp_settings_get_bool(gfx->rdpcontext->settings, FreeRDP_GfxSendQoeAck))
{ {
RDPGFX_QOE_FRAME_ACKNOWLEDGE_PDU qoe; RDPGFX_QOE_FRAME_ACKNOWLEDGE_PDU qoe = { 0 };
UINT64 diff = (GetTickCount64() - gfx->StartDecodingTime); UINT64 diff = (GetTickCount64() - gfx->StartDecodingTime);
if (diff > 65000) if (diff > 65000)
@ -1244,7 +1246,7 @@ static UINT rdpgfx_recv_end_frame_pdu(GENERIC_CHANNEL_CALLBACK* callback, wStrea
qoe.frameId = pdu.frameId; qoe.frameId = pdu.frameId;
qoe.timestamp = gfx->StartDecodingTime; qoe.timestamp = gfx->StartDecodingTime;
qoe.timeDiffSE = diff; qoe.timeDiffSE = diff;
qoe.timeDiffEDR = 1; qoe.timeDiffEDR = EndFrameTime;
if ((error = rdpgfx_send_qoe_frame_acknowledge_pdu(context, &qoe))) if ((error = rdpgfx_send_qoe_frame_acknowledge_pdu(context, &qoe)))
WLog_Print(gfx->log, WLOG_ERROR, WLog_Print(gfx->log, WLOG_ERROR,

View File

@ -1707,7 +1707,7 @@ static UINT gdi_MapSurfaceToOutput(RdpgfxClientContext* context,
if (surface->windowMapped) if (surface->windowMapped)
{ {
WLog_WARN(TAG, "sufrace already windowMapped when trying to set outputMapped"); WLog_WARN(TAG, "surface already windowMapped when trying to set outputMapped");
goto fail; goto fail;
} }
@ -1739,7 +1739,7 @@ gdi_MapSurfaceToScaledOutput(RdpgfxClientContext* context,
if (surface->windowMapped) if (surface->windowMapped)
{ {
WLog_WARN(TAG, "sufrace already windowMapped when trying to set outputMapped"); WLog_WARN(TAG, "surface already windowMapped when trying to set outputMapped");
goto fail; goto fail;
} }
@ -1775,7 +1775,7 @@ static UINT gdi_MapSurfaceToWindow(RdpgfxClientContext* context,
if (surface->outputMapped) if (surface->outputMapped)
{ {
WLog_WARN(TAG, "sufrace already outputMapped when trying to set windowMapped"); WLog_WARN(TAG, "surface already outputMapped when trying to set windowMapped");
goto fail; goto fail;
} }
@ -1783,7 +1783,7 @@ static UINT gdi_MapSurfaceToWindow(RdpgfxClientContext* context,
{ {
if (surface->windowId != surfaceToWindow->windowId) if (surface->windowId != surfaceToWindow->windowId)
{ {
WLog_WARN(TAG, "sufrace windowId mismatch, has %" PRIu64 ", expected %" PRIu64, WLog_WARN(TAG, "surface windowId mismatch, has %" PRIu64 ", expected %" PRIu64,
surface->windowId, surfaceToWindow->windowId); surface->windowId, surfaceToWindow->windowId);
goto fail; goto fail;
} }
@ -1818,7 +1818,7 @@ gdi_MapSurfaceToScaledWindow(RdpgfxClientContext* context,
if (surface->outputMapped) if (surface->outputMapped)
{ {
WLog_WARN(TAG, "sufrace already outputMapped when trying to set windowMapped"); WLog_WARN(TAG, "surface already outputMapped when trying to set windowMapped");
goto fail; goto fail;
} }
@ -1826,7 +1826,7 @@ gdi_MapSurfaceToScaledWindow(RdpgfxClientContext* context,
{ {
if (surface->windowId != surfaceToWindow->windowId) if (surface->windowId != surfaceToWindow->windowId)
{ {
WLog_WARN(TAG, "sufrace windowId mismatch, has %" PRIu64 ", expected %" PRIu64, WLog_WARN(TAG, "surface windowId mismatch, has %" PRIu64 ", expected %" PRIu64,
surface->windowId, surfaceToWindow->windowId); surface->windowId, surfaceToWindow->windowId);
goto fail; goto fail;
} }

View File

@ -8,7 +8,7 @@ endif()
if(X11_XShm_FOUND) if(X11_XShm_FOUND)
add_definitions(-DWITH_XSHM) add_definitions(-DWITH_XSHM)
include_directories(${X11_XShm_INCLUDE_PATH}) include_directories(${X11_XShm_INCLUDE_PATH})
list(APPEND LIBS ${X11_Xext_LIB}) list(APPEND LIBS ${X11_XShm_LIB})
endif() endif()
if(X11_Xext_FOUND) if(X11_Xext_FOUND)