summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuca Stefani <luca.stefani.ge1@gmail.com>2016-11-28 21:38:37 +0100
committerLuca Stefani <luca.stefani.ge1@gmail.com>2016-11-28 21:38:37 +0100
commitcf29d4d1754c4f3391f06c871cbf318f0013af87 (patch)
treea777a65254b20e10887fd0bf35fbe93970819a96
parent0d7723d402d0584227b29cf16534ac2b60dbf4bb (diff)
parentaf45104cf457b507741cd610e4bf8225c5d341bc (diff)
downloadandroid_hardware_qcom_media-cf29d4d1754c4f3391f06c871cbf318f0013af87.tar.gz
android_hardware_qcom_media-cf29d4d1754c4f3391f06c871cbf318f0013af87.tar.bz2
android_hardware_qcom_media-cf29d4d1754c4f3391f06c871cbf318f0013af87.zip
Merge remote-tracking branch 'caf/LA.BR.1.2.9_rb1.9' into HEAD
-rw-r--r--mm-video-v4l2/vidc/vdec/src/omx_vdec_hevc_swvdec.cpp3
-rw-r--r--mm-video-v4l2/vidc/vdec/src/omx_vdec_msm8974.cpp4
-rw-r--r--mm-video-v4l2/vidc/venc/src/omx_video_base.cpp10
-rw-r--r--mm-video-v4l2/vidc/venc/src/video_encoder_device_v4l2.cpp7
4 files changed, 20 insertions, 4 deletions
diff --git a/mm-video-v4l2/vidc/vdec/src/omx_vdec_hevc_swvdec.cpp b/mm-video-v4l2/vidc/vdec/src/omx_vdec_hevc_swvdec.cpp
index 52f93b26..0aed632a 100644
--- a/mm-video-v4l2/vidc/vdec/src/omx_vdec_hevc_swvdec.cpp
+++ b/mm-video-v4l2/vidc/vdec/src/omx_vdec_hevc_swvdec.cpp
@@ -2994,7 +2994,8 @@ bool omx_vdec::post_event(unsigned long p1,
pthread_mutex_lock(&m_lock);
if (id == OMX_COMPONENT_GENERATE_FTB ||
- id == OMX_COMPONENT_GENERATE_FBD)
+ id == OMX_COMPONENT_GENERATE_FBD ||
+ id == OMX_COMPONENT_GENERATE_PORT_RECONFIG)
{
m_ftb_q.insert_entry(p1,p2,id);
}
diff --git a/mm-video-v4l2/vidc/vdec/src/omx_vdec_msm8974.cpp b/mm-video-v4l2/vidc/vdec/src/omx_vdec_msm8974.cpp
index f5b30dd3..1ac0df45 100644
--- a/mm-video-v4l2/vidc/vdec/src/omx_vdec_msm8974.cpp
+++ b/mm-video-v4l2/vidc/vdec/src/omx_vdec_msm8974.cpp
@@ -5548,6 +5548,10 @@ OMX_ERRORTYPE omx_vdec::allocate_input_buffer(
DEBUG_PRINT_LOW("Buffer address %p of pmem",*bufferHdr);
if (allocate_native_handle) {
native_handle_t *nh = native_handle_create(1 /*numFds*/, 0 /*numInts*/);
+ if (nh == NULL) {
+ DEBUG_PRINT_ERROR("ERROR:Native handle create fails");
+ return OMX_ErrorInsufficientResources;
+ }
nh->data[0] = drv_ctx.ptr_inputbuffer[i].pmem_fd;
input->pBuffer = (OMX_U8 *)nh;
} else if (secure_mode) {
diff --git a/mm-video-v4l2/vidc/venc/src/omx_video_base.cpp b/mm-video-v4l2/vidc/venc/src/omx_video_base.cpp
index fe1d836a..949156c0 100644
--- a/mm-video-v4l2/vidc/venc/src/omx_video_base.cpp
+++ b/mm-video-v4l2/vidc/venc/src/omx_video_base.cpp
@@ -3485,6 +3485,10 @@ OMX_ERRORTYPE omx_video::empty_this_buffer_proxy(OMX_IN OMX_HANDLETYPE hComp,
return OMX_ErrorBadParameter;
}
media_buffer = (LEGACY_CAM_METADATA_TYPE *)meta_buffer_hdr[nBufIndex].pBuffer;
+ if (media_buffer == NULL) {
+ DEBUG_PRINT_ERROR("ERROR: ETBProxy: meta buffer is NULL buffer[%p]", media_buffer);
+ return OMX_ErrorBadParameter;
+ }
if ((media_buffer->buffer_type == LEGACY_CAM_SOURCE)
&& buffer->nAllocLen != sizeof(LEGACY_CAM_METADATA_TYPE)) {
DEBUG_PRINT_ERROR("Invalid metadata size expected(%u) v/s recieved(%zu)",
@@ -4691,6 +4695,10 @@ OMX_ERRORTYPE omx_video::empty_this_buffer_opaque(OMX_IN OMX_HANDLETYPE hComp,
}
media_buffer = (VideoGrallocMetadata *)buffer->pBuffer;
+ if (media_buffer == NULL) {
+ DEBUG_PRINT_ERROR("ERROR: empty_this_buffer_opaque: gralloc buffer is NULL buffer[%p]", media_buffer);
+ return OMX_ErrorBadParameter;
+ }
if ((media_buffer->eType == LEGACY_CAM_SOURCE)
&& buffer->nAllocLen != sizeof(LEGACY_CAM_METADATA_TYPE)) {
DEBUG_PRINT_ERROR("Invalid metadata size expected(%u) v/s recieved(%zu)",
@@ -4719,7 +4727,7 @@ OMX_ERRORTYPE omx_video::empty_this_buffer_opaque(OMX_IN OMX_HANDLETYPE hComp,
/*Enable following code once private handle color format is
updated correctly*/
- if (buffer->nFilledLen > 0) {
+ if (buffer->nFilledLen > 0 && handle) {
if (c2d_opened && handle->format != c2d_conv.get_src_format()) {
c2d_conv.close();
c2d_opened = false;
diff --git a/mm-video-v4l2/vidc/venc/src/video_encoder_device_v4l2.cpp b/mm-video-v4l2/vidc/venc/src/video_encoder_device_v4l2.cpp
index 5024dc40..c5e82797 100644
--- a/mm-video-v4l2/vidc/venc/src/video_encoder_device_v4l2.cpp
+++ b/mm-video-v4l2/vidc/venc/src/video_encoder_device_v4l2.cpp
@@ -2825,6 +2825,10 @@ bool venc_dev::venc_empty_buf(void *buffer, void *pmem_data_buf, unsigned index,
} else if (meta_buf->buffer_type == kMetadataBufferTypeGrallocSource) {
VideoGrallocMetadata *meta_buf = (VideoGrallocMetadata *)bufhdr->pBuffer;
private_handle_t *handle = (private_handle_t *)meta_buf->pHandle;
+ if (handle == NULL) {
+ DEBUG_PRINT_ERROR("ERROR: venc_etb: Gralloc metadata buffer is NULL");
+ return false;
+ }
if (!streaming[OUTPUT_PORT] && handle) {
int color_space = 0;
// Moment of truth... actual colorspace is known here..
@@ -2920,12 +2924,11 @@ bool venc_dev::venc_empty_buf(void *buffer, void *pmem_data_buf, unsigned index,
return false;
}*/
}
-
fd = handle->fd;
plane.data_offset = 0;
plane.length = handle->size;
plane.bytesused = handle->size;
- DEBUG_PRINT_LOW("venc_empty_buf: Opaque camera buf: fd = %d "
+ DEBUG_PRINT_LOW("venc_empty_buf: Opaque camera buf: fd = %d "
": filled %d of %d", fd, plane.bytesused, plane.length);
}
} else {