Before this patch we had a behavior where there was a credit of 8 samples that could be sent to the server with no corresponding sample request. So in the right conditions, we were having situations where the server was receiving samples that it has not requested, and so it was dropping them. The visible effect was small artifacts in the camera stream when i-frames where dropped, and more serious ones when the dropped content was containing key frames. This issue has also been reported when xfreerdp connects on g-r-d as #11990. This patch reworks the frame grabbing workflow: when the frame grabbing thread calls the sample callback we check if a sample is already pending, waiting to be sent to the server. If that's the case and the camera's input format supports frame dropping we just refresh the pending frame with the new one. If the input format can't drop frames (like with h264 and mjpg) we wait until the current pending frame is sent. So now frames can be sent either when we receive a sample request from the server, or when the sample callback is invoked.
FreeRDP: A Remote Desktop Protocol Implementation
FreeRDP is a free implementation of the Remote Desktop Protocol (RDP), released under the Apache license. Enjoy the freedom of using your software wherever you want, the way you want it, in a world where interoperability can finally liberate your computing experience.
Code Quality Status
Resources
Project website: https://www.freerdp.com/
Issue tracker: https://github.com/FreeRDP/FreeRDP/issues
Sources: https://github.com/FreeRDP/FreeRDP/
Downloads: https://pub.freerdp.com/releases/
Wiki: https://github.com/FreeRDP/FreeRDP/wiki
API documentation: https://pub.freerdp.com/api/
Security policy: https://github.com/FreeRDP/FreeRDP/security/policy
FAQ: https://github.com/FreeRDP/FreeRDP/wiki/FAQ
Contact
- Matrix room :
#FreeRDP:matrix.org(main)XMPP channel:no longer available#FreeRDP#matrix.org@matrix.org(bridged)- IRC channel :
#freerdp @ irc.oftc.net(bridged)
- Mailing list: https://lists.sourceforge.net/lists/listinfo/freerdp-devel
Microsoft Open Specifications
Information regarding the Microsoft Open Specifications can be found at: https://www.microsoft.com/openspecifications/
A list of reference documentation is maintained here: https://github.com/FreeRDP/FreeRDP/wiki/Reference-Documentation
Compilation
Instructions on how to get started compiling FreeRDP can be found on the wiki: https://github.com/FreeRDP/FreeRDP/wiki/Compilation