标题:请教qtopia在板子上流畅播放yuv文件的方法,知道的兄弟请提示
作者:zozowit
日期:2007-10-22 15:26
内容:
尝试将yuv转换成RGG后播放,但似乎不流畅
一帧一帧地转换,用timer控制,但播起来很慢
请问有什么优化的方法吗?
renderarea::renderarea(QWidget *parent):QMainWindow(parent)
{
length =0;
show_init();
v_height = VIDEOHEIGHT;
v_width = VIDEOWIDTH;
RGBBufferSize = 4*v_height*v_width;
RGBBuffer = (unsigned char*)malloc(RGBBufferSize*sizeof(unsigned char));
img = new QImage ((uchar*)RGBBuffer,v_width,v_height,QImage::Format_RGB32);
p = new QPainter();
movieTimer = new QTimer( this ); // create internal timer
movieTimer->start(40);
connect(movieTimer, SIGNAL(timeout()), this, SLOT(timeover()))
setGeometry (0,0,240,320);
}
void renderarea::timeover()
{
static int display_num = 0;
static int displaylen = 0;
displaylen = 320 * 240 * 3 / 2 * display_num;
if(displaylen >= length)
{ movieTimer->stop(); //当没有新消息时,重新启动定时器
return;
}
else
{
unsigned char * yuv_buffer;
//取出fdm中的一帧
yuv_buffer = (unsigned char * )fdm + displaylen;
display_num++;
//调用转换函数
yuv420_toRGB(v_width, v_height, yuv_buffer, RGBBuffer);
//触发paintEvent
update();
}
}
void renderarea::paintEvent(QPaintEvent *)
{
&n ..