[vlc-devel] OpenHMD branch?

Lomax lomax at clickworkorange.com
Mon May 20 15:58:00 CEST 2019


Ok, I know I'm probably annoying everyone on the list with my frequent 
posts, but I do have something to report: going back to Adrien Maglo's 
HMD-Instancing[1] branch, and downgrading libplacebo to v0.2 (becuase of 
different signature for the pl_shader_alloc function), fixes the 
problem. I'm back to seeing two side-by-side "squircles" in VLC[2], and 
steroscopic display on the Rift CV1 works perfectly again. Phew! But 
yeah, there's *something* that's changed in the FOSDEM branch which 
breaks the rendering for me. It's either in libplacebo or vlc; nothing 
else has been changed (I'm still on the same OpenHMD, v0.3.0-rc1 I 
think).

Lomax

1: https://gitlab.com/magsoft/vlc.git
2: https://i.imgur.com/CSwclSd.jpg


On 2019-05-20 00:16, Lomax wrote:

> Sending another screenshot[1], showing more clearly what the problem 
> is; here I have dropped out of full screen, paused and zoomed the video 
> to 1/4. As you can see, the video which actually contains two 
> over/under 360 panoramas is not shown as two L/R "squircles" as 
> expected, but as a ~16:9 mono crop. This cropped view follows the 
> rotational movements of the Rift (both vertically and horizontally).
> 
> Lomax
> 
> 1: https://i.imgur.com/il6CJUi.jpg
> 
> On 2019-05-19 23:57, Lomax wrote:
> 
>> Hello again,
>> 
>> I've just tried cleanly rebuilding everything once more, this time 
>> using a manual build of vlc/contrib/libplacebo. The shipped verion 
>> (allthough the same version number) does not seem to include shaderc 
>> support, so I downloaded/built/installed that first, then libplacebo, 
>> then VLC. I'm basically trying to retrace every step I took on the 
>> previous Celeron/Intel UHD machine, where it did work (albeit at 
>> slideshow speeds). Alas, this seems to have made no difference. I'm 
>> almost beginning to suspect that the change of GPU is the root of my 
>> problem... Some concrete questions:
>> 
>> Does VLC-HMD require libplacebo built with shaderc support?
>> 
>> What is the role of libplacebo?
>> 
>> What is the role of assimp?
>> 
>> Are the VirtuaTheatre files needed for stereoscopic 360 playback?
>> 
>> Are the following runtime errors possibly related to my problem?
>> - chain filter error: Too high level of recursion (3)
>> - main filter error: Failed to create video converter
>> - main vout display error: Failed to create video converter
>> - main vout display error: Failed to adapt decoder format to display
>> - main video output error: video output creation failed
>> - main decoder error: failed to create video output
>> I suspect not, because I do remember seeing them before - and there 
>> *is* video output, just not in the right format.
>> 
>> Is there any debugging method I can use to find out more - e.g. should 
>> I build VLC with some debugging option?
>> 
>> And finally, the main question: What might be the reason that the 
>> video displays as a rectangular mono panorama instead of the expected 
>> side by side stereo "squircles"?
>> 
>> To be fair, I am putting these questions as much to myself, while 
>> hoping those who know the ins & outs of VLC can provide some further 
>> insight.
>> 
>> Doggedly,
>> 
>> Lomax
>> 
>> On 2019-05-19 17:26, Lomax wrote:
>> 
>> Hi Alexandre,
>> 
>> Thank you for spending time on this - don't worry about my long 
>> rambling post from Friday; if there's any useful information there 
>> then great, but the questions are not so important. In answer to your 
>> questions re. usage, I'm working on a public exhibition at a "marine 
>> knowledge centre" in Sweden (a registered non-profit), where the staff 
>> are involved also in practical science - including diving to document, 
>> sample and survey the marine life and seabed conditions. They have a 
>> very nice stereoscopic 360 underwater camera (not sure of the model 
>> but can check if you want) but they have no means to show its footage 
>> to the museum visitors - which is where I come in: amongst other 
>> things* I've been tasked to build a permanent exhibit with which 
>> visitors can view this material. I chose, perhaps foolishly, to use 
>> the Oculus Rift CV1, thinking it was a well established product with 
>> plenty of support. Only afterwards did I find out that it was nothing 
>> of the sort, and that indeed the whole area of stereoscopic 360 video 
>> is severely underdeveloped. Only proprietary (Windows/MacOS) 
>> applications seem to be available, which would be unsuitable for use 
>> in an exhibition; no user interaction should be required to launch the 
>> video, nor should the computer, or any OS or application GUI elements 
>> be visible, and the system needs to be reliable - we just want the 
>> video to play in a continuous loop from when the computer is switched 
>> on until it's switched off, and nothing else. This, and the fact that 
>> it is open source, is why I went with VLC - thinking the command line 
>> interface should make it easy to get it to start playing on boot (and 
>> it was), and that we could tweak anything else we might want to adjust 
>> in the source if needed. So our application is basically as simple as 
>> could be; there's no interactivity, no audio, and no motion tracking 
>> beyond rotation, and the material is pretty "standard" (at least as 
>> far as any standards are established). But I've now spent 50hrs+ on 
>> this, and EUR1500+ on hardware, yet have nothing to show, which means 
>> I'll have some tough explaining to do...
>> 
>> I've taken some quick snaps of what I see[1-4] - please let me know if 
>> there's any specific information I can provide which may help getting 
>> to the bottom(!) of this.
>> 
>> Cheers,
>> 
>> Lomax
>> 
>> *) For example, I've also built a remote controlled submerged camera 
>> out in the water, based on an Axis PTZ PoE camera, which can be 
>> controlled with an analogue joystick from inside a mock "submarine". 
>> This is 2D HD and works beautifully on a Pi3 connected to a curved 27" 
>> monitor.
>> 
>> 1: https://i.imgur.com/WGzfcY4.jpg
>> 2: https://i.imgur.com/bAy39Wy.jpg
>> 3: https://i.imgur.com/jWTbBxn.jpg
>> 4: https://i.imgur.com/SswgW8T.jpg
>> 
>> Hi, I'll answer to your bigger previous post later, but first, thank
>> you for your comprehensive testing of this branch and the report you
>> did.
>> 
>> The code is extracting lenses properties from OpenHMD to match the
>> projection with the way the headset works. If there is no HMD, there
>> is no projection. The "circle-like" effect is a colour and pixel
>> transformation (using panotools parameters) to match the lenses used
>> by the headset, which is needed because of the low distance between
>> the eyes and the screen in the headset.
>> 
>> What is your setup, do you have screenshot of the issue ? This code 
>> was
>> taylored for headset demos so there are probably a lot of different
>> hacks and mostly only headset playback is probably correctly handled 
>> in
>> this version.
>> 
>> I can try to provide you a version with some fixes for the demo if you
>> want and if it's not too much time consuming, but I would like to know
>> the exact use case for your demo. You can ping me as "unidan" on irc 
>> if
>> you need some help on the build itself.
>> 
>> Greats,
>> --
>> Alexandre Janniaux,
>> VideoLabs


More information about the vlc-devel mailing list