TPEPlatform/MediaRecorder

From MozillaWiki
Jump to navigation Jump to 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..

Regarding to architecture of Encoding framework, please visit "MediaEncoder Framework".

META Issues

META bugs for Encoding framework:

Bug No Description
bug 803414 MediaRecorder WebAPI
bug 879688 MediaEncoder pipeline
bug 842243 Audio encoding path
bug 879669 Video encoding path
bug 888177 ImageCapture WebAPI
bug 891705 WebM 1.0 container writer
bug 883749 Vorbis encoding
bug 881840 VP8 encoding
bug 879668 VideoOmxEncoder encoding
bug 920934 AudioOmxEncoder encoding
bug 891704 MP4Writer container writer

Blocker for 1.3

  • bug 919905 - Media Recording - Refactor encoder architecture to support the video encoder module
  • bug 879669 - Support Video Encoder module in MediaEncoder framework

All video encoding path are block by these two bugs.

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/ OGG Gecko 24 All Shelly
LPCM/ Wav TBD All
MP3 Not defined All
Video OmxVideo/ OmxAudio/ MP4 B2G 1.3 B2G, Fennec Shelly Lin, Alfredo Yang
VP8/ Vorbis/ WebM Gecko 26, B2G 1.3 All Randy Lin, Benjamin Chen
VP9/ Opus/ WebM Depend on decoding module TBD

Reference