TPEPlatform/MediaRecorder: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
 
(9 intermediate revisions by the same user not shown)
Line 12: Line 12:
#CameraControl: except the first two function, we still need an API to control camera for 3A/ Zoom/ etc..
#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 [[TPEPlatform/MediaEncoderFramework|"MediaEncoder Framework"]].


==META Issues==
On B2G, there are two strategies
#B2G 1.3 on JerryBean: Base on JB::MediaCodec, we will support OmxVideoTrackEncoder and OmxAudioTrackEncoder to leverage HW encoder.
#B2G 1.3 on ICS: in this case, we still use VP8 and WebM.
 
==Tracking Issues==
META bugs for Encoding framework:
META bugs for Encoding framework:
{| class="fullwidth-table sortable" style="width: 100%;"
{| class="fullwidth-table sortable" style="width: 100%;"
Line 27: Line 30:
| MediaEncoder pipeline
| MediaEncoder pipeline
|-
|-
| <strike>{{bug|842243}}</strike>
| {{bug|888177}}
| <strike>Audio encoding path</strike>
| ImageCapture WebAPI
|}
 
Main tracking issues
{| class="fullwidth-table sortable" style="width: 100%;"
|-
| style="background: none repeat scroll 0% 0% rgb(239, 239, 239);" | '''Bug No'''
| style="background: none repeat scroll 0% 0% rgb(239, 239, 239);" | '''Description'''
| style="background: none repeat scroll 0% 0% rgb(239, 239, 239);" | '''Statue'''
| style="background: none repeat scroll 0% 0% rgb(239, 239, 239);" | '''Assigned'''
|-
|-
| {{bug|842243}}
| Audio encoding path
| FIXED
| Shelly
|-
| {{bug|919905}}
| Refactor encoder architecture to support the video encoder module
| FIXED
| Randy
|-
|-
| {{bug|879669}}
| <font color="red">BLOCKER: </font>{{bug|879669}}
| Video encoding path
| Video encoding path
|-
| Open
| {{bug|888177}}
| Randy
| ImageCapture WebAPI
|-
|-
| {{bug|891705}}
| {{bug|891705}}
| WebM 1.0 container writer  
| WebM 1.0 container writer  
| Open
| Randy
|-
|-
| {{bug|883749}}
| {{bug|883749}}
| Vorbis encoding  
| Vorbis encoding  
| Open
| Benjamin
|-
|-
| {{bug|881840}}
| {{bug|881840}}
| VP8 encoding  
| VP8 encoding  
| Open
| Randy
|-
|-
| {{bug|879668}}
| {{bug|879668}}
| VideoOmxEncoder encoding
| VideoOmxEncoder encoding
| Open
| Shelly, John
|-
|-
| {{bug|920934}}
| {{bug|920934}}
| AudioOmxEncoder encoding
| AudioOmxEncoder encoding
| Open
| Shelly, John
|-
|-
| {{bug|891704}}
| {{bug|891704}}
| MP4Writer container writer
| MP4Writer container writer
| Open
| Alfredo
|}
|}
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==
==Testing Plan==
Line 94: Line 123:
| style="background: none repeat scroll 0% 0% rgb(239, 239, 239);" | '''Assignee'''
| style="background: none repeat scroll 0% 0% rgb(239, 239, 239);" | '''Assignee'''
|-
|-
|rowspan=3|Audio
|rowspan=5|Audio
| Opus/ OGG
| Opus
| Gecko 24
| Gecko 24
| All
| All
| Shelly
|-
| Vorbis
| Gecko 28
| All
| Benjamin
|-
| OmxAudio
| B2G 1.3
| B2G 1.3 with Android Jerry Bean
| Shelly
| Shelly
|-
|-
| <strike>LPCM/ Wav</strike>
| <strike>LPCM/ Wav</strike>
| <strike>TBD</strike>
| <strike>   </strike>
| <strike>All</strike>
| <strike>   </strike>
|  
| <strike>  </strike>
|-
|-
| <strike>MP3</strike>
| <strike>MP3</strike>
| <strike>Not defined</strike>
| <strike>   </strike>
| <strike>All</strike>
| <strike>   </strike>
| <strike>  </strike>
|-
|-
|rowspan=3|Video
|rowspan=3|Video
| OmxVideo/ OmxAudio/ MP4
| OmxVideo
| B2G 1.3
| B2G 1.3
| B2G, Fennec
| B2G 1.3 with Android Jerry Bean
| Shelly Lin, Alfredo Yang
| Shelly Lin, John Lin
|-
|-
| VP8/ Vorbis/ WebM
| VP8
| Gecko 26, B2G 1.3
| Gecko 28
| All
| All
| Randy Lin, Benjamin Chen
| Randy Lin, Benjamin Chen
|-
|-
| VP9/ Opus/ WebM
| VP9
| Depend on decoding module
| TBD
| TBD
| TBD
|  
|  

Latest revision as of 06:40, 28 October 2013

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