TPEPlatform/MediaRecorder

From MozillaWiki
Jump to: navigation, search

Summary

We already have mozCamera for take photo or video recording. mozCamera itself is not part of any standard web spec, which means

  1. It works on Firefox platform only.
  2. Totally isolate in media world. There is no way to connect data stream from mozCamera with media processing module, such as WebAudio, or recording module, such as MediaRecorder.

MediaRecorder takes media stream, which may come from web audio or media source or user media, as input. User may process all these media streams before recording. In mozCamera, there is nothing that user can do between capturerer and recorder, except canned video effect.

To totally replace mozCamera, we need to support these three WebAPI

  1. MediaRecorder: replace video recording function in mozCameraControl
  2. ImageCapture: replace takePhoto function in mozCameraControl
  3. CameraControl: except the first two function, we still need an API to control camera for 3A/ Zoom/ etc..


On B2G, there are two strategies

  1. B2G 1.3 on JerryBean: Base on JB::MediaCodec, we will support OmxVideoTrackEncoder and OmxAudioTrackEncoder to leverage HW encoder.
  2. B2G 1.3 on ICS: in this case, we still use VP8 and WebM.

Tracking Issues

META bugs for Encoding framework:

Bug No Description
bug 803414 MediaRecorder WebAPI
bug 879688 MediaEncoder pipeline
bug 888177 ImageCapture WebAPI

Main tracking issues

Bug No Description Statue Assigned
bug 842243 Audio encoding path FIXED Shelly
bug 919905 Refactor encoder architecture to support the video encoder module FIXED Randy
BLOCKER: bug 879669 Video encoding path Open Randy
bug 891705 WebM 1.0 container writer Open Randy
bug 883749 Vorbis encoding Open Benjamin
bug 881840 VP8 encoding Open Randy
bug 879668 VideoOmxEncoder encoding Open Shelly, John
bug 920934 AudioOmxEncoder encoding Open Shelly, John
bug 891704 MP4Writer container writer Open Alfredo

Testing Plan

  1. Jason Smith: https://etherpad.mozilla.org/media-recording-testing
Bug No Description Statue Target Assigned
bug 889772 Audio Recording - Marionette Test Case Open Gecko 25 Randy Lin
TBD Video Recording - Marionette Test Case Open Gecko 26 Randy Lin

Schedule

Type Milestone Target Platform Assignee
Audio Opus Gecko 24 All Shelly
Vorbis Gecko 28 All Benjamin
OmxAudio B2G 1.3 B2G 1.3 with Android Jerry Bean Shelly
LPCM/ Wav
MP3
Video OmxVideo B2G 1.3 B2G 1.3 with Android Jerry Bean Shelly Lin, John Lin
VP8 Gecko 28 All Randy Lin, Benjamin Chen
VP9 TBD TBD

Reference