• Anthony Léonard's avatar
    video: OpenGL rendering of incoming frames · 14e7bf33
    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's avatarKateryna Kostiuk <kateryna.kostiuk@savoirfairelinux.com>
CMakeLists.txt 18.8 KB