In Android 3. X, the processing of HTTP live streaming is independently developed into a nuplayer, independent of the stagefright framework. We have optimized the features of HTTP live.
HTTP live streaming is a trend in the future development of streaming media.
The HTTP live video experience in Android 2. x is far inferior to that of iPad. I do not know whether or not to separate this part in 3.x has been improved. Currently, the android 3.x pad has not been used in multimedia, and many formats are supported. The only formats are not supported.
HTTP live streaming is separated from stagefright on the recent release, which is basically another light-weighted playback engine, cannot 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 logoff/handlers mechanic 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.
To overturn the wall:
Http://freepine.blogspot.com/2011/05/nuplayer-for-http-live-streaming.html