2 xinchao07 xinchao07 于 2014.11.24 18:47 提问

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 );

}

3个回答

xinchao07
xinchao07   2014.12.08 16:31
已采纳

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

xinchao07
xinchao07 回复把自己熬成金黄: 能不能看看怎么实现的?
9 个月之前 回复
buptlbh
buptlbh 遇到同样的问题,找遍了各种解决方法都无效,这个方法可以,赞一个。
大约一年之前 回复
MandyLover
MandyLover 遇到相同的问题,此方法确实有效,谢谢
大约一年之前 回复
xmcy001122
xmcy001122 但是有问题,将渲染函数放到主线程中,问题自然解决。
一年多之前 回复
ye474324894
ye474324894   2016.08.31 18:38

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

gfgvhgfhfghf
gfgvhgfhfghf   2017.06.20 22:06

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!