LocalPlayback
0 setDataSource_l(const char *uri, const KeyedVector<String8, String8> *headers)
00 prepareAsync_l()
000 onPrepareAsyncEvent()
0000 finishSetDataSource_l()
00000 DataSource::CreateFromURI()
000000 new FileSource(uri)
00001 extractor = MediaExtractor::Create()
根据mime创建对应的Extractor
00002 setDataSource_l(extractor)
000020 setVideoSource()
000021 setAudioSource()
000022 addTextSource_l()
根据Extractor解析的track,设定Source
0001 initVideoDecoder()
00010 OMXCodec::Create()
000100 findMatchingCodecs()
找到对应的codec componentName
000101 InstantiateSoftwareEncoder()
000102 InstantiateSoftwareDecoder()
000103 omx->allocateNode()
000104 sp<OMXCodec> codec = new OMXCodec()
00011 mVideoSource->start()
0002 initAudioDecoder()
类似于video创建
0003 finishAsyncPrepare_l()
00030 notifyVideoSize_l()
00031 mPreparedCondition.broadcast()
1 AwesomePlayer::play_l()
10 mAudioPlayer = new AudioPlayer(mAudioSink, allowDeepBuffering, this);
11 mAudioPlayer->setSource(mAudioSource);
12 mTimeSource = mAudioPlayer;
13 postVideoEvent_l();
14 postVideoLagEvent_l();
15 seekTo_l(0);