Blueprint: https://blueprints.launchpad.net/ubuntu/+spec/client-1303-hw-video-decode-rendering-support
Goals
- Audio and video playback
- Hardware accelerated
- Ubuntu Touch for now; Ubuntu Desktop in the future
- Leverage Android BSPs of supported Ubuntu Touch devices
- DRM support
Out of scope
- Media capture / encoding and transcoding
- Webcam
- Currently not directly targeting Ubuntu Desktop
Currently not targeting WiFi Direct
- !UPnP -- might be provided by apps though
Requirements
- Need to have a DRM solution for commercial products (OEM and media content industry requirement)
- DRM solution might impose extra requirements on e.g. access to buffers, multiple processes, security/confinement etc.
- Support at least the codecs supported in the Android phones we're targeting as supported Ubuntu Touch devices
- Concurrent playback of multiple streams (at least audio mixing)
- Bluetooth audio output (e.g. headset)
- Media indexing?
Android bits
On Android, media decoding is provided by a separate Media Service process which provides audio and video decoding.
Media indexing
Media control
Power management
DRM / security
Codecs
Import / export / share
Syncing over USB and Bluetooth U1?
Dock / external screen
Applications don’t control which output they are on, but get notified of the new display properties. This will also affect media playback.
Audio input + output selection / plug detection
Not covered by this spec, but see Ricardo Salveti’s spec on audio input + output selection and plug detection.
API
Architecture
Media Service