美羊羊的配音演员视频:stagefright简单流程
来源:百度文库 编辑:中财网 时间:2024/05/05 01:25:24
以mp4decoder为例,大概流程如下:
1 AwesomePlayer::initVideoDecoder()
mVideoSource = OMXCodec::Create(...)
2 OMXCodec::Create()
实际会执行下面代码
#if BUILD_WITH_FULL_STAGEFRIGHT
spsoftwareCodec =
InstantiateSoftwareCodec(componentName, source);
#endif
FACTORY_CREATE(MP3Decoder)
FACTORY_CREATE(AMRNBDecoder)
FACTORY_CREATE(AMRWBDecoder)
FACTORY_CREATE(AACDecoder)
FACTORY_CREATE(AVCDecoder)
FACTORY_CREATE(M4vH263Decoder)
FACTORY_CREATE(VorbisDecoder)
FACTORY_CREATE(AMRNBEncoder)
上述decoder里找不到时,会执行如下部分,下面代码才是调到opencore的omx部分
status_t err = omx->allocateNode(componentName, observer, &node);
if (err == OK) {
LOGV("Successfully allocated OMX node '%s'", componentName);
spcodec = new OMXCodec(
omx, node, getComponentQuirks(componentName),
createEncoder, mime, componentName,
source);
observer->setCodec(codec);
err = codec->configureCodec(meta);
if (err == OK) {
return codec;
}
LOGV("Failed to configure codec '%s'", componentName);
}
3 关于read函数
实际read时,先读取数据再调用解码,这一点是与opencore处理机制不同的,如果系统采用软解码,要考虑read加decode作为一个原子执行是否会影响效率,如果decode部分有硬解码则到无妨。
status_t M4vH263Decoder::read(MediaBuffer **out, const ReadOptions *options) {
...
status_t err = mSource->read(&inputBuffer, options);
...
if (PVDecodeVideoFrame(
mHandle, &bitstream, ×tamp, &bufferSize,
&useExtTimestamp,
(uint8_t *)mFrames[mNumSamplesOutput & 0x01]->data())
!= PV_TRUE) {
LOGE("failed to decode video frame.");
inputBuffer->release();
inputBuffer = NULL;
return UNKNOWN_ERROR;
}
...
}
电子商务流程的简单描述
怎样制作网页的简单流程
简单ASP网站制作流程?[+分]
可不可以简单介绍一下考研的流程?
请简单叙述一下煤炭生产销售的流程。
简单问题 游戏流程(俗称攻略) 用英语怎么讲?
请问布线时的简单流程?还有光端机如何设置?
进料加工手册核销的简单流程是什么?
申请去日本留学的流程是怎样的,如果有担保人是不是简单一点
请问什么是合作医疗?如何简单易懂地解释医保?流程又是什么呢?
如何将苯酚和水完全的分离?请简述简单的流程、原因。 谢谢
哪位高手能简单的说说:电影从剧本到上映的流程
船公司的工作流程有没有人能简单介绍一下?
叙述(MCSE)操作系统安装的方法与简单流程(包括使用Ghost还原系统,制作无人值守安装)
有谁能图文说出吃饭,喝水至排泄的流程,要细,别看问题简单知道的不一定多。谢谢
鬼泣3 PC特别版的第4.5关怎么过(详细点,不要复制那个简单流程)
鬼泣3 PC特别版的第4.5关怎么过(详细点,不要复制那个简单流程)
简单!!!!!!
..........简单
简单~~~~
简单````
简单!!!!!!!!!!!!!!!!!!!!!!!!!!!
简单~~~~
简单!!