xinchao07
2014-11-24 10:47
采纳率: 100%
浏览 6.8k
已采纳

SDL2 更改窗口大小,视频卡主

在使用SDL2.0时,使用了SDL API函数SDL_SetWindowSize函数后,视频播放就会卡主,若是使用SDL_SetWindowPosition只是移动位置是不会有问题的?
ShowData(const unsigned char *pY,const unsigned char *pU,const unsigned char *pV,int width)
{
if( pTexture == NULL || pRender == NULL )
return;

SDL_UpdateYUVTexture(pTexture,&sdlRT,pY,width,pU,width/2,
    pV,width/2);

SDL_RenderClear( pRender );
SDL_RenderCopy( pRender, pTexture, &sdlRT, &dstRT );
SDL_RenderPresent( pRender );

}

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • xinchao07 2014-12-08 08:31
    已采纳

    没人回答!
    不过我已经搞定了!
    修改源码中的代码!
    SDL_OnWindowResized中的SDL_WINDOWEVENT_SIZE_CHANGED更改为SDL_WINDOWEVENT_RESIZED。
    希望对以后用的人有用吧

    已采纳该答案
    打赏 评论
  • Tsuigod 2016-08-31 10:38

    特地登录回复,解决了我改变窗口导致视频无法显示的问题,谢谢!很急很关键!

    打赏 评论
  • 雨液孤星 2017-06-20 14:06

    有个问题,在SDL_OnWindowResized中的SDL_WINDOWEVENT_SIZE_CHANGED更改为SDL_WINDOWEVENT_RESIZED是可以解决卡住的问题,但是同时也牺牲了分辨率,在视频缩放的时候会一直是一开始打开的视频大小的分辨率,不能改变,这怎么解决

    打赏 评论
  • 小丑 2020-04-20 18:11

    感谢分享,成功解决问题

    打赏 评论
  • weixin_38021664 2021-07-22 14:36

    SDL_Init一遍,将更改后的句柄初始化就行

    打赏 评论

相关推荐 更多相似问题