OMXCodec创建完边解码组件之后, 需要对每一个port口进行buffer的分配.主要流程如下
需要对OMXCodec中buffer的管理说一下:
struct BufferInfo {
IOMX::buffer_id mBuffer; //BufferInfo的唯一标示
BufferStatus mStatus; //OWNED_BY_US OWNED_BY_COMPONENT
sp<IMemory> mMem; //当数据需要备份时,将mData的数据备份到这里
size_t mSize; //每一块buffer的size
void *mData; //指向component操作的buffer上
MediaBuffer *mMediaBuffer; //播放器最后操作的buffer,包含mData的引用
};
Vector<BufferInfo> mPortBuffers[2]; //管理input/output port的buffer。