diff options
author | Linux Build Service Account <lnxbuild@quicinc.com> | 2017-09-01 09:05:49 -0700 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2017-09-01 09:05:49 -0700 |
commit | 1f00470891cd92f09597fbd48ab5d68a4ff083f0 (patch) | |
tree | ed8522a357e883e6a1ee9217d5eed7887b950969 /mm-video-v4l2 | |
parent | d21ef885c60c3daebb273989d149720141011a99 (diff) | |
parent | 1ae4f114ea19dc05efc3a24f2ff3c69a47e66404 (diff) | |
download | media-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.h | 3 | ||||
-rw-r--r-- | mm-video-v4l2/vidc/venc/src/omx_video_base.cpp | 14 |
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; |