<div style="line-height:1.7;color:#000000;font-size:14px;font-family:Arial"><div>Hi everyone,<br>    I'm trying to write a program, which runs on Mac OSX, to play several videos at the same time. <br>   The video data is in YUV format. It's convenient on Windows to use Qt to manage widgets and use SDL to handle the playing while this two lib doesn't fit well on Mac. So I tried QOpenGLWidget to do the playing work. The way I do this is  reimplementing initializeGL() and 
paintGL() of QOpenGLWidget£¬and call update() every time I got a decoded 
frame in play thread. <br>    The problem is too much paintEvents(25 frames per second per video) blocked other events, inputs from mouse and keyboard are responsed rather slowly.  So is there any solution to do the repaint work directly in the play thread, instead of sending a event to the gui thread? I have tried to use swapbuffer() of QOpenGLContext in paintGL(), but it doesn't work as QWindow do, the frame never changed unless I call update().<br>    Any advices would be appreciated.<br></div></div><br><br><span title="neteasefooter"><span id="netease_mail_footer"></span></span>