-
Notifications
You must be signed in to change notification settings - Fork 215
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
VLC 3.0.0 is not working with syncplay #108
Comments
A quick workaround is to delete lines 320-331 inclusive of Syncplay's vlc.py (the 'for line in iter(self.__process.stderr.readline, ''):' stuff). It appears to be due to a change in VLC, as VLC doesn't appear to be outputting Syncplay lua intf messages via the STDOUT or STDERR pipes any more. Ideally I want to still be able to check stderr to find error messages, but if it isn't easily fixable then I may have to produce a more complicated workaround. |
Hi, removing the mentioned lines causes: error: uncaptured python exception, closing channel <__Listener(VLC Listener, started daemon 139845843293952)> (<class 'socket.error'>:[Errno 111] Connection refused [/usr/lib64/python2.7/asyncore.py|read|83] [/usr/lib64/python2.7/asyncore.py|handle_read_event|446] [/usr/lib64/python2.7/asyncore.py|handle_connect_event|454]) Also when I'm the only one in the room everything works as expected (the VLC pause/unpause changes the ready state of the Syncplay GUI), but there is something strange with the times: [10:34:32 PM] Attempting to connect to 127.0.0.1:8999 If there is a second person in the room, the Syncplay interface is detached from VLC and play/pause don't influence the Syncplay ready state. |
You may need to add some wait code depending on your system so it doesn't On 3 Aug 2016 22:09, "Mincho Gaydarov" notifications@github.com wrote:
|
Hi, I want to bring your attention again on the fact that the problem is appearing when there are two or more people in the room. Also when I'm alone in the room there are some strange messages about where did my player 'jumped' which I already pasted in my previous comment ( The proposed workarounds doesn't fix the issue. first time I've tried the following
Today I've tried the following
Also I'm not sure if this is relevant, but checking around in the code I saw that the |
So are you saying VLC 3 works with the workarounds, it just has the weird jumping timestamp issue? As far as I know the --data-path stuff can be removed as it is no longer used. |
It looks like the issue with the timing is that VLC has moved from decimal seconds to microseconds, so will need to update get_time() and set_time() functions to do a conversion on VLC 3 (but not VLC 2). |
Hi, If I don't patch anything and I'm the only person in the room, VLC works with the weird timings. If there are 2 people in the room VLC does not work neither without neither with the workarounds. |
Solution for the timing can be
But still when we are two people in the room the VLC and Syncplay GUI seems to be detached from each other. |
When it works:
When it doesn't work:
My guess: Offtopic:
|
Hi, the problem is with the new times expressed in microseconds. When I apply the following patch the player and the Syncplay does not detach from each (I will be sure on 100% tomorrow)
I know that this is not the most elegant way to fix it, so can you please provide some more proper way to fix the issue. With this fix there are a lot of jumps in the first 10-15 seconds, before the clients get in sync (probably caused by the missing accuracy). |
Hi, I've reworked my previous patch on fresh mind and produced the following elegant solution to the problem:
|
Created a VLC ticket for the initial issue with STDERR/STDOUT https://trac.videolan.org/vlc/ticket/17286 |
https://trac.videolan.org/vlc/ticket/17286#comment:1 says it works when it doesn't work for us. Any idea why? |
Hi, I probably forgot to mention this (sorry). When I tried to run the VLC without the patches for the STDOUT/STDERR it works as expected. Using the 'vlc-wrapper --extraintf=luaintf --lua-intf=syncplay --no-quiet --no-input-fast-seek --play-and-pause --start-time=0 --no-one-instance --no-one-instance-when-started-from-file --lua-config=syncplay={port="33825"}' command manually it shows me '[syncplay] lua interface: Hosting Syncplay interface on port: 33825.0' in the console output. Also when debugging the syncplay.lua for all the timing I used vlc.msg.info() and vlc.msg.err() for debugging various things and the output from vlc-wrapper was including the messages from syncplay.lua interface. According to the VLC changelog 'Fixes for stdin/stdout and for different locale issues' it should make no difference. |
Not quite sure what you mean. If everything works fine then why did you have an issue? |
The issue was caused by times being in microseconds. |
Port over VLC 3 exit handling from main branch
351024f means Syncplay now fails with an appropriate error message when you try to use Syncplay with VLC 3 due to its lack of Syncplay support. Anyone wishing to fix the microsecond issue can see https://trac.videolan.org/vlc/ticket/17285 - either VLC Lua needs to support the values beyond microseconds, or needs to use the old decimal seconds system for the Lua "time" variable. |
I can't register on VLC's trac nor login with OpenID, it seems their trac is buggy... /EDIT: Fixed, please see the trac for the discussion, they are discussing it currently. I think it's a pretty serious flaw in VLC 3 if it cannot support big times, how can big videos be played? I didn't check if this impacts only LUA plugins, but even if that's the case still it's a serious limitation for LUA plugins for VLC since none can support videos bigger than about half an hour... Why not just change the variable type (int64) to a big int? This would allow support for any amount of time while retaining the microsecond precision. Of course there would certainly be a small performance impact but depending on the bigint (or fractional) type implementation, it can be maybe be negligible for videos smaller than half an hour (like what is currently supported), and any amount of perf impact would be tolerable for longer videos since anyway currently it's totally unsupported... Here are a few interesting links I found for the implementation of bigint in LUA:
For C/C++ (I don't know which language is used by VLC), there are lots of bigint or fractional (so-called arbitrary precision) libraries out there, so there should be no issue to define such a type in C++ (and to pass it to LUA you can use a port like this one, since it's a port it should theoretically be compatible). |
They are currently discussing about it on the trac ticket, you might want to give your valuable inputs. |
Thanks for the heads up. Currently on holiday so don't have Trac access at present but it would be |
Just tested things and it looks like if you're using the 64-bit version of the LUA library (e.g. VLC 64-bit) then Syncplay works fine on VLC 3+ (so long as you are using Pilotat's syncplay.lua change to fix the order of magnitude and something along the lines of my suggested change to vlc.py to prevent Syncplay waiting for an STDOUT message which will never arrive). As such, I should be able to make Syncplay works on VLC >3 for at least the 64-bit version even if they don't resolve the 32-bit issue, I just need to make it a bit more elegant than a sleep(3) and have a better error message to tell people to upgrade to 64-bit or move to another player. |
Great news Etoh! That would be great indeed!
They are working actively on the issue currently, so I guess it will be
resolved for 32-bit anyway in the future :)
2016-11-26 18:12 GMT+01:00 Etoh <notifications@github.com>:
… Just tested things and it looks like if you're using the 64-bit version of
the LUA library (e.g. VLC 64-bit) then Syncplay works fine on VLC 3+ (so
long as you are using Pilotat's syncplay.lua change to fix the order of
magnitude and something along the lines of my suggested change to vlc.py to
prevent Syncplay waiting for an STDOUT message which will never arrive).
As such, I should be able to make Syncplay works on VLC >3 for at least
the 64-bit version even if they don't find the 32-bit issue, I just need to
make it a bit more elegant than a sleep(3) and have a better error message.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#108 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ABES3i3-8Ehc-Cj9pJJANmMyR_qRzP5Eks5rCGh7gaJpZM4JbGi->
.
|
GIT Head of Syncplay should now work with latest daily of VLC 3 (32-bit and 64-bit) 401e08a |
Hi,
recently I've updated my VLC to 3.0.0. Since then the Syncplay is not working. I've tried both 1.3.4 and 1.4.0 RC2. Also I've tried with the latest syncplay.lua.
After opening the player the GUI for the syncplayClient shows me as not ready. Pausing/unpausing from VLC does not change my syncplay status to ready (but starts the actual playback on my end). When I check the I'm ready checkbox in the interface the others are seeing me as ready and the video starts on their side, but the local VLC is not starting the playback.
Please advise me how to fix this.
System info
OS: Fedora 24
VLC: 3.0.0-git Vetinari (revision 2b82c9f)
Syncplay: tried with both 1.3.4 and 1.4.0 RC2
The text was updated successfully, but these errors were encountered: