||<>|| 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 == {{attachment:ubuntu_touch_media_stack_architecture.png|Ubuntu Touch Media Stack High Level Architecture|width=85%}} === Media Service === {{attachment:media_service.png|some description|width=70%}}