SDL显示

SDL (多平台支持硬件缩放)
SDL(Simple DirectMedia Layer) is a cross-platform multimedia library designed to provide low level access to audio keyboard mouse joystick 3D hardware via OpenGL and 2D video framebuffer.
其实SDL就是一个中间件,它封装了下层的OpenGL frameBuffer X11 DirectX等给上层提供一个统一的API接口,使用SDL的优点是我们不必再为X11或DirectX分别做个视(fen bie zuo ge shi)频输出程序了。
SDL可以直接显示YUV数据和RGB数据一般解码得到的picture都是YUV420P格式的不用做YUV2RGB的转换就可以直接显示主要代码如下:
static int vo_sdl_init(void)
{
....
screen = SDL_SetVideoMode(ww wh 0 flags);
overlay = SDL_CreateYUVOverlay(dw dh SDL_YV12_OVERLAY screen);
....
}
static void vo_sdl_display(AVPicture *pict)
{
SDL_Rect rect;
AVPicture p;
SDL_LockYUVOverlay(overlay);
p.data[0] = overlay->pixels[0];
p.data[1] = overlay->pixels[2];
p.data[2] = overlay->pixels[1];
p.linesize[0] = overlay->pitches[0];www.spbemis.net.cn
p.linesize[1] = overlay->pitches[2];
p.linesize[2] = overlay->pitches[1];
vo_sdl_sws( &p pict ); /* only do memcpy */
SDL_UnlockYUVOverlay(overlay);
rect.x = dx;
rect.y = dy;
rect.w = dw;
rect.h = dh;
SDL_DisplayYUVOverlay(overlay &rect);
}


本文来自优快云博客,转载请标明出处:http://www.yanfaw.com/html/46/n-2946.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值