Tunneling is broken with the xvideosink.

The buffer management callback function will access internal structures which are not initialized, if tunneling is tried. It will then segfault.

I did manage to create a temporary fix for tunneling between the video decoder and the xvideosink, by discarding all buffers before the omx_xvideo_sink_component_Init function has finished. A better fix would be to refactor the component so that such behaviour is not needed, or simply waiting (instead of dropping data) until the init has been run.

Another problem is tearing, which is very visible on big displays and full HD (1080p) content. I don't think there is an easy solution, but possibly GL extensions could be used to wait for vertical retrace. See:
http://www.inb.uni-luebeck.de/~boehme/xvideo_sync.html