[vlc-devel] Running interface on the main thread

Rémi Denis-Courmont remi at remlab.net
Thu Jun 17 22:26:47 CEST 2010

On Thu, 17 Jun 2010 10:25:08 +0300, Juho Vähä-Herttua <juhovh at iki.fi>
> I want to experiment a bit with running the Qt4 interface on Mac.
> Originally I had Qt4 binaries compiled with Carbon (old 32-bit MacOS
> GUI framework) and it worked somewhat, but crashed from time to time and
> there was no video. With Laurent's help I fixed the vout module to work
> with Qt4 but that required the latest Qt4 binaries compiled with Cocoa
> NeXTStep based GUI framework, default now). I ran into a major issue with
> it though:
> The Cocoa framework main loop wants to be run on the main thread. VLC
> right now spawns a new thread for interface and calls
> QCoreApplication::exec there, which seems to break. Is there any
> possibility to move the interface code into the main thread?

I am totally not going to hack the VLC core because of a MacOS mis-design.

> Right now the main() is in sigwait() state.
> Even Qt4 documentation seems to always refer QCoreApplication::exec
> running in the main() function, I think there's a
> possibility that this might cause problems on other systems as well.

To achieve this in a clean and safe manner, qvlc would have to be an
independent application running on top of LibVLC. As an added bonus this
would tremendously simplify the playlist management.

It would be a huge amount of work. But J-B has consistently opposed this
change, so it is a moot question.

Rémi Denis-Courmont

More information about the vlc-devel mailing list