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).