nuplayer
2015-10-01 17:53:19 0 举报
双计时器
作者其他创作
大纲/内容
init() / configure()
MediaPlayerFactory
onRenderBuffer | mCodec-renderOutputBufferAndRelease
initFromDataSource
notify Videosize/flag Changed
GenericSource
start()
setDataSource
MediaPlayerService::Client
NuPlayerDecoder
mVideoDecoder-setRenderer(new Decoder
openAudioSink | queueBuffer | onDrainVideoQueue
initCheck()
NuPlayerRenderer
setVideoSurfaceTextureAsync(bufferProducer);
new Surface(bufferProducer);native_window_api_connect(surface);setVideoSurfaceTexture()
NuPlayer
setSubtitleSurfaceTexture
setAudioSink() (mAudioOutput = new MediaPlayerService::AudioOutput)
create()
FFmpegExtractor
notifySetDataSourceCompleted
mVideoTrack.mSource.getFormat()
setVideoSurfaceTexture
onNotify: | handleAnInputBuffer | mCodec-dequeueInputBuffer handleAnOutputBuffer | mCodec-dequeueOutputBuffer | requestNotify
NuPlayerDriver
prepareAsync()
track-mSource-readmediaBufferToABuffer
createPlayer()
prepareAsync
getMetadata
setAudioSink()
FFmpegSource
setUID (caller's thread id)
select track
startLoopermDataSource = new xxx
getDrmFlag / checkDrmStatusgetMetaData / duration / track number etcget autio track / video track
setSubtitleSurfaceTextureAsync
setDataSourceAsync()
MediaExtractor
mVideoTrack.mSource-start()mAudioTrack.mSource-start()
0 条评论
下一页