Movian Media Player - Developer Documentation¶
Movian is a cross-platform media player designed for home theater PCs, set-top boxes, and embedded devices. This comprehensive documentation provides everything developers need to understand, extend, and contribute to the Movian ecosystem.
🎯 What is Movian?¶
Movian is a powerful, extensible media player that combines:
- Cross-Platform: Runs on Linux, macOS, Windows, Android, PlayStation 3, and Raspberry Pi
- Plugin Architecture: JavaScript-based plugin system for content providers and extensions
- Media Focus: Optimized for video playback with support for numerous codecs and formats
- Native Performance: Written in C/C++ for optimal performance on resource-constrained devices
- Custom UI Engine: GLW (OpenGL Widget) system for creating responsive, themeable interfaces
Target Audiences¶
This documentation serves four primary developer audiences:
| Audience | Primary Goals | Key Document |
|---|---|---|
| Plugin Developers | Create content providers, scrapers, and extensions | Plugin Development Guide |
| UI Designers | Customize themes, skins, and user interfaces | UI & Theming Guide |
| Core Contributors | Modify core functionality and add features | Architecture Overview |
| System Integrators | Embed Movian in other applications | Installation & Build Guide |
🏗️ Architecture Overview¶
Movian's architecture is built around several key subsystems that work together to provide a complete media experience:
graph TB
subgraph "User Interface Layer"
GLW[GLW Rendering Engine]
Skins[Skins & Themes]
Views[View Files]
end
subgraph "Application Layer"
Nav[Navigator]
Pages[Page System]
Settings[Settings Manager]
Events[Event System]
end
subgraph "Plugin System"
JSEngine[ECMAScript Runtime]
PluginAPI[Plugin APIs]
Plugins[JavaScript Plugins]
end
subgraph "Media Engine"
Backends[Media Backends]
Codecs[Audio/Video Codecs]
Streaming[Network Streaming]
end
subgraph "Core Services"
Storage[Storage & Database]
Network[HTTP Client]
I18N[Internationalization]
Metadata[Metadata Services]
end
GLW --> Nav
Skins --> GLW
Views --> GLW
Nav --> Pages
Pages --> Events
Events --> Settings
JSEngine --> PluginAPI
PluginAPI --> Plugins
Plugins --> Pages
Backends --> Codecs
Codecs --> Streaming
Storage --> Network
Network --> I18N
I18N --> Metadata
Pages --> Backends
PluginAPI --> Storage
Settings --> Storage
Core Components¶
- GLW (OpenGL Widget) System: Custom UI rendering engine for creating responsive interfaces
- ECMAScript Runtime: JavaScript execution environment for plugins with native API bindings
- Navigator & Page System: Application flow control and page lifecycle management
- Media Pipeline: Multi-format playbook with codec abstraction and streaming support
- Plugin Architecture: Sandboxed JavaScript environment for third-party extensions
📚 Documentation Structure¶
Quick Start Guides¶
- Installation Guide - Build and install Movian on your platform
- Your First Plugin - Create a simple content provider plugin
- Customizing the UI - Modify themes and create custom skins
Core Documentation¶
🔧 Installation & Build System¶
Complete guides for building Movian from source on all supported platforms.
- Requirements - System dependencies and prerequisites
- Linux Build Guide - Ubuntu, Debian, Fedora, and other distributions
- macOS Build Guide - Xcode setup and dependency management
- Windows Build Guide - MinGW and Visual Studio configurations
- Cross-Platform Builds - Android, PS3, and Raspberry Pi
- Troubleshooting - Common build issues and solutions
🏛️ Architecture Documentation¶
Deep dive into Movian's internal design and component interactions.
- System Overview - High-level architecture and design principles
- Application Lifecycle - Startup, initialization, and shutdown sequences
- Component Interaction - How major subsystems communicate
- Threading Model - Concurrency patterns and synchronization
- Memory Management - Resource allocation and cleanup strategies
🔌 Plugin Development¶
Complete guide to creating JavaScript plugins for Movian.
- Getting Started - Your first plugin in 15 minutes
- Plugin Architecture - Lifecycle, manifest, and security model
- ECMAScript API Reference - Complete JavaScript API documentation
- Core APIs - Service registration and page management
- HTTP Client - Network requests and content fetching
- Storage APIs - Persistent data and SQLite database
- Settings APIs - Plugin configuration and preferences
- Working Examples - Complete plugin implementations
- Hello World - Basic plugin structure
- Content Provider - Media source integration
- Search Plugin - Search functionality
- Configurable Plugin - Settings and preferences
- Advanced UI Plugin - Custom interface elements
- Best Practices - Patterns, performance, and debugging
🎨 UI System & Theming¶
Master Movian's GLW rendering engine and create custom interfaces.
- GLW Architecture - OpenGL Widget system internals
- View Files - XML-like UI definition language
- Syntax Reference - Complete language specification
- Elements Reference - All available UI elements
- Attributes Reference - Element properties and values
- Expression System - Dynamic values and data binding
- Source Code Analysis - Deep dive into GLW implementation
- Parser Analysis - Element and attribute parsing
- Lexer Analysis - Token definitions and syntax
- Evaluator Analysis - Expression evaluation engine
- Theming System - Create and customize skins
- Skin Structure - Directory organization and file relationships
- Creating Skins - Complete skin development workflow
- Theme Variables - Customization and device adaptation
- Widget Reference - Available UI components
- Containers - Layout and positioning widgets
- Text Elements - Typography and text rendering
- Images - Image display and manipulation
- Lists & Grids - Data presentation widgets
🎬 Media System¶
Understanding Movian's media playback pipeline and backend architecture.
- Pipeline Architecture - Media processing flow
- Codec Support - Audio and video format handling
- Streaming Protocols - Network media sources
- Subtitle System - Text overlay and synchronization
Reference Documentation¶
📖 Complete API Reference¶
Comprehensive reference materials for quick lookup.
- API Index - All JavaScript APIs with signatures
- Element Index - All view file elements
- Attribute Index - All element attributes
- Glossary - Technical terms and definitions
- FAQ - Frequently asked questions
- Troubleshooting - Common issues and solutions
🛠️ Developer Tools¶
Practical guides for development workflows.
- Development Setup - IDE configuration and debugging tools
- Plugin Debugging - JavaScript debugging techniques
- UI Debugging - Layout and rendering troubleshooting
- Performance Optimization - Profiling and optimization strategies
🚀 Quick Start¶
For Plugin Developers¶
# 1. Clone and build Movian
git clone https://github.com/andoma/movian.git
cd movian
./configure
make
# 2. Create your first plugin
mkdir my-plugin
cd my-plugin
# Follow the plugin guide: plugins/getting-started.md
For UI Designers¶
# 1. Examine existing skins
cd movian/glwskins/flat
# Study the view files and theme structure
# 2. Create custom theme
# Follow the theming guide: ui/theming/creating-skins.md
For Core Contributors¶
# 1. Set up development environment
# Follow: guides/development-setup.md
# 2. Understand the architecture
# Read: architecture/overview.md
🤝 Contributing¶
We welcome contributions to both Movian and its documentation!
Documentation Contributions¶
- Found an error? Open an issue or submit a pull request
- Missing information? Help us fill the gaps
- Better examples? Share your working code
Code Contributions¶
- Plugin development - Create and share useful plugins
- Core improvements - Bug fixes and feature enhancements
- Platform support - Help with new platform ports
See our Contributing Guide for detailed information.
📄 License¶
Movian is licensed under the GNU General Public License v3.0. See the LICENSE file in the Movian source repository for details.
This documentation is licensed under Creative Commons Attribution 4.0 International.
🔗 Links¶
- Official Website: https://movian.tv/
- Source Code: https://github.com/andoma/movian
- Issue Tracker: https://github.com/andoma/movian/issues
- Community Forum: Movian Community
Documentation Version: 1.0.0
Last Updated: November 2025
Movian Version Compatibility: 4.8+
Accuracy Status: 🟢 Verified from source code analysis
This documentation is actively maintained and updated with each Movian release. For the most current information, always refer to the latest version.