HTML5 Video Hardware Acceleration
This page describe how the MeeGo TV Browser accelerate video by using UMMS to replace FFMPEG.
Note: This implementation is specific to Intel CE4xxx HW. Other HW architecture will need modification of the code.
This concept was presented during the MeeGo conference in San Francisco.
MeeGo TV Hardware Capability
- Video Display Controller Architecture
- 4-5 Universal Pixel Plane for graphics and video rendering
- Hardware blender supports IAP and ARGB pixel format UPP
- Two hardware decoders - H.264, VC1, MPEG2. support 2-way 1080p video decoding
- Hardware Scaler
- PVR SGX Graphics Core
- Render Process:
- Replace the FFMPEG based !WebMediaPlayer with UMMS based !UmmsWebMediaPlayer
- Webkit calculates video destination area and transparent area.
- Browser Process:
- DBus bridge in browser to adapt security sandbox
- Issue plane level transparency commands
- Unified Multimedia Service
- The actual playback engine
- Playback and media control
- DBus interface
- Multi-session support
- Multi media engines(Gstreamer, !OpenMax…)
- mutter-meego-tv: Handle hints for transparency
- Browser rendered on X window
- X rendered on above plane,
- Hardware accelerated video is rendered on underneath plane.
- X server does not handle alpha channel by default
- Alpha channel is used in plane level with Pixel format ARGB
- Solution: Windows manager handles the alpha channel when compositing
- Result: See through the right area of X to show video
Video As Texture
- Render & Browser processes co work to redirect playback commands to UMMS
- UMMS is responsible for hardware accelerated video decoding and color conversion.
- RGBA data is shared between UMMS and render process
- Render process renders the texture to the video area.
- Pursues maximized performance
- Depend on wm, currently only mutter is enhanced.
- Video/browser display memory separated, advanced feature not available
- Video as Texture
- Keep the integrity of the browser window’s display memory, which enables a lot of advanced HTML5 features.
- Involve color conversion and memory copy that can be expensive for HD videos