firefly
1.RGA
简单的说,RGA就是一个用来处理图片的硬件,和CPU相互独立,可以独立完成图片的处理,在瑞芯微这边提供的库是阻塞的,可以自己实现为异步的。具体可参考官方的简单说明.php?mod=viewthread&tid=333&highlight=RGA
2.RGA错误使用
这里使用RGA,主要是用于一个快速的格式转换,在这部分实现中,阻塞或者异步都影响不大。上一章节简单说明了一下RGA的使用,经过测试那样做,有点问题,资源泄漏,就算在析构中手动释放申请的资源,后面还是会有问题,比如每一帧的转换都请求一个句柄,转换完就算释放。
void QSmartCamera::draw_viewfinder(QSharedPointer<QByteArray> d)
{QRgaYUV2RGB convert(STREAM_WIDTH,STREAM_HEIGHT,RK_FORMAT_YCbCr_420_P,(unsigned char *)d->data(),STREAM_WIDTH,STREAM_HEIGHT,RK_FORMAT_RGB_888);unsigned char *frame = convert.get_data();if(frame){qDebug() << "rga convert ok";QImage image(frame,STREAM_WIDTH,STREAM_HEIGHT,QI