3D Support builds for Raspberry Pi

  • Thanks - that answers it, and yours is the one that should go upstream. Ours is superseded.

    One thing I could still usefully add: a cross-check on real material. I compiled your BlurayOffsetMetadata.cpp verbatim and our parser (which was derived from discs, not the spec) side by side, and fed both the same NAL chunks from 1 GB of Alita's dependent-view stream, about 20% into the feature.

    253 OFMD messages found by each, 253 by both, 253 identical sequences x frames tables, 0 mismatches. 32 sequences, 12 of them dynamic, values 0..10 - which is also what an independent survey of that disc reports.

    As a control I reverted ours to an old off-by-one layout (values read from byte 15 instead of 14): the same run then reports 253 of 253 mismatched. So the agreement is not a harness that cannot fail.

    Two independent implementations agreeing byte for byte on real discs is probably worth more than either alone. Happy to send the harness or the ES slice if you want to reproduce it.

    Discs where the effect is easy to see, from the survey: King Arthur: Legend of the Sword (22 of 32 sequences move, -1..37), Kong: Skull Island (24 of 32, -1..30), Jaws 3-D (19 of 32, -6..31). The negatives are worth testing separately - a disc with only positive values cannot catch a sign error.

    (Disclosure as before: written with Claude Code, posted from my account.)

  • I tried this today with the LibreELEC-RPi4.aarch64-13.0-devel-20260831213406-7e8026e.img on a Pi4.

    Amazing!!! I have a 20 foot HDMI cable plugged into my Denon AVR and the 3D is even detected on my projector as expected with my MVC files! Love it!

    I have a couple questions:

    I use the PM4K add on since all my media is served from my Plex server. Since my profile is used on all my TV's I prefer that because it keeps all my media in sync with where I left off etc. It plays fine but if I don't set the 3D setting to "Preferred" on playback it gives you that intermediate screen asking how you want to play it back. If I leave it at that setting the popup screen is not visible unless I "escape" out of whatever is covering it. I think the cause is related to this Kodi build becasue I run PM4K on all my 3D linux players (Vero and RPi) and this is the only one it does that on. If I change that to preferred it doesn't ask that question and it moves on happily to play my media. Is this something that the PM4K would have to address or am I barking up the wrong tree?

    I tried playing a movie with TrueHD 7.1. It plays it fine, but my AVR only shows "multi input" not Atmos like it normally does. I have my Kodi settings to 7.1 audio but can't find any other settings specifically related to Atmos. Is there anything else I need to tweak for this to work?

    Off to more playing! Thanks for the awesome resurrection of this software!

  • Yes, debug enabled log file would be useful. Also is this a regression compared to previous build, or did that do it too?

    Here are the logs: https://www.swisstransfer.com/dl/01a065c8-37…09-a4a2b26e53c4
    1. I resume Cars 2, FP output starts, UI is 3D but video and subtitles are 2D.
    2. I start Cars 3 from the start, video is 3D, did not activate subtitles. I try to skip 5 minutes, video goes black and audio continue.
    3. I try to resume Cars 3, FP output starts, UI is 3D but video and subtitles are 2D.

    Also I keep getting questions about the playlist already being used and if I want to reassign it. Anyway to supress those?

    I see there have been some discussion about 3D-planes and subtitle depth so I will insert this I wrote some time ago where I go through some of the different variant you see on 3D Blu-rays. In case it is to some use :)

    --------------------------------------------------------------------

    First you have Cars 3. This disc shows how every disc should be done. Each subtitle has each own 3d-plane and each of those 3d-plane are different to match each subtitle track. Since different languages take up different amount of space and thus interact with the background object different.

    A bit lazier version of this is having one 3d-plane with dynamic depth and then connecting all subtitles tracks to that. This can work good enough if all of you subtitles are in related languages that produce text in about the same amount of space.

    3D-Plane #00
    NumFrames: 147333
    Minimum depth: -3
    Maximum depth: 24
    Average depth: 6.25
    Number of changes of depth value: 776
    First frame with a defined depth: 1097
    Last frame with a defined depth: 139153
    Number of frames with undefined depth: 9895
    Identical Planes: None

    3D-Plane #01
    NumFrames: 147333
    Minimum depth: -1
    Maximum depth: 24
    Average depth: 6.10
    Number of changes of depth value: 522
    First frame with a defined depth: 1124
    Last frame with a defined depth: 146108
    Number of frames with undefined depth: 2808
    Identical Planes: None

    3D-Plane #02
    NumFrames: 147333
    Minimum depth: -3
    Maximum depth: 24
    Average depth: 6.28
    Number of changes of depth value: 925
    First frame with a defined depth: 1124
    Last frame with a defined depth: 146108
    Number of frames with undefined depth: 3423
    Identical Planes: None

    3D-Plane #03
    NumFrames: 147333
    Minimum depth: -1
    Maximum depth: 11
    Average depth: 6.43
    Number of changes of depth value: 8
    First frame with a defined depth: 3393
    Last frame with a defined depth: 133805
    Number of frames with undefined depth: 16920
    Identical Planes: None

    3D-Plane #04
    NumFrames: 147333
    Minimum depth: 2
    Maximum depth: 11
    Average depth: 7.25
    Number of changes of depth value: 7
    First frame with a defined depth: 20290
    Last frame with a defined depth: 133805
    Number of frames with undefined depth: 33817
    Identical Planes: None

    --------------------------------------------------------------------

    The Super Mario Bros has all the subtitles on the same 3d-plane and that 3d-plane is just a fixed distance from the screen. Lazy creator and lazy maker of the disc. At least this disc has a small positive depth, you can find discs where the 3d-plane is just at screen depth. For these at screen depth it would be nice if you could override the depth and just set a fixed one to your own liking.

    3D-Plane #00
    NumFrames: 132946
    Minimum depth: 10
    Maximum depth: 10
    Average depth: 10.00
    Number of changes of depth value: 1
    First frame with a defined depth: 0
    Last frame with a defined depth: 132945
    Number of frames with undefined depth: 0
    Identical Planes: None

    --------------------------------------------------------------------

    Then you have these really unfortunate cases like The House of Magic disc. Here the creator is nWave Studios, lovers of 3D. But the maker of the disc was an idiot. There is a 3d-plane with dynamic depth but since the idiot swapped the eyes it's all inverted in relation to the video so instead of just swapping the eyes to the standard left eye first they make a fixed -12 depth 3d-plane, to make a small positive pop for the sub, and assigned that to the subtitle instead and called it a day. At least they still included the original 3d-plane so we can use that.

    3D-Plane #00
    NumFrames: 122472
    Minimum depth: -12
    Maximum depth: -12
    Average depth: -12.00
    Number of changes of depth value: 1
    First frame with a defined depth: 0
    Last frame with a defined depth: 122471
    Number of frames with undefined depth: 0
    Identical Planes: None
    *** Warning This 3D-Plane has a fixed depth of -12! ***

    3D-Plane #01
    NumFrames: 122472
    Minimum depth: 1
    Maximum depth: 50
    Average depth: 17.22
    Number of changes of depth value: 533
    First frame with a defined depth: 0
    Last frame with a defined depth: 122388
    Number of frames with undefined depth: 702
    Identical Planes: None

  • Yes, debug enabled log file would be useful. Also is this a regression compared to previous build, or did that do it too?

    Forgot to answer your question. I am not sure if it's a regression. I have not seen black screen or 2D before but I have not tried playing a lot of ISOs and don't know if I tried these before.

  • I did notice a freezing issue on stopping some videos with latest build.

    This wasn't specifically 3d (I was hitting it with youtube) but was a regression from previous build.

    This was a false alarm. Found out my MySQL server machine had a full disk and all SQL requests were failing. That caused the hang on stop (when it updates elapsed time/played count). Deleted some files and all is good for me now. (But I'll look at any logs for clues from others).

  • Have a couple more issues I've found.
    Logs: https://www.swisstransfer.com/dl/01a06788-7e…cd-ad91aff577a1

    1. I resume Driver Angry but the eeyes are flipped, see attached image. This is one of those disc where the right eye is the main och left the MVC track. I go to video settings and enable swap eyes but it has no effect I den disable it again.
    2. Try to play a movie, select the only playlist that is long and it plays in 2D.
    3. Try to play another movie, select the only playlist that is long and it also plays in 2D.

    So Kodi not detecting which stream has which eye and swap eyes not wokring in case the metadata is wrong. Also some dics fails to be detected as 3D at all. Not the same issue as above where it starts FP output and 3D but video is 2D. 2 and 3 never detects 3D at all.