Here's what happens when I run a file within SMPlayer:
| |-zsh(7187)---smplayer(8054)-+-mplayer(8061)-+-mplayer(8062)
| | | `-{threaded-ml}(8088)
This means that SMPlayer ran mplayer as a child process and somehow let it take control over SMPlayer's window. How does this work internally? What trick does SMPlayer use to achieve that? Does it use any library for this purpose that would handle this on Windows as well?