I am writing a video player on Linux and I would like to separate it into 2 process :
A. decoder process
B. GUI
In this way, I could use different programming languages and when a problem happens, it’s easier to know where is the problem.
The problem is, could process A render decoded pictures onto B’s surface directly? I don’t want to use some IPC to send B these decoded data because that might be very inefficient.
You can use the XEmbed specification, which allows you to embed one X11 window inside another, and they might be from different processes. This is what other media player frontends typically do.
Both GTK and Qt support XEmbed.