嵌入式Linux显示实时视频流,基于嵌入式Linux的视频采集系统----实时视频显示模块...

SDL开源图形图像库的简介

SDL(Simple DirectMedia Layer)是一个自由的跨平台的多媒体开发包,它被广泛的用于游戏、演示软件、模拟器、MPEG播放器等应用软件,SDL可以设置8bpp或更高的任意色彩深度的视频模式,也可以直接写入线性的图像帧缓冲framebuffer。SDL支持各种事件如键盘输入、鼠标输入、用户推出等。除此之外,SDL还提供完整的CD音频控制API,以及线程、定时器等工具函数。

基于SDL的视频显示

本课题选用的SDL版本为1.2.13。

基于SDL显示模块主要分如下几步:

● SDL函数库的初始化,主要是设置SDL支持视频显示。

SDL_Init(SDL_INIT_VIDEO|SDL_INIT_TIMER);

● 设置视频显示模式,SDL会尝试使用硬件加速,如果硬件加速失败,SDL会自动调整尽量使用与设置最为接近的模式。

screen = SDL_SetVideoMode (WIDTH, HEIGHT, 0, SDL_HWSURFACE

| SDL_DOUBLEBUF

| SDL_ANYFORMAT

| SDL_RESIZABLE);

● 设置窗口显示标题

SDL_WM_SetCaption ("USB Camera By Breeze", NULL);

● 创建YUV覆盖。多媒体领域中,尤其涉及到MPEG的播放时,通常使用YUV的颜色空间,如果MPEG的图片要在屏幕上显示则需要YUV到RGB的转化。某些显示芯片能够支持YUV到RGB的转换,免去软件转换的性能损失。这样,只要将YUV信息写到缓冲区,硬件就能自动完成YUV到RGB的转换并将图像显示到屏幕上。

overlay = SDL_CreateYUVOverlay(XDIM, YDIM, SDL_YV12_OVERLAY, screen);

● 将视频信息传送到显示设备上。SDL_LockSurface(screen);

SDL_LockYUVOverlay(overlay);

pict.data[0] = overlay->pixels[0];

pict.data[1] = overlay->pixels[2];

pict.data[2] = overlay->pixels[1];

pict.linesize[0] = overlay->pitches[0];

pict.linesize[1] = overlay->pitches[2];

pict.linesize[2] = overlay->pitches[1];

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值