summaryrefslogtreecommitdiff
path: root/mm-video-v4l2
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@quicinc.com>2017-09-01 09:05:49 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2017-09-01 09:05:49 -0700
commit1f00470891cd92f09597fbd48ab5d68a4ff083f0 (patch)
treeed8522a357e883e6a1ee9217d5eed7887b950969 /mm-video-v4l2
parentd21ef885c60c3daebb273989d149720141011a99 (diff)
parent1ae4f114ea19dc05efc3a24f2ff3c69a47e66404 (diff)
downloadmedia-1f00470891cd92f09597fbd48ab5d68a4ff083f0.tar.gz
Merge "mm-video-v4l2: Clear source frame after returning client buffer"
Diffstat (limited to 'mm-video-v4l2')
-rw-r--r--mm-video-v4l2/vidc/venc/inc/omx_video_base.h3
-rw-r--r--mm-video-v4l2/vidc/venc/src/omx_video_base.cpp14
2 files changed, 8 insertions, 9 deletions
diff --git a/mm-video-v4l2/vidc/venc/inc/omx_video_base.h b/mm-video-v4l2/vidc/venc/inc/omx_video_base.h
index 87e9039b..9c45c8a3 100644
--- a/mm-video-v4l2/vidc/venc/inc/omx_video_base.h
+++ b/mm-video-v4l2/vidc/venc/inc/omx_video_base.h
@@ -575,8 +575,7 @@ class omx_video: public qc_omx_component
OMX_ERRORTYPE convert_queue_buffer(OMX_HANDLETYPE hComp,
struct pmem &Input_pmem_info,unsigned long &index);
OMX_ERRORTYPE queue_meta_buffer(OMX_HANDLETYPE hComp);
- OMX_ERRORTYPE push_empty_eos_buffer(OMX_HANDLETYPE hComp,
- OMX_BUFFERHEADERTYPE *buffer);
+ OMX_ERRORTYPE push_empty_eos_buffer(OMX_HANDLETYPE hComp);
OMX_ERRORTYPE fill_this_buffer_proxy(OMX_HANDLETYPE hComp,
OMX_BUFFERHEADERTYPE *buffer);
bool release_done();
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 8ace15b8..c54fbb38 100644
--- a/mm-video-v4l2/vidc/venc/src/omx_video_base.cpp
+++ b/mm-video-v4l2/vidc/venc/src/omx_video_base.cpp
@@ -5177,7 +5177,7 @@ OMX_ERRORTYPE omx_video::push_input_buffer(OMX_HANDLETYPE hComp)
// separately by queueing an intermediate color-conversion buffer
// and propagate the EOS.
if (psource_frame->nFilledLen == 0 && (psource_frame->nFlags & OMX_BUFFERFLAG_EOS)) {
- return push_empty_eos_buffer(hComp, psource_frame);
+ return push_empty_eos_buffer(hComp);
}
media_buffer = (LEGACY_CAM_METADATA_TYPE *)psource_frame->pBuffer;
/*Will enable to verify camcorder in current TIPS can be removed*/
@@ -5214,8 +5214,7 @@ OMX_ERRORTYPE omx_video::push_input_buffer(OMX_HANDLETYPE hComp)
return ret;
}
-OMX_ERRORTYPE omx_video::push_empty_eos_buffer(OMX_HANDLETYPE hComp,
- OMX_BUFFERHEADERTYPE* buffer) {
+OMX_ERRORTYPE omx_video::push_empty_eos_buffer(OMX_HANDLETYPE hComp) {
OMX_BUFFERHEADERTYPE* opqBuf = NULL;
OMX_ERRORTYPE retVal = OMX_ErrorNone;
unsigned index = 0;
@@ -5235,7 +5234,7 @@ OMX_ERRORTYPE omx_video::push_empty_eos_buffer(OMX_HANDLETYPE hComp,
}
index = opqBuf - m_inp_mem_ptr;
} else {
- opqBuf = (OMX_BUFFERHEADERTYPE* ) buffer;
+ opqBuf = (OMX_BUFFERHEADERTYPE* ) psource_frame;
index = opqBuf - meta_buffer_hdr;
}
@@ -5264,8 +5263,8 @@ OMX_ERRORTYPE omx_video::push_empty_eos_buffer(OMX_HANDLETYPE hComp,
OMX_BUFFERHEADERTYPE emptyEosBufHdr;
memcpy(&emptyEosBufHdr, opqBuf, sizeof(OMX_BUFFERHEADERTYPE));
emptyEosBufHdr.nFilledLen = 0;
- emptyEosBufHdr.nTimeStamp = buffer->nTimeStamp;
- emptyEosBufHdr.nFlags = buffer->nFlags;
+ emptyEosBufHdr.nTimeStamp = psource_frame->nTimeStamp;
+ emptyEosBufHdr.nFlags = psource_frame->nFlags;
emptyEosBufHdr.pBuffer = NULL;
if (!mUsesColorConversion)
emptyEosBufHdr.nAllocLen =
@@ -5282,7 +5281,8 @@ OMX_ERRORTYPE omx_video::push_empty_eos_buffer(OMX_HANDLETYPE hComp,
//return client's buffer regardless since intermediate color-conversion
//buffer is sent to the the encoder
- m_pCallbacks.EmptyBufferDone(hComp, m_app_data, buffer);
+ m_pCallbacks.EmptyBufferDone(hComp, m_app_data, psource_frame);
+ psource_frame = NULL;
--pending_input_buffers;
VIDC_TRACE_INT_LOW("ETB-pending", pending_input_buffers);
return retVal;