-
Anthony Léonard authored
The previous system to display the incoming video frames was relying on CGImage generation with raw framebuffer which were then set as the content of the CallView. This way of doing it is not efficient as it implies buffer copies and is discouraged by Apple for pictures that change often. Moreover, this process was done by the VideoReceiveThread from the daemon which was then blocked by those copies without being able to decode further incoming frames. This is why a lag was appearing and increasing on high resolution stream. The new system now isolates frame delivering to the UI and their rendering. The VideoReceiveThread just update the current frame buffer and size without copy and another thread send those data to an OpenGL texture on screen refresh which also enables to automatically skip frames in case of heavy load. Change-Id: I0b79ddce66f52a3db1eee19945733ff93e7ce34f Reviewed-by: Kateryna Kostiuk <kateryna.kostiuk@savoirfairelinux.com>
14e7bf33