Hi everybody,
I'm currently working on a port of xbmc (11.0-rc1) to EfikaMX or better to Freescale's ARM SoC i.MX51. I got so far to get the video stream decoded by its VPU to a YV12 image. The VPU supports all major formats - at least all I need
All is done by the new DVDVideoCodec derived class called DVDVideoCodecVPU.
My problem now is to get the YV12 image to screen. If I set the format in DVDVideoPicture to FMT_YUV420P I get a stripped image completely colored in pink. In other words: You cannot watch any video
Yesterday I tried a second approach. This time I merged the EGL renderer from robclark's gstreamer branch to my code base. In my tests I got all well colored image but still with stripes and today the screen keeps black (only audio and overlay rendering works)
In both approachs the stripes are 8 pixels width and are in the following order (G=good pixel, B=bad pixel):
GGGGGGGG BBBBBBBB GGGGGGGG BBBBBBBB .....
GGGGGGGG BBBBBBBB GGGGGGGG BBBBBBBB .....
and so on
Now my question is: Does anybody know what causes the stripes? I believe the EGL shaders I merged are the problem. But to be honest I have no knowledge of GLES, EGL and even my knowledge of OpenGL is very limited.
My next idea would be to implement DVP_RENDER_BYPASS which set the RENDER_BYPASS flag in DVDPlayer. This should prevent the GLES renderer to render any video image - in hope I read the code right. I could then open a V4L device (if not in use by X server) to push the decoded directly to screen. Has anybody tried something similar or is it an idea to stop working on?
Even my patches are not working fully I would like to share my code as soon as I learned git again and can push my code to github. I can only clone repositories
Thanks for any ideas
Stephan