RGA上屏出现横线

在开发基于vpu硬解的视频广播方案过程中,遇到RGA上屏时出现横线的问题,具体现象如下:1、如果使用JPEG硬解并使用RGA上屏,不会出现横线
2、如果使用H264硬解并使用RGA(YUV转RGB并上屏)上屏,有时会出现横线
3、为ffmpeg添加h264硬解,使用ffplay播放视频时不会出现横线,但如果在上屏前,在解码的帧上添加一些图片时会出现大量的横线

图片如下

干嘛要用RGA去做YUV转RGB 直接显示YUV不就好了。

isle 发表于 2016-3-19 09:17
干嘛要用RGA去做YUV转RGB 直接显示YUV不就好了。

RGA把YUV转成RGB然后写到FB0上,再说屏幕貌似只支持RGB吧?
你说的是啥意思,其它上屏方式(SDL)速度太慢,行不通的。

isle 发表于 2016-3-19 09:17
干嘛要用RGA去做YUV转RGB 直接显示YUV不就好了。

直接写fb0的速度也很慢,必需得用rga显示,速度才能满足需求。
使用的代码
if (ioctl(rgacxt->rga_fd, RGA_BLIT_SYNC, (char *)&rga_req) != 0) {
RGA_ERR(“ioctl failed\n”);
return 1;
}
将YUV转RGA并上屏

isle 发表于 2016-3-19 09:17
干嘛要用RGA去做YUV转RGB 直接显示YUV不就好了。

详细代码如下:
static int rga_display(SDL_Overlay overlay, SDL_Rect rect)
{
static int start_display= 0;
if (!start_display)
{
start_display=1;
int fb_size = rect->wrect->h4;
char* fb_addr = open_fb(fb_size);
int rga_fd = rga_init(overlay->w, overlay->h, fb_addr, rect->w, rect->h);
g_fb_info.rga_fd = rga_fd;
}
rga_scale(g_fb_info.rga_fd, (char**)overlay->pixels);

return(0);

}

static int rga_scale(int fd, char **src)
{
Rga_Request.src.yrgb_addr = (int)(src[0]);
Rga_Request.src.uv_addr = (int)(src[1]);
Rga_Request.src.v_addr = (int)(src[2]);
if(ioctl(fd, RGA_BLIT_SYNC, &Rga_Request) != 0) {
printf(“ioctl rga error!!\n”);
exit(-1);
return -1;
}

return 0;

}

大神帮忙瞅瞅

楼主,最近我也在研究rga,可否一起交流,邮箱 oetc1990@126.com

Android 上有直接显示YUV的方法。速度很快。网上找找。

cloudliu 发表于 2016-3-24 15:08
楼主,最近我也在研究rga,可否一起交流,邮箱

rga资料很少的,我也不太懂