diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2017-02-07 09:53:25 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2017-02-07 09:53:26 +0000 |
commit | a92b822f3c9625b7fa88745c7e08f5d27c7fe1d5 (patch) | |
tree | aac1886d4c3facc75f12eb4ddfdb0001d6f64205 /msm8974/mm-video-v4l2 | |
parent | 50c477fc9badd47e161644749a0abf5721edf54f (diff) | |
parent | 82b39a890dbb9ffd6cf1c3af6a6743f7d24d37d9 (diff) | |
download | media-a92b822f3c9625b7fa88745c7e08f5d27c7fe1d5.tar.gz |
Merge "mm-video-v4l2: vidc: Handle native_handle meta mode"
Diffstat (limited to 'msm8974/mm-video-v4l2')
-rw-r--r-- | msm8974/mm-video-v4l2/vidc/venc/src/omx_video_base.cpp | 9 | ||||
-rw-r--r-- | msm8974/mm-video-v4l2/vidc/venc/src/video_encoder_device_v4l2.cpp | 3 |
2 files changed, 8 insertions, 4 deletions
diff --git a/msm8974/mm-video-v4l2/vidc/venc/src/omx_video_base.cpp b/msm8974/mm-video-v4l2/vidc/venc/src/omx_video_base.cpp index 90e2425..b202b6f 100644 --- a/msm8974/mm-video-v4l2/vidc/venc/src/omx_video_base.cpp +++ b/msm8974/mm-video-v4l2/vidc/venc/src/omx_video_base.cpp @@ -3454,10 +3454,12 @@ OMX_ERRORTYPE omx_video::empty_this_buffer_proxy(OMX_IN OMX_HANDLETYPE hComp, media_buffer = (encoder_media_buffer_type *)meta_buffer_hdr[nBufIndex].pBuffer; if (media_buffer) { if (media_buffer->buffer_type != kMetadataBufferTypeCameraSource && - media_buffer->buffer_type != kMetadataBufferTypeGrallocSource) { + media_buffer->buffer_type != kMetadataBufferTypeGrallocSource && + media_buffer->buffer_type != kMetadataBufferTypeNativeHandleSource) { met_error = true; } else { - if (media_buffer->buffer_type == kMetadataBufferTypeCameraSource) { + if ((media_buffer->buffer_type == kMetadataBufferTypeCameraSource) || + (media_buffer->buffer_type == kMetadataBufferTypeNativeHandleSource)) { if (media_buffer->meta_handle == NULL) met_error = true; else if ((media_buffer->meta_handle->numFds != 1 && @@ -4474,7 +4476,8 @@ void omx_video::omx_release_meta_buffer(OMX_BUFFERHEADERTYPE *buffer) } else { media_ptr = (encoder_media_buffer_type *) buffer->pBuffer; if (media_ptr && media_ptr->meta_handle) { - if (media_ptr->buffer_type == kMetadataBufferTypeCameraSource && + if ((media_ptr->buffer_type == kMetadataBufferTypeCameraSource || + media_ptr->buffer_type == kMetadataBufferTypeNativeHandleSource) && media_ptr->meta_handle->numFds == 1 && media_ptr->meta_handle->numInts >= 2) { Input_pmem.fd = media_ptr->meta_handle->data[0]; diff --git a/msm8974/mm-video-v4l2/vidc/venc/src/video_encoder_device_v4l2.cpp b/msm8974/mm-video-v4l2/vidc/venc/src/video_encoder_device_v4l2.cpp index cc8d6ae..6261195 100644 --- a/msm8974/mm-video-v4l2/vidc/venc/src/video_encoder_device_v4l2.cpp +++ b/msm8974/mm-video-v4l2/vidc/venc/src/video_encoder_device_v4l2.cpp @@ -2738,7 +2738,8 @@ bool venc_dev::venc_empty_buf(void *buffer, void *pmem_data_buf, unsigned index, } else if (!color_format) { int color_space = 0; - if (meta_buf->buffer_type == kMetadataBufferTypeCameraSource) { + if ((meta_buf->buffer_type == kMetadataBufferTypeCameraSource) || + (meta_buf->buffer_type == kMetadataBufferTypeNativeHandleSource)) { if (meta_buf->meta_handle->numFds + meta_buf->meta_handle->numInts > 3 && meta_buf->meta_handle->data[3] & private_handle_t::PRIV_FLAGS_ITU_R_709) { buf.flags = V4L2_MSM_BUF_FLAG_YUV_601_709_CLAMP; |