Move Frame Uploader to Thread

This commit is contained in:
Florian Märkl 2019-08-05 14:18:20 +02:00
commit 679af22f6d
No known key found for this signature in database
GPG key ID: 125BC8A5A6A1E857
4 changed files with 37 additions and 7 deletions

View file

@ -23,6 +23,7 @@
class AVOpenGLWidget;
class VideoDecoder;
class QSurface;
class AVOpenGLFrameUploader: public QObject
{
@ -31,12 +32,14 @@ class AVOpenGLFrameUploader: public QObject
private:
VideoDecoder *decoder;
AVOpenGLWidget *widget;
QOpenGLContext *context;
QSurface *surface;
private slots:
void UpdateFrame();
public:
AVOpenGLFrameUploader(VideoDecoder *decoder, AVOpenGLWidget *widget);
AVOpenGLFrameUploader(VideoDecoder *decoder, AVOpenGLWidget *widget, QOpenGLContext *context, QSurface *surface);
};
#endif // CHIAKI_AVOPENGLFRAMEUPLOADER_H

View file

@ -52,7 +52,9 @@ class AVOpenGLWidget: public QOpenGLWidget
AVOpenGLFrame frames[2];
int frame_fg;
QMutex frames_mutex;
QOpenGLContext *frame_uploader_context;
AVOpenGLFrameUploader *frame_uploader;
QThread *frame_uploader_thread;
public:
explicit AVOpenGLWidget(VideoDecoder *decoder, QWidget *parent = nullptr);