TPESystem/Media

From MozillaWiki
Jump to navigation Jump to search

TPESystem/Media

Media playback on Firefox OS

  • Members
    • Marco Chen
    • Bruce Sun
    • Star Cheng
    • Blake Wu
  • Device Porting Issues
    • Make sure ro.moz.omx.hw.max_width & ro.moz.omx.hw.max_height values are suitable for video decoding on the target device.
      • Each time one video clip is going to be played, OMXCodecProxy is used to handle resource management of hardware video decoders.
      • After one video OMXCodec has been created successfully, OMXCodecProxy will double check the product of these two values with the actual video resolution.
      • If the video resolution is bigger than the product of these two values, OMXCodecProxy will destroy this newly created OMXCodec. As a result, the playback of this video clip will be abandoned in this case.
      • reference: bug 911113
    • Check HAL_PIXEL_FORMAT_XXX enum definition for color format.
      • Currently HAL_PIXEL_FORMAT_XXX is hardcoded in GrallocImages.h.
      • The way how HAL_PIXEL_FORMAT_XXX should be ported in Firefox OS will be improved in the near future.
      • reference: bug 931733
    • Make sure all the buffers allocated from ANativeWindows can be used for video decoding.
      • In AOSP, ANativeWindow is used as a buffer source and also as a render target. ANativeWindow needs to keep at least minUndequeuedBufs while rendering video. Each buffer in the queue takes turns to be filled, be rendered, and be emptied.
      • In Firefox OS, ANativeWindow is used as a buffer source, but not as a render target. If we keep minUndequeuedBufs buffers in ANativeWindow, these buffers will never have chances to be filled. As a result, it's very easy to encounter buffer starvation during video decoding.
      • reference: attachment 744257 [edit] on bug 864230
    • Make sure to return ERROR_UNSUPPORTED in OMXCodec::pause() if underlying OMX IL component doesn't support pause and resume function.