Regarding the libvlc_media_player_play() race condition, a patch just has been commited by fenrir.
With this new patch, VLMC moved to a unstable-creeping software to something a lot more stable. No more freeze when loading a video, which is good :)

In addition, a tiny patch has just been commit, this is really not a big deal, but I really wonder why this wasn't like this in the first place :o A filename must be const...
As this wasn't the case, we ended up doing things like this :

QTemporaryFile tmp;
tmp.setAutoRemove( false );
tmp.open();
strncpy(m_tmpSnapshotFilename, tmp.fileName().toStdString().c_str(), tmp.fileName().length());
m_mediaPlayer->takeSnapshot( m_tmpSnapshotFilename, 32, 32 );

Since the takeSnapshot parameter cannot be const, we have to copy it and pass it as a non const parameter... sigh :( However, this is fixed :)

Patch reference