Media/getUserMedia Roadmap
From MozillaWiki
< Media
Contents
getUserMedia Implementation Roadmap
Moved here from Media/getUserMedia; much of this page is out-of-date.
Goal
- Need UI for desktop -- Done
- Implement getUserMedia on Desktop, then Android, then B2G -- Implemented on Desktop, defaults to enabled in FF20 and FF21
- Needed to unblock WebRTC
- Includes the following uses of getUserMedia:
getUserMedia({picture: true}, onsuccess(Blob blob), onerror); getUserMedia({video: true, audio: true}, function (MediaStream stream) { video.mozSrcObject = stream; }, function (err) { dump("mozGetUserMedia error: " + err); } );
- Appropriate permission, notification and status UIs. - done
Phase 1
- Implement image capture {picture:true} API
- Android: bug 738528 [Anant]
- B2G: bug 749886 [Fabrice]
- Define common abstraction "MediaEngine" for device access across multiple platforms.
- Cross-platform: bug 750943 [Suhas/Anant]
- (crypt's version in bug 739566)
- Cross-platform: 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).
- B2G: bug 752352 [Fabrice]
- Implement a fallback backend for MediaEngine (when hardware support not available, returnMediaStream with white noise, for example).
- Cross-platform: bug 752351 [Anant]
- Write DOM bindings for getUserMedia (backed with Fallback MediaEngine).
- Cross-platform: bug 752353 [Anant]
- (split code from bug 691234 into this one)
- Dependent on MediaStreams need Notify callbacks:
- Cross-platform: bug 759908
- Cross-platform: bug 752353 [Anant]
- Implement MediaEngine backend
- B2G: bug 740997 [Fabrice] (based on Gonk)
Phase 2
- Define "chrome" extensions to MediaStreams for privileged JS code use. This includes CameraControl features .
- Android and Desktop: bug(s) to be created
- Implement MediaEngine backends:
- Android: bug ??? (either based on Android NDK/SDK, or, webrtc.org code).
- Desktop: bug 691234 [Anant] (based on webrtc.org code).
- Implement image capture {picture:true} API
- Desktop: bug 749887 [???]
- (bug 692955 tracking <input> on Desktop, reuse possible. bug 748835 tracking UI).
- Desktop: bug 749887 [???]
Phase 3
- Implement permissions, notification & status UI
- Android: bug 749881
- B2G: bug 749882
- Desktop: bug 729522 and bug 748835 -- since the camera/mic UI for WebRTC and Camera API are becoming almost the same, these bugs may now be duplicates [???]
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.