[client] video: switch transport sources

Track primary and fallback video with source-specific generations, and
publish a source only after its first frame or software surface is
ready.

Route SPICE surfaces and cursors through the generic render queue. Keep
the current image across handoffs, and switch input only after the new
source has been presented.

Move fallback activation to its worker so display callbacks cannot
block or deadlock the render path.
This commit is contained in:
Geoffrey McRae
2026-08-11 18:09:10 +10:00
parent 053d4e9d9b
commit 1a6f85eae2
10 changed files with 1728 additions and 392 deletions

View File

@@ -227,8 +227,18 @@ bool app_guestIsOther(void);
void app_stopVideo(bool stop);
/**
* Enable/disable the spice display
* Select the primary or fallback video source
*/
bool app_useSpiceDisplay(bool enable);
typedef enum LG_VideoSource
{
LG_VIDEO_SOURCE_NONE,
LG_VIDEO_SOURCE_PRIMARY,
LG_VIDEO_SOURCE_FALLBACK,
LG_VIDEO_SOURCE_COUNT,
}
LG_VideoSource;
bool app_useVideoSource(LG_VideoSource source);
void app_refreshVideoSource(void);
#endif