In case of DRM play, Registered input buffer address is incorrect.
Error log
01-01 13:38:30.755: E/ExynosVideoDecoder(99): MFC_Decoder_Enqueue_Inbuf: Failed to get index
01-01 13:38:30.755: E/EXYNOS_H264_DEC(99): Failed to enqueue input buffer for header parsing
Change-Id: Ic62914d4bb4f0a1275cdfbb6c65e9c99af87f29b
Signed-off-by: SeungBeom Kim <sbcrux.kim@samsung.com>
/* Register input buffer */
for (i = 0; i < pExynosInputPort->portDefinition.nBufferCountActual; i++) {
ExynosVideoPlane plane;
- plane.addr = pExynosInputPort->extendBufferHeader[i].OMXBufferHeader->pBuffer;
+ if (pVideoDec->bDRMPlayerMode == OMX_FALSE) {
+ plane.addr = pExynosInputPort->extendBufferHeader[i].OMXBufferHeader->pBuffer;
+ } else {
+ plane.addr = Exynos_OSAL_SharedMemory_IONToVirt(pVideoDec->hSharedMemory,
+ pExynosInputPort->extendBufferHeader[i].OMXBufferHeader->pBuffer);
+ }
plane.allocSize = pExynosInputPort->extendBufferHeader[i].OMXBufferHeader->nAllocLen;
plane.fd = pExynosInputPort->extendBufferHeader[i].buf_fd[0];
if (pInbufOps->Register(hMFCHandle, &plane, MFC_INPUT_BUFFER_PLANE) != VIDEO_ERROR_NONE) {