79 int outBufExchanged = 0;
89 pthread_mutex_lock(&omx_base_source_Private->
flush_mutex);
91 pthread_mutex_unlock(&omx_base_source_Private->
flush_mutex);
104 pthread_mutex_lock(&omx_base_source_Private->
flush_mutex);
106 pthread_mutex_unlock(&omx_base_source_Private->
flush_mutex);
123 if(pOutputQueue->
nelem>0){
126 pOutputBuffer =
dequeue(pOutputQueue);
127 if(pOutputBuffer == NULL){
136 pOutputBuffer->
nFlags = 0;
169 DEBUG(
DEB_LEV_ERR,
"In %s Received Buffer in non-Executing State(%x)\n", __func__, (
int)omx_base_source_Private->
state);
196 pOutputBuffer = NULL;
221 int i,outBufExchanged[2];
229 pOutputBuffer[1]= pOutputBuffer[0]=NULL;
230 isOutputBufferNeeded[0]=isOutputBufferNeeded[1]=
OMX_TRUE;
231 outBufExchanged[0]=outBufExchanged[1]=0;
238 pthread_mutex_lock(&omx_base_source_Private->
flush_mutex);
241 pthread_mutex_unlock(&omx_base_source_Private->
flush_mutex);
243 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",
244 __func__,outBufExchanged[0],isOutputBufferNeeded[0],outBufExchanged[1],isOutputBufferNeeded[1],pOutputSem[0]->semval,pOutputSem[1]->semval);
248 outBufExchanged[1]--;
249 pOutputBuffer[1]=NULL;
256 outBufExchanged[0]--;
257 pOutputBuffer[0]=NULL;
262 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",
263 __func__,outBufExchanged[0],isOutputBufferNeeded[0],outBufExchanged[1],isOutputBufferNeeded[1],pOutputSem[0]->semval,pOutputSem[1]->semval);
267 pthread_mutex_lock(&omx_base_source_Private->
flush_mutex);
269 pthread_mutex_unlock(&omx_base_source_Private->
flush_mutex);
272 if((isOutputBufferNeeded[0]==
OMX_TRUE && pOutputSem[0]->semval==0) &&
283 if((isOutputBufferNeeded[1]==
OMX_TRUE && pOutputSem[1]->semval==0) &&
297 if(pOutputSem[0]->semval>0 && isOutputBufferNeeded[0]==
OMX_TRUE ) {
299 if(pOutputQueue[0]->nelem>0){
300 outBufExchanged[0]++;
302 pOutputBuffer[0] =
dequeue(pOutputQueue[0]);
303 if(pOutputBuffer[0] == NULL){
310 if(pOutputSem[1]->semval>0 && isOutputBufferNeeded[1]==
OMX_TRUE) {
312 if(pOutputQueue[1]->nelem>0){
313 outBufExchanged[1]++;
315 pOutputBuffer[1] =
dequeue(pOutputQueue[1]);
316 if(pOutputBuffer[1] == NULL){
317 DEBUG(
DEB_LEV_ERR,
"Had NULL output buffer!! op is=%d,iq=%d\n",pOutputSem[1]->semval,pOutputQueue[1]->nelem);
348 }
else if(pOutputBuffer[i]->hMarkTargetComponent!=NULL){
361 DEBUG(
DEB_LEV_ERR,
"In %s Received Buffer in non-Executing State(%x)\n", __func__, (
int)omx_base_source_Private->
state);
365 DEBUG(
DEB_LEV_FULL_SEQ,
"Detected EOS flags in input buffer filled len=%d\n", (
int)pOutputBuffer[i]->nFilledLen);
382 outBufExchanged[i]--;
383 pOutputBuffer[i]=NULL;