[mythtv-users] Raspberry Pi - Packaging with Open GL enabled

ted.thom at yahoo.com ted.thom at yahoo.com
Thu Jul 28 04:42:38 UTC 2016


Hi all!

I have been trying to get the latest Raspberry Pi (on Raspbian) enhancements (https://github.com/MythTV/mythtv/commit/5f200bf4b6a85da0c2a6a659312667de1e5ac4e8) on fixes/0.28. I am very much looking forward to seeing the OpenGL-rendered OSD :-) [Thank you Peter]

I am building MythTV using the packaging scripts (https://github.com/MythTV/packaging/tree/fixes/0.28/deb), but I am not able to get the OpenGL OSD working so far. I will explain the error I was getting when running the packaging scripts with opengl enabled, the change I made to the packaging scripts in order to solve/work around it (not sure that solve is the right word :-) ) and finally the error I am seeing when trying to display a OSD element using OpenGL.

1. I started by updating the configure parameter by adding the values Peter advised in order to enable OpenGL: "--disable-opengl-video --disable-vdpau --enable-opengl --disable-opengl-themepainter --disable-vaapi". The error I was getting when running the packaging script was happening when the dh_install command was ran. The error I was seeing is:
-----LOG EXTRACT----- 
make[1]: Leaving directory '/app/workspace-mythtv/packaging/deb/mythtv' 
debian/rules override_dh_install 
make[1]: Entering directory '/app/workspace-mythtv/packaging/deb/mythtv' 
mkdir -p debian/tmp/etc/php5/apache2/conf.d; \ 
cp debian/20-mythweb.ini debian/tmp/etc/php5/apache2/conf.d; \ 
mkdir -p debian/tmp/etc/php/7.0/apache2/conf.d; \ 
cp debian/20-mythweb.ini debian/tmp/etc/php/7.0/apache2/conf.d; \ 
fi 
dh_install -Xusr/share/mythtv/fonts/Free \ 
-Xusr/share/mythtv/fonts/Purisa \ 
-Xusr/share/mythtv/fonts/Droid \ 
-Xusr/share/mythtv/fonts/texgyrechorus \ 
-Xusr/lib/libmythzmq.la \ 
-Xusr/share/mythtv/fonts/tiresias_gpl3.txt \ 
-XLICENSE \ 
-X.git \ 
-Xscriptaculous \ 
-Xprototype.js \ 
-Xjquery.min.js \ 
--fail-missing 
dh_install: usr/share/mythtv/lib/libGLESv2.so.2 exists in debian/tmp but is not installed to anywhere 
dh_install: usr/share/mythtv/lib/libGLESv2.so.2.0.0 exists in debian/tmp but is not installed to anywhere 
dh_install: usr/share/mythtv/lib/libEGL.so.1 exists in debian/tmp but is not installed to anywhere 
dh_install: usr/share/mythtv/lib/libEGL.so.1.0.0 exists in debian/tmp but is not installed to anywhere 
dh_install: missing files, aborting 
debian/rules:135: recipe for target 'override_dh_install' failed 
make[1]: *** [override_dh_install] Error 255 
make[1]: Leaving directory '/app/workspace-mythtv/packaging/deb/mythtv' 
debian/rules:98: recipe for target 'binary' failed 
make: *** [binary] Error 2 
dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2 

----END OF LOG EXTRACT----- 

2. Getting passed this error: I looked at why it could be happening and what the error messages meant and after experimenting I was able to pass through this error by adding the line "usr/share/mythtv/lib" to mythtv-common.install (it worked also by adding it to mythv-frontend.install) [I am not sure if this is the right way to solve the error I was getting]. [At the same time I looked at the master branch (of the packaging project) ad ported a couple of changes that I believe had not been ported (I don't think these are affecting the problem I have seeing and that I will describe below)]. Anyway, the result of the changes I made to packaging/fixes/0.28 are in this diff: https://github.com/MythTV/packaging/compare/fixes/0.28...teddythomas:fixes/0.28-rpi?expand=1

3. The packaging now goes through, but I am not able to have the menu appear properly when selecting the OpenMAX High Quality profile.
It looks like MythTV is able to read the OpenGL library properly because in the mythfrontend logs I see:
Jul 27 19:49:12 us-pi-mythfrontend mythfrontend.real: mythfrontend[983]: I CoreContext ../libmythui/mythrender_opengl2es.h:118 (InitFeatures) EGL: Vendor  : Broadcom 
Jul 27 19:49:12 us-pi-mythfrontend mythfrontend.real: mythfrontend[983]: I CoreContext ../libmythui/mythrender_opengl2es.h:120 (InitFeatures) EGL: Renderer: VideoCore IV HW 
Jul 27 19:49:12 us-pi-mythfrontend mythfrontend.real: mythfrontend[983]: I CoreContext ../libmythui/mythrender_opengl2es.h:122 (InitFeatures) EGL: Version : OpenGL ES 2.0 
Jul 27 19:49:12 us-pi-mythfrontend mythfrontend.real: mythfrontend[983]: I CoreContext ../libmythui/mythrender_opengl2es.h:124 (InitFeatures) EGL: Max texture size: 2048 x 2048 
Jul 27 19:49:12 us-pi-mythfrontend mythfrontend.real: mythfrontend[983]: I CoreContext ../libmythui/mythrender_opengl2es.h:126 (InitFeatures) EGL: Direct rendering: Yes 
Jul 27 19:49:12 us-pi-mythfrontend mythfrontend.real: mythfrontend[983]: I CoreContext ../libmythui/mythrender_opengl2es.h:128 (InitFeatures) EGL: Extensions Supported: 0 
Jul 27 19:49:12 us-pi-mythfrontend mythfrontend.real: mythfrontend[983]: I CoreContext ../libmythui/mythrender_opengl2es.h:147 (InitFeatures) OpenGL2ES: Found default functionality. 
Jul 27 19:49:12 us-pi-mythfrontend mythfrontend.real: mythfrontend[983]: I CoreContext ../libmythui/mythrender_opengl2es.h:180 (InitFeatures) OpenGL2ES: Framebuffer Objects available. 
Jul 27 19:49:12 us-pi-mythfrontend mythfrontend.real: mythfrontend[983]: I CoreContext ../libmythui/mythrender_opengl2es.h:193 (InitFeatures) OpenGL2ES: OES mapbuffer available. 
Jul 27 19:49:12 us-pi-mythfrontend mythfrontend.real: mythfrontend[983]: I CoreContext mythrender_opengl.cpp:209 (Init) OpenGL: Initialised MythRenderOpenGL 
Jul 27 19:49:12 us-pi-mythfrontend mythfrontend.real: mythfrontend[983]: I CoreContext mythpainter_ogl.cpp:27 (MythOpenGLPainter) OpenGL painter using existing OpenGL context. 
Jul 27 19:49:12 us-pi-mythfrontend mythfrontend.real: mythfrontend[983]: I CoreContext videoout_omx.cpp:443 (Init) VideoOutputOMX: Init: OSD display uses opengl 


But once I launch a video and try to have a menu appear on the screen (typing M for example to make the menu appear), I see the following errors in the logs and no menu is appearing:
Jul 27 19:49:21 us-pi-mythfrontend mythfrontend.real: mythfrontend[983]: E CoreContext mythrender_opengl.cpp:39 (__glCheck__) OpenGL: : 1285 @ mythrender_opengl.cpp, 1481 
Jul 27 19:49:21 us-pi-mythfrontend mythfrontend.real: mythfrontend[983]: E CoreContext mythrender_opengl.cpp:1484 (ClearTexture) OpenGL: glTexImage size 262144 failed 
Jul 27 19:49:21 us-pi-mythfrontend mythfrontend.real: mythfrontend[983]: E CoreContext mythpainter_ogl.cpp:170 (GetTextureFromCache) Failed to create OpenGL texture. 
Jul 27 19:49:21 us-pi-mythfrontend mythfrontend.real: mythfrontend[983]: E CoreContext mythrender_opengl.cpp:39 (__glCheck__) OpenGL: : 1285 @ mythrender_opengl.cpp, 1481 
Jul 27 19:49:21 us-pi-mythfrontend mythfrontend.real: mythfrontend[983]: E CoreContext mythrender_opengl.cpp:1484 (ClearTexture) OpenGL: glTexImage size 524288 failed 
Jul 27 19:49:21 us-pi-mythfrontend mythfrontend.real: mythfrontend[983]: E CoreContext mythpainter_ogl.cpp:170 (GetTextureFromCache) Failed to create OpenGL texture. 
Jul 27 19:49:21 us-pi-mythfrontend mythfrontend.real: mythfrontend[983]: E CoreContext mythrender_opengl.cpp:39 (__glCheck__) OpenGL: : 1285 @ mythrender_opengl.cpp, 1481 
Jul 27 19:49:21 us-pi-mythfrontend mythfrontend.real: mythfrontend[983]: E CoreContext mythrender_opengl.cpp:1484 (ClearTexture) OpenGL: glTexImage size 16384 failed 
Jul 27 19:49:21 us-pi-mythfrontend mythfrontend.real: mythfrontend[983]: E CoreContext mythpainter_ogl.cpp:170 (GetTextureFromCache) Failed to create OpenGL texture. 
Jul 27 19:49:21 us-pi-mythfrontend mythfrontend.real: mythfrontend[983]: E CoreContext mythrender_opengl.cpp:39 (__glCheck__) OpenGL: : 1285 @ mythrender_opengl.cpp, 1481 
Jul 27 19:49:21 us-pi-mythfrontend mythfrontend.real: mythfrontend[983]: E CoreContext mythrender_opengl.cpp:1484 (ClearTexture) OpenGL: glTexImage size 524288 failed 
Jul 27 19:49:21 us-pi-mythfrontend mythfrontend.real: mythfrontend[983]: E CoreContext mythpainter_ogl.cpp:170 (GetTextureFromCache) Failed to create OpenGL texture. 
Jul 27 19:49:21 us-pi-mythfrontend mythfrontend.real: mythfrontend[983]: E CoreContext mythrender_opengl.cpp:39 (__glCheck__) OpenGL: : 1285 @ mythrender_opengl.cpp, 1481 
....


If anyway of you would have any input if I am doing something wrong in the packaging script or if anyway of you have any idea about what could be happening, that would be very helpful, because I am kind of stuck :-)

Thank you in advance for your help and thank you Peter for the enhancements you keep bringing to the Raspberry PI support.

Teddy


More information about the mythtv-users mailing list