首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

用SDL库播发yuy2 Packed mode

2013-10-31 
用SDL库播放yuy2 Packed mode#define SDL_YUY2_OVERLAY 0x32595559 /* Packed mode: Y0U0Y1V0 */if (SDL_I

用SDL库播放yuy2 Packed mode

#define SDL_YUY2_OVERLAY 0x32595559 /* Packed mode: Y0+U0+Y1+V0 */

 

 if (SDL_Init(SDL_INIT_VIDEO) < 0)
    {
        exit(1);
    }
    atexit(SDL_Quit);
 
    screen = SDL_SetVideoMode(720, 576, 32, SDL_SWSURFACE|SDL_ANYFORMAT);
    if ( screen == NULL )
 {
         exit(1);
    }
 
    SDL_Overlay* overlay = SDL_CreateYUVOverlay(w, h, SDL_YUY2_OVERLAY, screen);
    if (overlay == NULL)
    {
        exit(1);
    }
 
    pY = (unsigned char*)malloc(w*h*2);

  
        SDL_LockSurface(screen);
        SDL_LockYUVOverlay(overlay);
  
 
    fp = fopen("d:\\6082.dat", "rb");
    if (fp == NULL)
    {
        exit(1);
    }
 while (!feof(fp))
 {  
        fread(pY, 1, w*h*2, fp);
        memcpy(overlay->pixels[0], pY, w*h*2);
        SDL_UnlockYUVOverlay(overlay);
        SDL_UnlockSurface(screen);
  
        rect.w = w;
        rect.h = h;
        rect.x = rect.y = 0;
        SDL_DisplayYUVOverlay(overlay, &rect);
  
        SDL_Delay(40);
  
        i += 1;
    }
  fclose(fp);
    free(pY);
 
    SDL_FreeYUVOverlay(overlay);
    SDL_FreeSurface(screen);
 str.Format(_T("frmcnt:%d"),i);
 MessageBox(str);

 

热点排行