Media相关

相关文件及作用

android14\frameworks\base\media\jni\android_media_MediaPlayer.cpp
作用:jni文件
关键方法:android_media_MediaPlayer_native_init:初始化;android_media_MediaPlayer_native_setup:初始化C代码MediaPlayer

android14\frameworks\av\media\libmedia\mediaplayer.cpp
作用:jni和mediaplayerservice的中间件

android14\frameworks\av\media\libmediaplayerservice\MediaPlayerService.cpp
作用:service端,内部有一个Client类,app端每个MediaPlayer会有一个,并且会关联一个audioSessionId和IMediaPlayerClient。app直接和MediaPlayerService::Client调用
关键方法:
MediaPlayerService::create创建MediaPlayerService::Client并且返回给app

android14\frameworks\av\media\libmediaplayerservice\MediaPlayerFactory.cpp
作用:创建Player
关键方法:
MediaPlayerFactory::registerBuiltinFactories创建NuPlayerFactory,在MediaPlayerService::MediaPlayerServic中被调用。

android14\frameworks\av\media\libmediaplayerservice\nuplayer\NuPlayer.cpp
作用:一个MediaPlayerService::Client创建一个NuPlayer。
关键方法:
NuPlayer::Source media数据的来源,包括HTTPLiveSource、RTSPSource、GenericSource
NuPlayer::instantiateDecoder,初始化解码器

android14\frameworks\av\media\libmediaplayerservice\nuplayer\NuPlayerDecoder.cpp
父类:android14\frameworks\av\media\libmediaplayerservice\nuplayer\NuPlayerDecoderBase.cpp
作用:解码器
关键方法:
NuPlayer::Decoder::onConfigure,被NuPlayer::instantiateDecoder调用,

android14\frameworks\av\media\libstagefright\MediaCodec.cpp
作用:查找解码器
关键方法:
MediaCodec::CreateByType,查找解码器,被NuPlayer::Decoder::onConfigure调用

android14\frameworks\av\media\libstagefright\MediaCodecList.cpp
作用:解码器列表
关键方法:
MediaCodecListBuilderBase *GetCodec2InfoBuilder()
std::vector<MediaCodecListBuilderBase *> GetBuilders
MediaCodecList::getLocalInstance
MediaCodecList::getInstance
MediaCodecList::findMatchingCodecs

android14\frameworks\av\media\codec2\sfplugin\Codec2InfoBuilder.cpp
作用:Codec2info初始化
关键方法:
Codec2InfoBuilder::buildMediaCodecList,根据media_codecs.xml查找编解码器service

You May Also Like

About the Author: ice.zhai

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注