使用RK3288+opengl es shader播放视频,出现绿色画面!

程序是利用opegl es shader 对视频的画面进行简单处理(为了便于测试现在只做显示),目前程序在多个手机平台上测试均没问题,当把APK安装到RK3288时就出现画面全绿的情况,如图,现在我把代码和APK已经视频放上来,希望大家能帮我分析下问题出在哪里?谢谢大家了。

源码+APK+Demo.mp4下载:源码+APK+视频.rar_免费高速下载|百度网盘-分享无限制

视频画面前面就像遮了一层绿布。。。

都没人在吗?

opegl es不是太熟悉,帮忙顶上去

用了pad版会吗?

Hi ,我们这边正在看这个问题,不过事情太多,需要一定时间。
我想问你的是,你是出于什么考虑要opengl来显示,而不是系统本身的接口,在android上一般都是用系统接口在显示,譬如一般的播放器都是这样做的。

isle 发表于 2015-4-24 09:04
Hi ,我们这边正在看这个问题,不过事情太多,需要一定时间。
我想问你的是,你是出于什么考虑要opengl来显 …

我们需要做硬件加速

直接使用系统接口,adroid会自动硬件加速。设置里面有强制GPU渲染,可以打开来测试。

视频解码驱动的问题,rockchip的视频解码驱动,一般情况下,解码后的视频流直接送往显示屏,不经过surfaceflinger。这种情况下,opengl无法得到解码的数据进行渲染。

hwc 库 替换到 system/lib/hw 中
player库 替换到 system/lib、 中

在adb shell 中 输入命令
setprop video.use.overlay 0
然后就可以了
请使用最新的固件 或最新的代码测试。
hwcomposer.rk30board.so (20.1 KB)
librkffplayer.so (202 KB)

isle 发表于 2015-5-8 11:13
hwc 库 替换到 system/lib/hw 中
player库 替换到 system/lib、 中

对于ubuntu跑opengl demo测试出现如下:
root@firefly:/walkera/app/mali_opengl_sdk/opengles_30/skybox# sudo ./skybox
Error: eglGetError(): 12289 (0x3001)

Error: Failed to initialize EGL at ../../../../samples/opengles_30/skybox/EGLRuntime.cpp:243

root@firefly:/walkera/app/mali_opengl_sdk/opengles_30/skybox# ldd skybox
塴ibGLESv2.so => /usr/lib/libGLESv2.so (0xb5db0000)
libstdc++.so.6 => /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 (0xb5d04000)
libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0xb5c98000)
libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0xb5c77000)
libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xb5b90000)
librt.so.1 => /lib/arm-linux-gnueabihf/librt.so.1 (0xb5b82000)
libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0xb5b66000)
libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0xb5b5b000)
/lib/ld-linux-armhf.so.3 (0xb6fbe000)

如何解决?
我目前已经chmod 777 /dev/mali0
chmod 777 /dev/fbx
同时我也是root用户权限。

isle 发表于 2015-5-8 11:13
hwc 库 替换到 system/lib/hw 中
player库 替换到 system/lib、 中

大神,你是专业做方案的吗,还是一个厉害的大神。

isle 发表于 2015-5-8 11:13
hwc 库 替换到 system/lib/hw 中
player库 替换到 system/lib、 中

你好,问一下 ,ubuntu 下面有直接调 opengl 的接口的,或者现成的用来GPU 播放的接口?