
#Vlc syncplay free
Syncplay provides free servers to connect to, here’s a list: You’ll need a server so that everyone can connect and play. Once you’ve downloaded it, fire the app up.
#Vlc syncplay mac
In my case, we’ve tried it on both Windows and Mac and it was great.
#Vlc syncplay download
Let’s set it up! -Firstly, go to and download your version. It works with modern playback tools I’ve tested this tool with VLC and it was great.

Syncplay is a free tool that allows you to synchronize what video you’re watching, even if you are miles away.
#Vlc syncplay manual
You can take the silly and manual way and say – 3,2,1, PLAY! That may work, but if someone needs to pause, you’ll need to go through that silly 3,2,1 again! What if there are tools to help you out? You might want to watch some videos in sync with your loved ones. That's where you can then change your boolean status variables or do other kind of action without the need for explicit synchronization as your variables are only changes from the video thread now.Let’s face it – staying at home under quarantine and lockdown due to COVID-19 is not fun at all. Any call now to PlayerController:play on the 'controller' from the GUI thread will result in the onPlay method of the 'player' being executed in the video thread on the next event loop iteration. No connect the objects by doing QObject::connect(controller, SIGNAL(play()), player, SLOT(onPlay())). This is important, as Qt has the notion of thread affinity to determine in which thread SLOTs are executed. Then create a 'controller' object of the PlayerController class in the GUI thread and the Player object in the 'video' thread (or use QObject::moveToThread). Then it's very straightforward: You create some class that inherits from QObject let's say PlayerController which should contain signals like play, pause, stop and a class Player which will have slots onPlay, onPause, onStop (or without the on, your preference). The main change this will bring to your current design is that you will have to do your video logic as part of the Qt event-loop, or, easier, just do a QEventLoop::processEvents.

Yes! Since you are using Qt I would heavily suggest to use Qt's eventloop (apart from the UI stuff this is IMO one of the main selling points of that library) and asynchronous signal/slots to do the controlling instead of your homegrown synchronization, which - as you found out - is a very fragile undertaking. Though I got an answer which seems to be in the right direction I don't really understand it.Especially the pseudo-code part which is talking about service.It is completely unclear to me how it would work.I would like to get a more elaborated answer.It is also strange that I received only one constructive answer to such a common problem.So I am resetting the bounty.

M_event.notify_one() //tell thread to start playing.Īll the flag members like m_cleanMode, m_isPlayMode and m_frameIndex are atomics:ĭo I need mutex locks when using atomics?ĭo I set waiting in the correct place inside the while loop of the /if we are in playback mode,play in a loop till interrupted: Void PlayerThread::drawThread()//thread method passed into new boost::thread
#Vlc syncplay code
I have stripped off the code from unneeded stuff and it generally goes like this: So I suppose it blocks the access to the shared variables to the main thread. I am experiencing inconsistent bugs(probably due to the condition race when the play command tries to lock mutex which is already locked by the thread while the play loop is working) when I run "play" commands which activates a loop inside the thread loop. I don't feel my design is completely correct:I am using both mutex locks and atomic variables.I wonder if I can stay only with the atomics and use locks only for setting the wait conditions. Now,this thread runs in a constant loop and and uses mutexes and wait conditions to live in sync with the main thread commands. Second thread - player thread which accepts commands from the GUI thread to play, forward, backward, stop etc. The main thread - is GUI thread (Qt SDK). I am developing a video player with the following design: Disclaimer:I asked this question a few days ago on codereview,but got no answer.Here I change the question format from review request to a specific problems.
