Page 1 of 1

Force vout option from npapi plugin

Posted: 04 Feb 2014 16:56
by SteveTP
We are running the npapi plugin in windowless mode in firefox on Fedora 19 using intel HD 3000 graphics but see a lot of frame tearing when videos play.

It appears that the source of the problem is with the graphics drivers but despite trying several things, I've been unable to fix this. I can workaround the problem when running vlc directly from the command line by including one of "--vout=glx" or "--no-overlay". Unfortunately, it seems that these options are ignored by the web plugin. I've tried patching the plugin and rebuilding to set these options / allow them to be set (as suggested here - https://forum.videolan.org/viewtopic.php?t=114103) but have had no success.

I've also tried removing all vlc video_output plugins except libxcb_glx_plugin.so in the hope that vlc will resort to glx video output (as suggested in this post https://forum.videolan.org/viewtopic.php?t=107916). However as soon as I remove libvmem_plugin.so, the web plugin fails to show video. The vlc log shows the following errors:-

[0x7ff274e9b9b8] main generic error: option vmem-chroma does not exist
[0x7ff274e9b9b8] main generic error: option vmem-width does not exist
[0x7ff274e9b9b8] main generic error: option vmem-height does not exist
[0x7ff274e9b9b8] main generic error: option vmem-pitch does not exist

I would really appreciate it if anyone has any further suggestions for how to force either a video output of glx or set no-overlay from the npapi plugin?

Re: Force vout option from npapi plugin

Posted: 05 Feb 2014 18:02
by SteveTP
I've now also tried recompiling vlc and installing from source, disabling some of the video outputs, enabling glx and disabling vdpau in the configure options. Unfortunately the result is the same - video plays in firefox but there is tearing.

If I try removing all video_output modules from /usr/lib64/vlc/plugins/video_output apart from libxcb_glx_plugin.so I again get the same result as before - no video. Again, it seems that the web plugin wants to use the vmem output module:-

[0x7f41c6d0f098] main video output debug: Opening vout display wrapper
[0x7f41e3316c98] main vout display debug: looking for vout display module matching "vmem": 1 candidates
[0x7f41e3316c98] main vout display debug: no vout display modules matched
...............
[0x7f41c6d0f098] main video output error: video output creation failed
[0x7f41d09d2898] main decoder error: failed to create video output
[0x7f41d09d2898] main decoder warning: can't get output picture

Can anyone explain the apparent dependency on "libvmem_plugin.so"? .. or offer any other suggestions?

Re: Force vout option from npapi plugin

Posted: 07 Feb 2014 12:00
by Jean-Baptiste Kempf
Windowless forces vmem, you know...

Re: Force vout option from npapi plugin

Posted: 07 Feb 2014 16:05
by SteveTP
Thanks, yes I was beginning to work that out. Is this something that can be changed with a simple patch or does windowless have to use vmem? How about forcing GPU off in windowless mode?

I have now managed to force GLX video output and remove tearing in Windowed mode by patching vlcplugin_base.cpp. I added XInitThreads() to the top of the init() function and removed ppsz_argv[ppsz_argc++] = "--no-xlib"; Ideally though, I need tear free video in windowless mode.

Re: Force vout option from npapi plugin

Posted: 11 Feb 2014 17:58
by Jean-Baptiste Kempf
I'm afraid I don't know where the tearing is coming from.