Exemplo n.º 1
0
MBOOL
JpegCodec::
freeYuvMem(IImageBuffer **pBuf) 
{
    IImageBufferAllocator* allocator = IImageBufferAllocator::getInstance();
    allocator->free(*pBuf);
    *pBuf = NULL;
    return  MTRUE;
}
Exemplo n.º 2
0
MBOOL 
CapPass2::
freeMemory(sp<IImageBuffer>& targetBuf)
{
    MBOOL ret = MFALSE;
    if( targetBuf.get() != NULL ) {
        IImageBufferAllocator* allocator = IImageBufferAllocator::getInstance();
        if( !targetBuf->unlockBuf( LOG_TAG ) )
        {
            MY_LOGE("unlock Buffer failed\n");
            goto lbExit;
        }
        allocator->free(targetBuf.get());
        targetBuf = NULL;
    }

    ret = MTRUE;
lbExit:
    return ret;
}
Exemplo n.º 3
0
void
Test_ImageBufferAllocator()
{
    CAM_LOGD("++++++++++++++++ Test_ImageBufferAllocator ++++++++++++++++");
    //
    //
    size_t bufStridesInBytes[3] = {2000, 1920, 960};
    size_t bufBoundaryInBytes[3] = {0, 0, 0};
    IImageBufferAllocator::ImgParam imgParam(
        eImgFmt_YV12, MSize(1920, 1080), 
        bufStridesInBytes, bufBoundaryInBytes, 3
    );
    //
    MUINT32 size = 2048;
    IImageBufferAllocator::ImgParam imgParam_blob(size, 0);
    //
    MUINT32 buffer_size = 1280*720;
    IImageBufferAllocator::ImgParam imgParam_jpeg(
        MSize(1280, 720), buffer_size, 0
    );
    //
    //// raw pointer
    {
        //
        IImageBufferAllocator *allocator = IImageBufferAllocator::getInstance();
        //
        //// blob
        IImageBuffer* pImgBuf_blob = allocator->alloc("Test_Allocator_raw_blob", imgParam_blob);
        OBJ_CHECK(pImgBuf_blob);
        test_imgbuf_blob(pImgBuf_blob->getMagicName(), pImgBuf_blob, size);
        allocator->free(pImgBuf_blob);
        //
        //// yuv 3p
        IImageBuffer* pImgBuf = allocator->alloc("Test_Allocator_raw_yuv3p", imgParam);
        OBJ_CHECK(pImgBuf);
        test_imgbuf_yuv420_3p(pImgBuf->getMagicName(), pImgBuf, imgParam);
        allocator->free(pImgBuf);
        //
        //// jpeg 1p
        IImageBuffer* pImgBuf_jpeg = allocator->alloc("Test_Allocator_raw_jpeg1p", imgParam_jpeg);
        OBJ_CHECK(pImgBuf_jpeg);
        test_imgbuf_jpeg_1p(pImgBuf_jpeg->getMagicName(), pImgBuf_jpeg, imgParam_jpeg);
        //
        MY_CHECK(buffer_size==pImgBuf_jpeg->getBitstreamSize(), "%d", pImgBuf_jpeg->getBitstreamSize());
        MY_CHECK(!pImgBuf_jpeg->setBitstreamSize(7200000), "can not setBitstreamSize()");
        MY_CHECK(buffer_size==pImgBuf_jpeg->getBitstreamSize(), "%d", pImgBuf_jpeg->getBitstreamSize());
        MY_CHECK(pImgBuf_jpeg->setBitstreamSize(720000), "can setBitstreamSize()");
        MY_CHECK(720000==pImgBuf_jpeg->getBitstreamSize(), "%d", pImgBuf_jpeg->getBitstreamSize());
        allocator->free(pImgBuf_jpeg);
        //
    }
    //
    //// strong pointer
    {
        //
        IImageBufferAllocator *allocator = IImageBufferAllocator::getInstance();
        //
        //// blob
        sp<IImageBuffer> spImgBuf_blob = allocator->alloc("Test_Allocator_sp_blob", imgParam_blob);
        OBJ_CHECK(spImgBuf_blob);
        allocator->free(spImgBuf_blob.get());
        test_imgbuf_blob(spImgBuf_blob->getMagicName(), spImgBuf_blob.get(), size);
        //
        //// yuv 3p
        sp<IImageBuffer> spImgBuf = allocator->alloc("Test_Allocator_sp_yuv3p", imgParam);
        OBJ_CHECK(spImgBuf);
        allocator->free(spImgBuf.get());
        test_imgbuf_yuv420_3p(spImgBuf->getMagicName(), spImgBuf.get(), imgParam);
        //
    }

    //
    CAM_LOGD("---------------- Test_ImageBufferAllocator ----------------");
}