主题 : tiny210 下,client = new SurfaceComposerClient() 出错 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 70307
精华: 0
发帖: 22
金钱: 115 两
威望: 23 点
综合积分: 44 分
注册时间: 2012-05-18
最后登录: 2014-09-30
楼主  发表于: 2012-05-23 14:37

 tiny210 下,client = new SurfaceComposerClient() 出错

在android 2.3.4下,希望使用PushBuffers 来显示yuv420p的视频。在ndk中,使用client = new SurfaceComposerClient()来生成client对象,    但执行    
    if(client->initCheck()!=NO_ERROR);
    LOGE("client have error in mStatus\n");
始终返回错误。跟踪发现client的初始化有问题。
不知道各位是如何使用new SurfaceComposerClient()来生成client的?


退一步的问题:对于自定义的视频(无法使用系统的mediaplayer解码),解码后得到yuv420p的帧,在不转换成rgb565的情况下,在tiny210的板子上怎么样才能高效流畅地显示出来?  yuv转rgb太花时间了。
级别: 荣誉会员
UID: 34761
精华: 0
发帖: 1348
金钱: 6835 两
威望: 1367 点
综合积分: 2696 分
注册时间: 2010-12-21
最后登录: 2017-06-02
1楼  发表于: 2012-05-24 12:48
一般都不是自已直接输出视频的,
应该交给驱动或硬件去做,配置MFC输出路径,由底层将视频直接DMA到LCD上,
例如 6410的overlay技术,将视频叠加到应用程序界面上,
由应用层去搬数据到LCD上,数据量太大,无论如何都很难流畅的了
级别: 新手上路
UID: 70307
精华: 0
发帖: 22
金钱: 115 两
威望: 23 点
综合积分: 44 分
注册时间: 2012-05-18
最后登录: 2014-09-30
2楼  发表于: 2012-05-25 15:51
都是使用指针,不需要搬数据。问题是,在tiny210的android 2.3下,sp<SurfaceComposerClient> client= new SurfaceComposerClient(),居然不能生成正确的对象(client->initCheck()返回值不正确),这是很奇怪的现象。该代码是2.3自带的测试代码,肯定是没有问题的。
是不是tiny210修改了framework,所以兼容性不好了?
级别: 新手上路
UID: 71062
精华: 0
发帖: 2
金钱: 10 两
威望: 2 点
综合积分: 4 分
注册时间: 2012-05-30
最后登录: 2012-05-31
3楼  发表于: 2012-05-31 10:53
我已经可以 硬解并通过surface flinger显示了,但是硬编总是花屏。
级别: 新手上路
UID: 68833
精华: 0
发帖: 11
金钱: 55 两
威望: 11 点
综合积分: 22 分
注册时间: 2012-04-27
最后登录: 2017-09-13
4楼  发表于: 2012-06-07 10:50

 回 3楼(openser) 的帖子

楼主调用surface flinger显示成功了吗?
级别: 新手上路
UID: 70307
精华: 0
发帖: 22
金钱: 115 两
威望: 23 点
综合积分: 44 分
注册时间: 2012-05-18
最后登录: 2014-09-30
5楼  发表于: 2012-06-11 09:16

 Re:回 3楼(openser) 的帖子

引用第4楼chiphope于2012-06-07 10:50发表的 回 3楼(openser) 的帖子 :
楼主调用surface flinger显示成功了吗?

没有成功。就是那个new SurfaceComposerClient()返回的对象不能通过initCheck()? 可有良方?