|
关于增大MEDIACODEC的解码输入缓冲区的调试意见
发表于 2016-6-29 20:16:10
浏览:12558
|
回复:3
打印
只看该作者
[复制链接]
楼主
本帖最后由 jingjin221 于 2016-8-4 11:51 编辑
在存储的过程成发现一个问题,存储FLASH的时候正常,在存储SD卡,发现和SPI冲突,应该是DMA的原因吧?在存储USB设备时候,感觉文件写入的时候会干扰到的我的视频解码,有时候回出现视频播放卡顿的现象!这是什么原因呢?我的U盘写入速度已经很高了,大概有20M/S,是2.0的USB!
最近在播放视频的同时加入了视频录制功能,发现在解码隔行视频的时候,我的缓冲区始终会爆掉!经查找原因应该是MEDIACODEC的硬解码缓冲区获取不到我又舍不得丢帧,所以导致我的解复用缓冲区爆掉!默认给我分配的解码输入缓冲区为4个WIDTH*HEIGHT*3/2,输入缓冲区为6个WIDTH*HEIGHT*3/2,输出缓冲区已经够了,主要是输入缓冲区不够,需要加大!一下为增大输入缓冲区的办法
- /**/ACodec.cpp
- OMX_PARAM_PORTDEFINITIONTYPE def;
- InitOMXParams(&def);
- def.nPortIndex = portIndex;
- status_t err = mOMX->getParameter(mNode, OMX_IndexParamPortDefinition, &def, sizeof(def)); if(portIndex == kPortIndexInput) {
- ALOGE("JJ::setVideoFormatOnPort add the PortIndexInput Buffer");
- def.nBufferCountMin = 8;
- def.nBufferCountActual = 8;
- }
- err = mOMX->setParameter(
- mNode, OMX_IndexParamPortDefinition, &def, sizeof(def));
复制代码
|
|