Android Stagefright NuPlayer for HTTP live

来源:互联网 发布:对网络舆论看法心得 编辑:程序博客网 时间:2024/05/22 04:35

Android 3.x中将HTTP Live streaming的处理单独出来一个NuPlayer,独立于Stagefright这个框架。应该是针对Http  Live的特点做了相关优化。

     Http Live streaming是未来流媒体发展的一个趋势,这个我会紧跟。

     Android 2.x中Http Live视频的体验是远远比不了iPad的。不知3.x中是否将这块儿独立出来后有所改善。目前评测的几款Android 3.x  Pad在多媒体这块儿都还做得很不够,支持的格式不够多,仅有的几种格式还支持得不全。

     HTTP Live Streaming is separated from Stagefright on the recent release, which  is basically another light-weighted playback engine, except it only supports the  fixed container and codecs format currently.

     It seems that the author really prefers rewriting than refactoring:)

     Unlike Awesomeplayer, NuPlayer is built upon Stagefright's foundation classes,  and leverages the Looper/Handlers mechanism to handle requests asynchronously by  queuing them in a message loop, so there are less mutex/lock in  place.

  • NuPlayer::Source  is the parser module. Actually its interface looks like a combination of  MediaExtractor and MediaSource, and it also makes seekTo as an explicit API  now.
  • NuPlayer::Decoder  connects to ACodec for AVC decoding, and to DecoderWrapper for AAC decoding,  which in turn wrapps AAC software decoder in the OpenMAX style. ACodec is  functionally similar as OMXCodec in Stagefright, besides the application of  State pattern and passing MediaBuffers around with messages.
  • NuPlayer::Render  is responsible for rendering audio and also controls when to post video buffers  back to NativeWindow for A/V sync.

 

原创粉丝点击