libmix: add report of decoding error start mb and end mb position.
BZ: 156373
report the decoding error region to OMX IL.
Change-Id: Ibe453fadd5aa235a6c700086674004b108d788a1
Signed-off-by: Dan Liang <dan.liang@intel.com>
diff --git a/videodecoder/VideoDecoderBase.cpp b/videodecoder/VideoDecoderBase.cpp
index 82eaa4a..0f4c297 100644
--- a/videodecoder/VideoDecoderBase.cpp
+++ b/videodecoder/VideoDecoderBase.cpp
@@ -1351,6 +1351,8 @@
currentSurface->errBuf.errorNumber = 0;
currentSurface->errBuf.timeStamp = INVALID_PTS;
}
+ if (outErrBuf)
+ VTRACE("%s: error number is %d", __FUNCTION__, outErrBuf->errorNumber);
}
void VideoDecoderBase::fillDecodingErrors(VideoRenderBuffer *currentSurface) {
@@ -1371,8 +1373,17 @@
if (err_drv_output[i].status != -1) {
currentSurface->errBuf.errorNumber++;
currentSurface->errBuf.errorArray[i + offset].type = (VideoDecodeErrorType)err_drv_output[i].decode_error_type;
+ currentSurface->errBuf.errorArray[i + offset].error_data.mb_pos.start_mb = err_drv_output[i].start_mb;
+ currentSurface->errBuf.errorArray[i + offset].error_data.mb_pos.end_mb = err_drv_output[i].end_mb;
+ ITRACE("Error Index[%d]: type = %d, start_mb = %d, end_mb = %d",
+ currentSurface->errBuf.errorNumber - 1,
+ currentSurface->errBuf.errorArray[i + offset].type,
+ currentSurface->errBuf.errorArray[i + offset].error_data.mb_pos.start_mb,
+ currentSurface->errBuf.errorArray[i + offset].error_data.mb_pos.end_mb);
} else break;
}
+ ITRACE("%s: error number of current surface is %d, timestamp @%llu",
+ __FUNCTION__, currentSurface->errBuf.errorNumber, currentSurface->timeStamp);
}
}
diff --git a/videodecoder/VideoDecoderDefs.h b/videodecoder/VideoDecoderDefs.h
index 9e7b414..d39bb78 100644
--- a/videodecoder/VideoDecoderDefs.h
+++ b/videodecoder/VideoDecoderDefs.h
@@ -158,7 +158,7 @@
struct VideoErrorInfo {
VideoDecodeErrorType type;
union {
- typedef struct {uint32_t start_mb; uint32_t end_mb;} mb_pos;
+ struct {uint32_t start_mb; uint32_t end_mb;} mb_pos;
} error_data;
};