Media/getUserMedia: Difference between revisions
< Media
Jump to navigation
Jump to search
(→Goal) |
(→Goal) |
||
| Line 2: | Line 2: | ||
== Goal == | == Goal == | ||
* Need [https://wiki.mozilla.org/Media/getUserMedia/Desktop_gUM_UI UI for desktop] | |||
* Implement getUserMedia on Desktop, then Android, then B2G | * Implement getUserMedia on Desktop, then Android, then B2G | ||
* Needed to unblock WebRTC | * Needed to unblock WebRTC | ||
* Includes the following uses of getUserMedia: | * Includes the following uses of getUserMedia: | ||
Revision as of 17:32, 18 October 2012
getUserMedia Implementation Roadmap
Goal
- Need UI for desktop
- Implement getUserMedia on Desktop, then Android, then B2G
- Needed to unblock WebRTC
- 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]
- 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.