diff options
author | Luca Stefani <luca.stefani.ge1@gmail.com> | 2016-11-28 21:38:37 +0100 |
---|---|---|
committer | Luca Stefani <luca.stefani.ge1@gmail.com> | 2016-11-28 21:38:37 +0100 |
commit | cf29d4d1754c4f3391f06c871cbf318f0013af87 (patch) | |
tree | a777a65254b20e10887fd0bf35fbe93970819a96 | |
parent | 0d7723d402d0584227b29cf16534ac2b60dbf4bb (diff) | |
parent | af45104cf457b507741cd610e4bf8225c5d341bc (diff) | |
download | android_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
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 { |