Change output buffer dequeue I/O error handling in decode component.
Change-Id: If35efe23b781072fb540310952bfa57965529b68
Signed-off-by: Jinsung Yang <jsgood.yang@samsung.com>
Signed-off-by: SeungBeom Kim <sbcrux.kim@samsung.com>
}
while (1) {
- if ((pVideoBuffer = pOutbufOps->Dequeue(hMFCHandle)) == NULL) {
+ pVideoBuffer = pOutbufOps->Dequeue(hMFCHandle);
+ if (pVideoBuffer == (ExynosVideoBuffer *)VIDEO_ERROR_DQBUF_EIO) {
+ Exynos_OSAL_Log(EXYNOS_LOG_ERROR, "HW is not available");
+ ret = OMX_ErrorHardware;
+ goto EXIT;
+ }
+
+ if (pVideoBuffer == NULL) {
ret = OMX_ErrorNone;
goto EXIT;
}
}
while (1) {
- if ((pVideoBuffer = pOutbufOps->Dequeue(hMFCHandle)) == NULL) {
+ pVideoBuffer = pOutbufOps->Dequeue(hMFCHandle);
+ if (pVideoBuffer == (ExynosVideoBuffer *)VIDEO_ERROR_DQBUF_EIO) {
+ Exynos_OSAL_Log(EXYNOS_LOG_ERROR, "HW is not available");
+ ret = OMX_ErrorHardware;
+ goto EXIT;
+ }
+
+ if (pVideoBuffer == NULL) {
ret = OMX_ErrorNone;
goto EXIT;
}
}
while (1) {
- if ((pVideoBuffer = pOutbufOps->Dequeue(hMFCHandle)) == NULL) {
+ pVideoBuffer = pOutbufOps->Dequeue(hMFCHandle);
+ if (pVideoBuffer == (ExynosVideoBuffer *)VIDEO_ERROR_DQBUF_EIO) {
+ Exynos_OSAL_Log(EXYNOS_LOG_ERROR, "HW is not available");
+ ret = OMX_ErrorHardware;
+ goto EXIT;
+ }
+
+ if (pVideoBuffer == NULL) {
ret = OMX_ErrorNone;
goto EXIT;
}
}
while (1) {
- if ((pVideoBuffer = pOutbufOps->Dequeue(hMFCHandle)) == NULL) {
+ pVideoBuffer = pOutbufOps->Dequeue(hMFCHandle);
+ if (pVideoBuffer == (ExynosVideoBuffer *)VIDEO_ERROR_DQBUF_EIO) {
+ Exynos_OSAL_Log(EXYNOS_LOG_ERROR, "HW is not available");
+ ret = OMX_ErrorHardware;
+ goto EXIT;
+ }
+
+ if (pVideoBuffer == NULL) {
ret = OMX_ErrorNone;
goto EXIT;
}
}
while (1) {
- if ((pVideoBuffer = pOutbufOps->Dequeue(hMFCHandle)) == NULL) {
+ pVideoBuffer = pOutbufOps->Dequeue(hMFCHandle);
+ if (pVideoBuffer == (ExynosVideoBuffer *)VIDEO_ERROR_DQBUF_EIO) {
+ Exynos_OSAL_Log(EXYNOS_LOG_ERROR, "HW is not available");
+ ret = OMX_ErrorHardware;
+ goto EXIT;
+ }
+
+ if (pVideoBuffer == NULL) {
ret = OMX_ErrorNone;
goto EXIT;
}