在存储的过程成发现一个问题,存储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));
原作者:jingjin221
|