1 Star 1 Fork 1

Devin / XPlay3

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
XVideoWidget.h 2.17 KB
一键复制 编辑 原始数据 按行查看 历史
Devin 提交于 2021-10-23 13:08 . 提交工程
#ifndef XVIDEOWIDGET_H
#define XVIDEOWIDGET_H
#include <QWidget>
#include <QOpenGLWidget>
#include <QOpenGLFunctions>
#include <QGLShaderProgram>
#include "IVideoWidget.h"
#include <QMutex>
namespace Ui {
class XVideoWidget;
}
class XVideoWidget : public QOpenGLWidget, protected QOpenGLFunctions, public IVideoWidget
{
Q_OBJECT
public:
explicit XVideoWidget(QWidget *parent = nullptr);
~XVideoWidget();
public:
/******************************************
* 函数名:Init
* 描述:初始化视频显示类
* 输入参数:_iWidget:视频显示的宽 _iHeight:视频显示的高
* 输出参数:无
* 返回值:无
* 其他:
*******************************************/
virtual void Init(int _iWidget, int _iHeight);
/******************************************
* 函数名:Repaint
* 描述:重新绘制视频显示界面
* 输入参数:_pAVFrame:AVFrame结构指针
* 输出参数:无
* 返回值:无
* 其他:
*******************************************/
virtual void Repaint(AVFrame *_pAVFrame);
protected:
/******************************************
* 函数名:initializeGL
* 描述:初始化OpenGL
* 输入参数:无
* 输出参数:无
* 返回值:无
* 其他:
*******************************************/
virtual void initializeGL();
/******************************************
* 函数名:resizeGL
* 描述:重新设置视频显示界面尺寸
* 输入参数:_iWidget:视频显示的宽 _iHeight:视频显示的高
* 输出参数:无
* 返回值:无
* 其他:
*******************************************/
virtual void resizeGL(int _iWidget, int _iHeight);
//刷新显示
virtual void paintGL();
private:
Ui::XVideoWidget *ui;
int m_iWidth = 240;
int m_iHeight = 128;
QMutex m_qmutVideoWidget;
//材质内存空间
unsigned char *m_pDatas[3] = { 0 };
//shader程序
QGLShaderProgram m_QGLShaderProgram;
//shader中yuv变量地址
GLuint unis[3] = { 0 };
//openg的 texture地址
GLuint texs[3] = { 0 };
};
#endif // XVIDEOWIDGET_H
1
https://gitee.com/yixinglong/xplay3.git
git@gitee.com:yixinglong/xplay3.git
yixinglong
xplay3
XPlay3
master

搜索帮助