summaryrefslogtreecommitdiff
path: root/msm8974/mm-video-v4l2
diff options
context:
space:
mode:
authorTreeHugger Robot <treehugger-gerrit@google.com>2017-02-07 09:53:25 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2017-02-07 09:53:26 +0000
commita92b822f3c9625b7fa88745c7e08f5d27c7fe1d5 (patch)
treeaac1886d4c3facc75f12eb4ddfdb0001d6f64205 /msm8974/mm-video-v4l2
parent50c477fc9badd47e161644749a0abf5721edf54f (diff)
parent82b39a890dbb9ffd6cf1c3af6a6743f7d24d37d9 (diff)
downloadmedia-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.cpp9
-rw-r--r--msm8974/mm-video-v4l2/vidc/venc/src/video_encoder_device_v4l2.cpp3
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;