Page 1 of 1

Problem tearing down video playback pipeline

Posted: Wed Jun 26, 2013 7:52 am
by linuxstb

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?


Re: Problem tearing down video playback pipeline

Posted: Wed Jun 26, 2013 12:24 pm
by linuxstb
I'm not 100% sure (it's now working fine for me, but I need feedback from users of my app), but I think I may have resolved this issue by enabling OMX_IndexParamBrcmLazyImagePoolDestroy as described here: ... oolDestroy