1 (edited by jabba101 12-06-2017 10:02:00)

Topic: QT Timer Error

Can you tell me what this means please?

BasicTimer::start: Timers cannot be started from another thread
 QBasicTimer::start: Timers cannot be started from another thread

When starting SVP after boot this error message comes up in the log and CPU load for playing a video at 60FPS is  80-90%.
After closing SVP and starting it again that message goes away and the CPU load is normal again.

Re: QT Timer Error

turn off "svplight" extension if you're not using it

will be fixed in the next build

3 (edited by jabba101 12-06-2017 16:24:48)

Re: QT Timer Error

The only extension I have installed is svtube.
SVP 4.1.0.110
Can you explain what that error means and what it related to?

4 (edited by jabba101 12-06-2017 16:28:59)

Re: QT Timer Error

I think I figured it out.
The problem is svtube extension.
High CPU load problem does not happen with local files but only online video. After enabling/disabling svtube it works normal. Still waiting on explanation for QT Timer error message tho so I can totally fix this.

Re: QT Timer Error

you can't fix it yourself

will be fixed in the next build

6 (edited by jabba101 13-06-2017 05:43:23)

Re: QT Timer Error

Ah ok thx
one more question.
How do I turn off performance quick estimation at the start of SVP?

Re: QT Timer Error

> How do I turn off performance quick estimation at the start of SVP?

Why?

8 (edited by jabba101 13-06-2017 08:57:10)

Re: QT Timer Error

sorry forget it I thought that was the problem but it works now.
for others with same problem --> the QT Timer error is because tube.cfg

For some strange reason when these value are missing in tube.cfg the error is caused

  "ui/autohide": 5,
    "ui/split_list": 30,
    "verbose": 0,

Sorry but really just one more question I swear haha.because you are developer
How can I make the output FPS exactly 60.0 FPS instead of 59.940?
I tryed editing override.js  smooth.rate.num and smooth.rate.den so that the result FPS is calculated exactly 60 and frc.cfg with target/tolerance at 0 , but it still produces 59.940 FPS

Re: QT Timer Error

> For some strange reason when these value are missing in tube.cfg the error is caused

the error is when some cfg options are missing which normally happens at the first run only

=====================
smooth.rate.num=60;
smooth.rate.den=1;
smooth.rate.abs=true;

it definitely works but it won't change numbers displayed in log and OSD

> target/tolerance at 0

Are you sure your screen is exactly 60 Hz? You can also manually set "fixed 60 fps" in the video profile

12:48:20.543 []: Media: video 1920x1080 [PAR 1.000] at 23.976 fps [variable]
...
12:48:20.635 []: Playback [1ac0734]: playing at 60.0238 [23.976 *358/143]

10 (edited by jabba101 13-06-2017 10:48:00)

Re: QT Timer Error

>the error is when some cfg options are missing which normally happens at the first run only
ah ok I put SVP on OEM installs so I'd never open it first but good to know

>it definitely works but it won't change numbers displayed in log and OSD
Yeah it still showed up as 59.940 so I will measure the actual pushed frame count to be sure.
I dont know "smooth.rate.abs", what does it do?
It does not come up in override.js by default and I also couldnt find it in your documentation.

>Are you sure your screen is exactly 60 Hz?
Yes my TV has a couple of refresh rate ranges 60.00, 59.00 - 59.99, 50 and 24.
Until now I just used this command to get it down to exactly the FPS that SVP produces.

xrandr --output HDMI-0 --mode 1920x1080 --rate 59.94

I think SVP doesn't get monitor hz output from device but just uses the reported values of OS for reresh rate so that works but not all monitors can do that so the output needs to be 60FPS output.

I tried using the "fixed frame rate at 60" option in GUI and log/OSD still shows 59.940.
Does this option also not show the correct values like with changing smooth.rate.num and den ?
Switching to "fixed rate 50"  ,75, 90 or anything else shows the correct value in the log but only fixed frame rate 60 does not. What causes this incorrect output?

> Playback [1ac0734]: playing at 60.0238 [23.976 *358/143]
I wonder how many digits after comma you tolerate?
0.238 is still a little much for me because of micro stuttering.

Re: QT Timer Error

https://www.svp-team.com/wiki/Plugins:_SVPflow

If true then num/den define absolute frame rate value instead of multiplier for source frame rate.

> I think SVP doesn't get monitor hz output from device but just uses the reported values of OS for reresh rate

on Windows is can actually measure the value... but not on Linux

> I wonder how many digits after comma you tolerate?
> 0.238 is still a little much for me because of micro stuttering.

it's limited to 0.001
60.0/23.976 = 2.5025
358/143 = 2.50349
2.50349-2.5025 < 0.001

probably there's a room for improvement here

12 (edited by jabba101 13-06-2017 13:20:14)

Re: QT Timer Error

ok man I finished testing your tip.

smooth.rate.num            = 60;
smooth.rate.den            = 1;
smooth.rate.abs        = true;

I left everything else commented in override script to be safe.

Here output of playing 23 and 25 and 29 FPS source:

Media: video 1920x1080 [PAR 1.000] at 23.976 fps [constant] (via video player)
Playback [cf90e8d4]: playing at 59.9401 [23.976 *5/2] 
Media: video 1920x1080 [PAR 1.000] at 25.000 fps [constant] (via video player)
Playback [f9e76a81]: playing at 60 [25 *12/5]
Media: video 1920x1080 [PAR 1.000] at 29.970 fps [constant] (via video player)
Playback [258f03f3]: playing at 59.9401 [29.97 *2/1]

Only 25FPS source shows 60FPS output in log, but nothing else.
To be sure I checked actual framerate output through player and in composite manager and output was 59FPS.
You said that log/OSD shows it wrong but maybe I am missing something?

13 (edited by jabba101 15-06-2017 08:37:39)

Re: QT Timer Error

I kinda figured it out again.
For Linux users this is what you do to get exactly 60.00FPS  instead of 59.940 working and have OSD/log report it correctly.
I have to say that I dont fully understand why it works after what I will show now but I am gonna do some more testing to find out. I use GPU rendering for this.

First to achieve almost exactly 60FPS output
.)edit override.js

smooth.rate.num            = 60;
smooth.rate.den            = 1;
smooth.rate.abs        = true;

.)edit frc.cfg

"target/tolerance": 0,

Doing just this does not give correct output in log and it will still show 59.940FPS.

In the latest version of SVP for Linux there is a problem that breaks binding the mpv-socket.
So the option "input-ipc-server=/tmp/mpvsocket" doesnt work.
Playing files via file brower from within SVP or with svtube works fine with mpv tho.
(works fine also with Plex and VLC)

When you run SVP with that socket binding option this error pops up.
(You need to open a pseudo-gui instance of mpv and drag/drop the file, or run mpv from terminal with either --input-ipc-server=/tmp/mpvsocket directly or in mpv.conf)

  
 [E]: Playback: VS - Script evaluation failed:
 [E]: Playback: VS - Python exception: SVSmoothFps: unable to init GPU-based renderer - code 197607
 [E]: Playback: VS - Traceback (most recent call last):
 [E]: Playback: VS - File *vapoursynth.pyx*, line 1821, in vapoursynth.vpy_evaluateScript (src/cython/vapoursynth.c:35121)
 [E]: Playback: VS - File */home/arch-linux/.local/share/SVP4/scripts/lk7bt223.py*, line 52, in <module>
 [E]: Playback: VS - smooth = interpolate(clip)
 [E]: Playback: VS - File */home/arch-linux/.local/share/SVP4/scripts/lk7bt223.py*, line 35, in interpolate
 [E]: Playback: VS - smooth = core.svp2.SmoothFps(input_m,super[*clip*],super[*data*],vectors[*clip*],vectors[*data*],smoothfps_params,src=input_um,fps=src_fps)
 [E]: Playback: VS - File *vapoursynth.pyx*, line 1713, in vapoursynth.Function.__call__ (src/cython/vapoursynth.c:33317)
 [E]: Playback: VS - vapoursynth.Error: SVSmoothFps: unable to init GPU-based renderer - code 197607

After getting this error, close SVP and delete the mpvsocket file from /tmp.
Then open SVP up again, and it will show 60FPS instead of 59.940.in the log and output almost exactly 60FPS +/- 0.20 - 0.34 

I will try to find out what the error means and what happens after it comes up that fixes this.

Re: QT Timer Error

clCreateContext() error 999 - not documented, seems like it's NVidia-only error code meaning nothing but "unknown error"
you probably need to update / revert / reinstall / etc video drivers

===
mpv process creates /tmp/mpvsocket file
if you kill mpv the file will gone, obviously