OpenMAX IL clarification of queuing of commands


I have a query regarding processing of the OMX_CommandMarkBuffer and OMX_StateSet commands. My use case is as follows:

Initial condition:

  • OMX_StateExecuting
  • No input buffers in the processing queue

The IL Client performs the following calls:

Error = OMX_SendCommand(hComp, OMX_CommandMarkBuffer, nPortIndex, &Mark);
Error = OMX_SendCommand(hComp, OMX_CommandStateSet, OMX_StateIdle, NULL);

Should the component:

a) Wait until an input buffer arrives in order to complete the OMX_Markbuffer command, and then process the OMX_CommandStateSet command?

b) Return the command completion for the OMX_CommandMarkBuffer regardless of whether an input buffer can be
marked, and then process the OMX_CommandStateSet command?

My issue is that the transition to idle will stall if there are no input buffers arriving (but maybe the IL Client should ensure that this scenario will not occur).


There do look to be some issues for which further guidance is required. I have initiated discussion of this within the working group with a view to providing clarification.



Thanks for your reply Roger. I have been keeping abreast of the issue via the OpenMAX IL Work Group mailing list, and look forward to a resolution.