SDL播放YUY2

本文介绍如何利用SDL播放来自USB摄像头的YUY2格式数据。关键在于理解YUY2格式并正确提取帧数据,解码采用XVID。通过这个过程,可以为处理其他YUV格式提供参考。
摘要由CSDN通过智能技术生成

        最近搞那个SDL播放用USB摄像头采集的数据,其实YUV的数据格式有很多种,一般都要针对相应的格式取得帧数据来给SDL描绘才行。我的摄像头取得的数据是YUY2的,大概过程如下所示:

        

bool CSDL_playerDlg::InitSDL(HWND m_hWnd)
{                                              //初始化,这里主要是把SDL的窗口嵌入到MFC的控件中
   char sdl_var[64];
   sprintf(sdl_var,"SDL_WINDOWID=0x%1x",m_hWnd);//在窗口初始化时加入InitSDL(this->GetDlgItem(IDC_STATIC)->GetSafeHwnd());
   SDL_putenv(sdl_var);

   char *myvalue = SDL_getenv("SDL_WINDOWID");   //让SDL取得窗口ID

   atexit(SDL_Quit);

   pscreen = SDL_SetVideoMode(WIDTH,HEIGHT,24,SDL_SWSURFACE); //设置播放模式
	if(pscreen == NULL)
    {
		TRACE("error SDL SetVideoMode! - %s", SDL_GetError());
		return false;
	}

	poverlay = SDL_CreateYUVOverlay(WIDTH,HEIGHT,SDL_YUY2_OVERLAY,pscreen);  //创建绘制YUV数据的句柄
	if(poverlay == NULL)
	{ 
		TRACE("error SDL CreateYUVOverlay! - %s", SDL_GetError());
		re
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值