-
Notifications
You must be signed in to change notification settings - Fork 106
Deep Dive Into Codebase
Code Pointers:
-
These processes run together with WebService when spawn: https://github.com/giongto35/cloud-morph/blob/master/winvm/supervisord.conf
[program:Xvfb] command=/usr/bin/Xvfb :99: Create Virtual Video Buffer at port :99
[program:pulseaudio] command=pulseaudio: Create Virtual Audio (pulse). Don't need to bind to any port, app still can output audio to it.
[program:syncinput] command=wine syncinput.exe : Script to listen from Web Message to simulate Windows OS Event
[program:wineapp] command=wine %(ENV_appfile)s environment=DISPLAY=:99 : Run Wine app and attach virtual DISPLAY :99 to it
[program:ffmpeg] command=ffmpeg -f x11grab -i :99 -c:v libvpx -f rtp rtp://%(ENV_dockerhost)s:5004 : Video encoding read from Virtual display and export Video RTP stream at port 5004
[program:ffmpegaudio] command=ffmpeg -f pulse -rtp rtp://%(ENV_dockerhost)s:4004 : Audio encoding read from Virtual Audio and export Audio RTP stream at port 4004 -
CloudAppClient is core CloudApp component interacting with those process https://github.com/giongto35/cloud-morph/blob/master/pkg/core/go/cloudapp/cloudapp.go#L68
- Listen from Video stream at 5004 and push to Video Stream Channel: https://github.com/giongto35/cloud-morph/blob/master/pkg/core/go/cloudapp/cloudapp.go#L90
- Listen from Audio stream at 4004 and push to Audio Stream Channel: https://github.com/giongto35/cloud-morph/blob/master/pkg/core/go/cloudapp/cloudapp.go#L94