本文整理汇总了C++中android::sp::getMinInitBufNum方法的典型用法代码示例。如果您正苦于以下问题:C++ sp::getMinInitBufNum方法的具体用法?C++ sp::getMinInitBufNum怎么用?C++ sp::getMinInitBufNum使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类android::sp
的用法示例。
在下文中一共展示了sp::getMinInitBufNum方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: if
sp<PipelineModelBase::HalImageStreamBufferPoolT>
PipelineModelBase::
addHalStreamBufferPoolLocked(
android::sp<IImageStreamInfo> pStreamInfo
)
{
if ( pStreamInfo == 0 ) {
MY_LOGE("NULL IImageStreamInfo");
return NULL;
}
//
String8 const name = String8::format("%s:%s", getName(), pStreamInfo->getStreamName());
//
IImageStreamInfo::BufPlanes_t const& bufPlanes = pStreamInfo->getBufPlanes();
size_t bufStridesInBytes[3] = {0};
size_t bufBoundaryInBytes[3]= {0};
for (size_t i = 0; i < bufPlanes.size(); i++) {
bufStridesInBytes[i] = bufPlanes[i].rowStrideInBytes;
}
IImageBufferAllocator::ImgParam const imgParam(
pStreamInfo->getImgFormat(),
pStreamInfo->getImgSize(),
bufStridesInBytes, bufBoundaryInBytes,
bufPlanes.size()
);
sp<HalImageStreamBufferPoolT>
pPool = new HalImageStreamBufferPoolT(
name.string(),
HalImageStreamBufferAllocatorT(pStreamInfo.get(), imgParam)
);
if ( pPool == 0 ) {
MY_LOGE("Fail to new a image pool:%s", name.string());
return NULL;
}
//
MERROR err = pPool->initPool(getName(), pStreamInfo->getMaxBufNum(), pStreamInfo->getMinInitBufNum());
if ( OK != err ) {
MY_LOGE("%s: initPool err:%d(%s)", name.string(), err, ::strerror(-err));
return NULL;
}
if ( OK != pPool->commitPool(getName()) ) {
MY_LOGE("%s: commitPool err:%d(%s)", name.string(), err, ::strerror(-err));
return NULL;
}
//
mHalImageStreamBufferPoolMap.add(pStreamInfo->getStreamId(), pPool);
return pPool;
}