Beauitiful 3D support in menus, subtitles, but can't play a 3D Movie properly ?

  • When selecting a 3D SBS movie, LibreElec / Kodi handles it perfectly, menu and all become SBS, but the movie, is cropped/stretched to be only 2D (of a side-by-side frame, only one side is displayed)

    Current LibreElec release, on RPi 4

  • IIRC the RPi3B/3B+ are the only Pi models with fully functional 3D support. There are IP differences in the RPi4 video pipeline which were never fully accounted for under the legacy codebase (LE 9.2) and 3D is not yet implemented under the new GBM/V4L2 pipeline (LE 10.0): there are plans to add support but things like 4K60 playback, HDR, and hardware deinterlacing which have a broad audience appeal (3D is quite niche these days) have a higher priority with the Pi Foundation devs doing the work.

  • Rpi3 proved too weak for much h265 content.

    so I got Rpi4 ...

    If I run "generic PC" version, then 3D will work?

    Is there any way of people offering a bounty to get this done? - donation for feature or something like that ?

  • I have no memory of users raising issues with 3D in the Generic/PC image but that probably means support doesn't exist (and thus nothing to have a problem with) rather that it works problem free. We don't have a bounty system, and development for 3D things will be done by the Pi Foundation devs so donations to LE are always welcome but won't influence the people who need to write the code. It's on their list, but other things have priority.

  • You know, it is amazing to see that Libreelec actively:

    -detects SBS 3D

    -doubles up on menu for 3D view

    -doubles up subtitles for 3D view

    then it fails to "just play" a video with two pictures side-by-side - this is something *any* player does, VLC,mplayer, any android phone... simply because nothing special is required to play such file, the frame splitting is done in the projector/TV

    so in other words: Libreelec/the drivers actively cock up the simple task of playing the video "as-is" and rather crop/strech the half of it as if I selected to play it as 2D (there is an option for that)

    If the libreelec/decoder was perfectly ignorant of the side-by-side , and just played it as-is ..it would work. together with the 3D menu, and 3D subtitles, it would be better than VLC/mplayer or anything else.

  • so in other words: Libreelec/the drivers actively cock up the simple task of playing the video "as-is" and rather crop/strech the half of it as if I selected to play it as 2D (there is an option for that)

    Your overly simplistic assessment of simple task ignores how Kodi rendering and playback actually work, and an entwined combination of kernel drivers, kodi, and ffmpeg need to all be in sync for 3D to work. This time around neither LE or Kodi (or the Pi Foundation) are going to accept a huge invasive patchset that can never be upstreamed (which is the situation for the current RPi3 code) so it will either be done properly (and upstreamed) or not done at all. I've clarified with the devs that TAB/SBS are reasonable to implement, MVC is not, MVC via ISO is unlikely to ever be done, and 3D support overall is in the priority list for "when we did everything else" .. so I wouldn't hold breath.

  • I understand that MVC is very low priority and unlikely to have, but I have to admit that support for a simple SBS/TAB movie should be relatively simple and platform independent. I don't have a pi 4, but on my pi 3 and on my pc libreelec does split it correctly (using 9.2.6).

    As a HSBS file is like a normal 1080p file with 2 views at half the resolution combined into 1 frame I would suspect the process to be something like this:

    1: Open a HSBS 1080p h264 file

    2: Kodi detects it's HSBS based on metadata/filename tags

    3: rpi4 decodes the 1080p h264 video frames with hardware decoding (platform specific driver for decoding handled by ffmpeg/v4l2?)

    4: The renderer from kodi splits the UI+subtitles to HSBS

    5: The renderer from kodi splits the decoded frames into a left and right view

    6: The views and UI are combined to one output frame is HSBS format

    7: the frames are sent to the TV (using the drivers from the rpi4).

    It seems to me only step 3 (hardware decoding) and step 7 (sending the video to the right output) are different on a pi4 due to a different driver, the rest should work the same as a pi3 or generic pc. So what am I missing? It seems that on a pi4, step 6 combines the ui from HSBS with the videoframe with monoscopic output. Or somehow the hardware decoder of the pi also detects HSBS and passes the left view of the frame for kodi to process, but this seems unlikely.

    Anke Since you mention VLC/mplayer I assume you're testing with a standard (H)SBS video and not a MVC encoded video. When you say current release, do you mean 9.2.6 or the 10.0 BETA 1 that was just released? What happens when you choose monoscopic as stereo mode? Does it show you half of the left view?

    As a workaround, you could always disable the stereoscopic features in kodi and use the TV to select HSBS. This gives you the 3D video but the UI and subtitles aren't rendered correctly (so no advantage over VLC/mplayer except the nice video library).

  • I don't have a pi 4, but on my pi 3 and on my pc libreelec does split it correctly

    The RPi3 and RPi4 are two quite different graphics beasts. The RPi4 has a new graphics 'driver solution', so it's basically developed from the ground up. And since 3D as a display technique is on its way out and HDR is the new buzz, it will take some more time to implement properly no matter how "relatively simple and platform independent" it is. But we always warmly welcome developers for graphics drivers if you're interested. :)

    The RPi 0-1-2-3 have the same graphics chip for some 7 years now. That chip is at its peak performance.

  • I am aware that the rpi4 has a different new graphics driver. And I do respect that 3D is video is very low priority these days and there are more important things to fix. But the point I was trying to make is that a SBS video file is no different from a normal 1080p file except for maybe some metadata and/or the letters SBS in the filename. We know a rpi4 can hardware decode and play a 1080p file, we also know it can output the gui in 3D. So the problem doesn't seem driver related.

    But we always warmly welcome developers for graphics drivers if you're interested. :)

    I wish I had some more c++ and driver knowledge, but sadly I don't think I can create usable graphics driver code.