I'm the author of pidvbip, a Pi client for tvheadend. When a user changes TV channel in my client, it attempts to completely close the openmax pipeline (video_decode, image_fx, clock, video_scheduler, video_render, audio_render) before re-opening it.
This seems to work fine the majority of the time, but it sometimes gets stuck transitioning the video_decode component to StateLoaded - I never get a command completed callback for the OMX_CommandStateSet command. I've confirmed that both the input and output ports are disabled, and the component is in StateIdle. All other components in the pipeline are successfully transitioning to StateLoaded.
The input buffers have been freed, and I've also cleared the tunnel between video_decode and image_fx/video_scheduler (depending on whether deinterlacing is being used).
Can anyone provide any insight? Is there any more debugging information I could display about the video_decode component apart from its state and the port status which could help me identify why it sometimes works and sometimes doesn't?