How zerochocobo/thru3d-media-player works
Thru3D is an Android VR/MR media player for Quest and PICO. A user browses local, cloud, or network media, selects content, and plays it in the headset with supported stereo, passthrough, subtitle, and rendering options. The product also has distinct browser, photo, document/comic, casting, and scene-import experiences. The graph preserves those documented capabilities; source excerpts are sparse, so most feature relationships are documented README flows rather than inspected call paths.
Main entry points: mpv_source.cpp Media Playback · LocalStorageVolumes.kt Local Storage · LocalStreamServer.kt Local Stream Server · CloudStreamSource.kt Cloud Drives
Components 23
Media Access
- Local Storage
android/player-plugin/src/main/java/org/vrpassthroughplayer/plugin/LocalStorageVolumes.kt - USB Storage
android/player-plugin/src/main/java/org/vrpassthroughplayer/plugin/UsbStorage.kt - Cloud Drives
android/player-plugin/src/main/java/org/vrpassthroughplayer/plugin/CloudStreamSource.kt - Media Classification
android/player-plugin/src/main/java/org/vrpassthroughplayer/plugin/MediaKinds.kt - DLNA Libraries
android/player-plugin/src/main/java/org/vrpassthroughplayer/plugin/DlnaClient.kt - DVD Sources
android/player-plugin/src/main/java/org/vrpassthroughplayer/plugin/DvdFolderImage.kt - Local Stream Server
android/player-plugin/src/main/java/org/vrpassthroughplayer/plugin/LocalStreamServer.kt - Cloud Search
cloud/openlist/cloud_search.go
Playback and XR
- Media Playback
native/mpv/mpv_source.cpp - XR Rendering
native/render-bridge/render_bridge.cpp - Compositor Layers
native/xr-layer/video_layer.cpp - 3D Scenes
native/unity-scene/unity_scene.cpp - HDR Processing
native/hdr/hdr_image.cpp
Browser and Casting
- AirPlay Receiver
android/player-plugin/src/main/java/org/vrpassthroughplayer/plugin/AirplayReceiverService.kt - Web Browser
android/web-browser/src/main/java/org/vrpassthroughplayer/plugin/WebBookmarkService.kt - DLNA Receiver
android/player-plugin/src/main/java/org/vrpassthroughplayer/plugin/DlnaReceiver.kt
Photos and Reading
- Photo Experience
android/player-plugin/src/main/java/org/vrpassthroughplayer/plugin/PhotoBridge.kt - PDF and Comics
android/player-plugin/src/main/java/org/vrpassthroughplayer/plugin/PdfBridge.kt - Comic OCR
native/narration/comic_ocr.cpp
AI and Narration
- Live Subtitles
android/player-plugin/src/main/java/org/vrpassthroughplayer/plugin/ListeningController.kt - Narration Engine
android/player-plugin/src/main/java/org/vrpassthroughplayer/plugin/SharedNarrationEngine.kt - Depth Processing
native/rvm/rvm_runtime_jni.cpp
Other components
- Viewer
Connections 24
- Viewer → Local Storage: browses
README.md - Viewer → Cloud Drives: browses
README.md - Viewer → DLNA Libraries: browses
README.md - Viewer → USB Storage: browses
README.md - Viewer → Media Playback: plays media
README.md - Local Storage → Media Classification: classifies files
android/player-plugin/src/main/java/org/vrpassthroughplayer/plugin/MediaKinds.kt - Local Storage → Local Stream Server: serves media
android/player-plugin/src/main/java/org/vrpassthroughplayer/plugin/LocalStreamServer.kt - Cloud Drives → Local Stream Server: serves media
android/player-plugin/src/main/java/org/vrpassthroughplayer/plugin/LocalStreamServer.kt - Local Stream Server → Media Playback: provides streams
android/player-plugin/src/main/java/org/vrpassthroughplayer/plugin/LocalStreamServer.kt - Media Playback → XR Rendering: renders frames
- XR Rendering → Compositor Layers: composes output
- Viewer → DVD Sources: opens discs
README.md - Viewer → Web Browser: browses pages
README.md - Viewer → AirPlay Receiver: mirrors media
README.md - Viewer → DLNA Receiver: casts media
README.md - Viewer → Cloud Search: searches drives
README.md - Viewer → Photo Experience: views photos
README.md - Viewer → PDF and Comics: reads documents
README.md - PDF and Comics → Comic OCR: recognizes text
- Viewer → Live Subtitles: enables captions
README.md - Viewer → Narration Engine: uses narration
README.md - Viewer → Depth Processing: enables depth
README.md - Media Playback → HDR Processing: processes HDR
- Viewer → 3D Scenes: imports scenes
README.md