79 int outBufExchanged = 0;
91 pthread_mutex_lock(&omx_base_source_Private->
flush_mutex);
93 pthread_mutex_unlock(&omx_base_source_Private->
flush_mutex);
106 pthread_mutex_lock(&omx_base_source_Private->
flush_mutex);
108 pthread_mutex_unlock(&omx_base_source_Private->
flush_mutex);
125 if(pOutputQueue->
nelem>0){
128 pOutputBuffer =
dequeue(pOutputQueue);
129 if(pOutputBuffer == NULL){
138 pOutputBuffer->
nFlags = 0;
171 DEBUG(
DEB_LEV_ERR,
"In %s Received Buffer in non-Executing State(%x)\n", __func__, (
int)omx_base_source_Private->
state);
198 pOutputBuffer = NULL;
223 int i,outBufExchanged[2];
231 pOutputBuffer[1]= pOutputBuffer[0]=NULL;
232 isOutputBufferNeeded[0]=isOutputBufferNeeded[1]=
OMX_TRUE;
233 outBufExchanged[0]=outBufExchanged[1]=0;
240 pthread_mutex_lock(&omx_base_source_Private->
flush_mutex);
243 pthread_mutex_unlock(&omx_base_source_Private->
flush_mutex);
245 DEBUG(
DEB_LEV_FULL_SEQ,
"In %s 1 signalling flush all cond iE=%d,iF=%d,oE=%d,oF=%d iSemVal=%d,oSemval=%d\n",
246 __func__,outBufExchanged[0],isOutputBufferNeeded[0],outBufExchanged[1],isOutputBufferNeeded[1],pOutputSem[0]->semval,pOutputSem[1]->semval);
250 outBufExchanged[1]--;
251 pOutputBuffer[1]=NULL;
258 outBufExchanged[0]--;
259 pOutputBuffer[0]=NULL;
264 DEBUG(
DEB_LEV_FULL_SEQ,
"In %s 2 signalling flush all cond iE=%d,iF=%d,oE=%d,oF=%d iSemVal=%d,oSemval=%d\n",
265 __func__,outBufExchanged[0],isOutputBufferNeeded[0],outBufExchanged[1],isOutputBufferNeeded[1],pOutputSem[0]->semval,pOutputSem[1]->semval);
269 pthread_mutex_lock(&omx_base_source_Private->
flush_mutex);
271 pthread_mutex_unlock(&omx_base_source_Private->
flush_mutex);
274 if((isOutputBufferNeeded[0]==
OMX_TRUE && pOutputSem[0]->semval==0) &&
285 if((isOutputBufferNeeded[1]==
OMX_TRUE && pOutputSem[1]->semval==0) &&
299 if(pOutputSem[0]->semval>0 && isOutputBufferNeeded[0]==
OMX_TRUE ) {
301 if(pOutputQueue[0]->nelem>0){
302 outBufExchanged[0]++;
304 pOutputBuffer[0] =
dequeue(pOutputQueue[0]);
305 if(pOutputBuffer[0] == NULL){
312 if(pOutputSem[1]->semval>0 && isOutputBufferNeeded[1]==
OMX_TRUE) {
314 if(pOutputQueue[1]->nelem>0){
315 outBufExchanged[1]++;
317 pOutputBuffer[1] =
dequeue(pOutputQueue[1]);
318 if(pOutputBuffer[1] == NULL){
319 DEBUG(
DEB_LEV_ERR,
"Had NULL output buffer!! op is=%d,iq=%d\n",pOutputSem[1]->semval,pOutputQueue[1]->nelem);
350 }
else if(pOutputBuffer[i]->hMarkTargetComponent!=NULL){
363 DEBUG(
DEB_LEV_ERR,
"In %s Received Buffer in non-Executing State(%x)\n", __func__, (
int)omx_base_source_Private->
state);
367 DEBUG(
DEB_LEV_FULL_SEQ,
"Detected EOS flags in input buffer filled len=%d\n", (
int)pOutputBuffer[i]->nFilledLen);
384 outBufExchanged[i]--;
385 pOutputBuffer[i]=NULL;