(Difference between revisions)
Revision as of 11:22, 27 January 2012
HTML5 Video Hardware Acceleration
MeeGo TV Hardware Capability
- Video Display Controller Architecture
Image(vdc.PNG)
- 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
Multi-plane Solution
Image(mp-solution.PNG)
- 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
- Facts:
- 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
Image(vat-solution.PNG)
- 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.
Tradeoff
- Multi-plane
- 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