Name: nx-video-api
-Version: 1.0.4
+Version: 1.0.5
Release: 0
License: LGPLv2+
Summary: Nexell video APIs
// 3 Plane : I420
//
NX_VID_MEMORY_INFO *
-NX_AllocateVideoMemory (int width, int height, int32_t planes, uint32_t format,
+NX_AllocateVideoMemory (void *bufmgr, int width, int height, int32_t planes, uint32_t format,
int align)
{
int gemFd[NX_MAX_PLANES] = { 0, };
if (!pVidMem)
goto ErrorExit;
-#ifdef TIZEN_FEATURE_ARTIK530
- pVidMem->bufmgr = tbm_bufmgr_init (drmFd);
- _D ("bufmgr = %p", pVidMem->bufmgr);
- if (!pVidMem->bufmgr)
- goto ErrorExit;
-#endif
-
pVidMem->width = width;
pVidMem->height = height;
pVidMem->align = align;
pVidMem->size[i] = size[i];
pVidMem->stride[i] = stride[i];
#ifdef TIZEN_FEATURE_ARTIK530
- pVidMem->bo[i] = tbm_bo_import_fd (pVidMem->bufmgr, dmaFd[i]);
+ pVidMem->bo[i] = tbm_bo_import_fd (bufmgr, dmaFd[i]);
_D ("bo[%d] = %p", i, pVidMem->bo[i]);
if (!pVidMem->bo[i])
goto alloc_bo_fail;
}
}
if (pVidMem) {
-#ifdef TIZEN_FEATURE_ARTIK530
- if (pVidMem->bufmgr)
- tbm_bufmgr_deinit (pVidMem->bufmgr);
-#endif
free(pVidMem);
}
if (drmFd > 0)
free_gem (pMem->drmFd, pMem->gemFd[i]);
close (pMem->dmaFd[i]);
}
-#ifdef TIZEN_FEATURE_ARTIK530
- if (pMem->bufmgr)
- tbm_bufmgr_deinit (pMem->bufmgr);
-#endif
close (pMem->drmFd);
free (pMem);
}
void *pBuffer[NX_MAX_PLANES]; // virtual address.
uint32_t reserved[NX_MAX_PLANES]; // for debugging or future user.
#ifdef TIZEN_FEATURE_ARTIK530
- void *bufmgr;
void *bo[NX_MAX_PLANES]; // tbm bo
#endif
} NX_VID_MEMORY_INFO, *NX_VID_MEMORY_HANDLE;
void NX_FreeMemory (NX_MEMORY_INFO * pMem);
// Video Specific Allocator Wrapper
- NX_VID_MEMORY_INFO *NX_AllocateVideoMemory (int width, int height,
+ NX_VID_MEMORY_INFO *NX_AllocateVideoMemory (void *bufmgr, int width, int height,
int32_t planes, uint32_t format, int align);
void NX_FreeVideoMemory (NX_VID_MEMORY_INFO * pMem);
/* For VC1 */
int32_t iInterlace;
+
+#ifdef TIZEN_FEATURE_ARTIK530
+ /* buffer manager */
+ void *bufmgr;
+#endif
};
}
}
}
+#ifdef TIZEN_FEATURE_ARTIK530
+ if (hDec->bufmgr)
+ tbm_bufmgr_deinit (hDec->bufmgr);
+#endif
free (hDec);
buf.length = pSeqIn->imgPlaneNum;
buf.memory = V4L2_MEMORY_DMABUF;
+#ifdef TIZEN_FEATURE_ARTIK530
+ hDec->bufmgr = tbm_bufmgr_init (-1);
+ _D ("bufmgr = %p", hDec->bufmgr);
+ if (!hDec->bufmgr) {
+ _E ("failed to initialize tbm_init");
+ return -1;
+ }
+#endif
/* Allocate Buffer(Internal or External) */
for (i = 0; i < imgBuffCnt; i++) {
if (true == hDec->useExternalFrameBuffer) {
hDec->hImage[i] = pSeqIn->pMemHandle[i];
} else {
hDec->hImage[i] =
- NX_AllocateVideoMemory (pSeqIn->width, pSeqIn->height,
+ NX_AllocateVideoMemory (hDec->bufmgr, pSeqIn->width, pSeqIn->height,
pSeqIn->imgPlaneNum, pSeqIn->imgFormat, 4096);
if (hDec->hImage[i] == NULL) {
_E ("Failed to allocate image buffer(%d, %d, %d)\n", i,