static void *MFC_Encoder_Init(int nMemoryType)
{
ExynosVideoEncContext *pCtx = NULL;
- pthread_mutex_t *pMutex = NULL;
int needCaps = (V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_VIDEO_OUTPUT | V4L2_CAP_STREAMING);
pCtx = (ExynosVideoEncContext *)malloc(sizeof(*pCtx));
pCtx->nMemoryType = nMemoryType;
- pMutex = (pthread_mutex_t *)malloc(sizeof(pthread_mutex_t));
- if (pMutex == NULL) {
+ pCtx->pInMutex = (pthread_mutex_t *)malloc(sizeof(pthread_mutex_t));
+ if (pCtx->pInMutex == NULL) {
ALOGE("%s: Failed to allocate mutex about input buffer", __func__);
goto EXIT_QUERYCAP_FAIL;
}
- if (pthread_mutex_init(pMutex, NULL) != 0) {
- free(pMutex);
+ if (pthread_mutex_init(pCtx->pInMutex, NULL) != 0) {
goto EXIT_QUERYCAP_FAIL;
}
- pCtx->pInMutex = (void*)pMutex;
- pMutex = (pthread_mutex_t *)malloc(sizeof(pthread_mutex_t));
- if (pMutex == NULL) {
+ pCtx->pOutMutex = (pthread_mutex_t *)malloc(sizeof(pthread_mutex_t));
+ if (pCtx->pOutMutex == NULL) {
ALOGE("%s: Failed to allocate mutex about output buffer", __func__);
goto EXIT_QUERYCAP_FAIL;
}
- if (pthread_mutex_init(pMutex, NULL) != 0) {
- free(pMutex);
+ if (pthread_mutex_init(pCtx->pOutMutex, NULL) != 0) {
goto EXIT_QUERYCAP_FAIL;
}
- pCtx->pOutMutex = (void*)pMutex;
return (void *)pCtx;
static int MFC_Encoder_Get_FrameTag(void *pHandle)
{
ExynosVideoEncContext *pCtx = (ExynosVideoEncContext *)pHandle;
- ExynosVideoErrorType ret = VIDEO_ERROR_NONE;
int frameTag = -1;
#ifdef V4L2_CID_MPEG_MFC51_VIDEO_FRAME_TAG
if (exynos_v4l2_g_ctrl(pCtx->hEnc, V4L2_CID_MPEG_MFC51_VIDEO_FRAME_TAG, &frameTag) != 0) {
ALOGE("%s: Failed to g_ctrl", __func__);
- ret = VIDEO_ERROR_APIFAIL;
goto EXIT;
}
#endif
return ret;
}
+#if 0
/*
* [Encoder Buffer OPS] Wait (Src)
*/
EXIT:
return ret;
}
+#endif
static ExynosVideoErrorType MFC_Encoder_Register_Inbuf(
void *pHandle,
return ret;
}
+#if 0
/*
* [Encoder Buffer OPS] Enqueue All (Output)
*/
EXIT:
return ret;
}
+#endif
/*
* [Encoder Buffer OPS] Dequeue (Input)
struct v4l2_buffer buf;
struct v4l2_plane planes[VIDEO_ENCODER_OUTBUF_PLANES];
- int value;
if (pCtx == NULL) {
ALOGE("%s: Video context info must be supplied", __func__);