Media/getUserMedia
< Media
Jump to navigation
Jump to search
getUserMedia Implementation Roadmap
Goal
- Implement the getUserMedia specification on 3 platforms: Desktop, Android and B2G.
- Includes the following uses of getUserMedia:
getUserMedia({picture:true}, onsuccess(Blob blob), onerror); getUserMedia({video:true,audio:true}, onsuccess(MediaStream stream), onerror); video.src = stream; audio.src = stream;
- Appropriate permission, notification and status UIs.
Phase 1
- Implement image capture {picture:true} API
- Android: bug 738528 [Anant]
- B2G: bug 749886 [Fabrice]
- Desktop: bug 749887 [???]
- (bug 692955 tracking <input> on Desktop, reuse possible. bug 748835 tracking UI).
- Define common abstraction "MediaEngine" for device access across multiple platforms.
- Cross-plaform: bug 750943 [Suhas/Anant]
- (crypt's version in bug 739566)
- Cross-plaform: bug 750943 [Suhas/Anant]
- Define "chrome" extensions to MediaStreams for privileged JS code (and B2G's) use. This includes CameraControl features (https://wiki.mozilla.org/WebAPI/CameraControl).
- Cross-platform: bug 752352 [Fabrice/Anant?]
- Implement a fallback backend for MediaEngine (when hardware support not available, returnMediaStream with white noise, for example).
- Cross-platform: bug 752351 [???]
- Write DOM bindings for getUserMedia (backed with Fallback MediaEngine).
- Cross-platform: bug 752353 [Anant]
- (split code from bug 691234 into this one)
- Cross-platform: bug 752353 [Anant]
Phase 2
- Implement MediaEngine backends:
- Android: bug ??? (either based on Android NDK/SDK, or, webrtc.org code).
- B2G: bug ??? [Fabrice] (based on Gonk).
- Desktop: bug 691234 [Anant] (based on webrtc.org code).
Phase 3
- Implement permissions, notification & status UI
- Android: bug ???
- B2G: bug ???
- Desktop: bug 729522 [???]
Once UI lands, getUserMedia may be pref'ed on.
Phase 4 and beyond
- Implement file backend for MediaEngine.
- Refactor getUserMedia{picture:true} implementations to use MediaEngine + privileged MediaStreams and CameraControl APIs.