Some things that would be useful regardless of transport:
* Reversing the mjpeg encoder that Canon's own live view protocol appears to have used. I suspect they still use this for the apps that support remote shooting, but haven't investigated. Or the regular video encoders, but I suspect that would be more difficult.
* Some way to synchronize frames more closely with camera refresh. For the existing PTP protocol, I've thought about adding an option that signals "only new frames" and then tracking when the live view pointer changes, or hooking into whatever timer drivers refresh. You'd still have polling overhead, but could avoid receiving duplicate frames. OTOH, the current chdkptp implementation has trouble pulling >25 FPS so duplicate frames are probably not a major issue.
* Ability to get the most recent complete buffer, rather than the partial buffer used by vid_get_viewport_live_fb (see
https://chdk.setepontos.com/index.php?topic=14022.10). I believe the field identified as current_viewport_buffer on digic 6 holds this, exists on earlier cams, and could probably be found by the sigfinders.
There are a number of "virtual webcam" type apps for windows, mostly commercial. From google, manycam, magic camera and vcam appear to have this capability. See also
https://alax.info/blog/1626