22 #ifndef QTAV_VIDEOSHADER_H 23 #define QTAV_VIDEOSHADER_H 27 #if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0) 28 #include <QtGui/QOpenGLShaderProgram> 29 #include <QtGui/QOpenGLShader> 31 #include <QtOpenGL/QGLShaderProgram> 32 #include <QtOpenGL/QGLShader> 33 #undef QOpenGLShaderProgram 35 #define QOpenGLShaderProgram QGLShaderProgram 36 #define QOpenGLShader QGLShader 40 class QOpenGLShaderProgram;
44 class VideoShaderPrivate;
64 virtual char const *
const *attributeNames()
const;
71 virtual const char *vertexShader()
const;
72 virtual const char *fragmentShader()
const;
77 virtual void initialize(QOpenGLShaderProgram* shaderProgram = 0);
78 int uniformLocation(
const char* name)
const;
85 int textureLocationCount()
const;
86 int textureLocation(
int index)
const;
87 int matrixLocation()
const;
88 int colorMatrixLocation()
const;
89 int opacityLocation()
const;
90 int channelMapLocation()
const;
91 int texelSizeLocation()
const;
92 int textureSizeLocation()
const;
95 int textureTarget()
const;
96 QOpenGLShaderProgram* program();
112 virtual void programReady() {}
136 virtual bool setUserUniformValues() {
return false;}
141 virtual void setUserUniformValue(
Uniform&) {}
153 virtual const char* userSample()
const {
return 0;}
159 virtual const char* userPostProcess()
const {
return 0;}
162 QByteArray shaderSourceFromFile(
const QString& fileName)
const;
163 bool build(QOpenGLShaderProgram* shaderProgram);
165 void setTextureTarget(
int type);
166 void setMaterialType(qint32 value);
185 void setCurrentFrame(
const VideoFrame& frame);
189 virtual qint32 type()
const;
190 static QString typeName(qint32 value);
196 bool hasAlpha()
const;
201 bool isDirty()
const;
206 void setDirty(
bool value);
207 const QMatrix4x4 &colorMatrix()
const;
208 const QMatrix4x4& channelMap()
const;
209 int bitsPerComponent()
const;
210 QVector2D vectorTo8bit()
const;
211 int planeCount()
const;
225 qreal validTextureWidth()
const;
226 QSize frameSize()
const;
232 QSizeF texelSize(
int plane)
const;
237 QVector<QVector2D> texelSize()
const;
242 QSize textureSize(
int plane)
const;
247 QVector<QVector2D> textureSize()
const;
253 QRectF normalizedROI(
const QRectF& roi)
const;
262 QPointF mapToTexture(
int plane,
const QPointF& p,
int normalize = -1)
const;
263 QRectF mapToTexture(
int plane,
const QRectF& r,
int normalize = -1)
const;
264 qreal brightness()
const;
265 void setBrightness(qreal value);
266 qreal contrast()
const;
267 void setContrast(qreal value);
269 void setHue(qreal value);
270 qreal saturation()
const;
271 void setSaturation(qreal value);
275 void bindPlane(
int p,
bool updateTexture =
true);
280 #endif // QTAV_VIDEOSHADER_H virtual ~VideoMaterial()
Definition: VideoShader.h:184
#define Q_AV_EXPORT
Definition: QtAV_Global.h:40
#define DPTR_DECLARE_PRIVATE(Class)
Definition: dptr.h:107
Definition: VideoShader_p.h:103
The VideoShader class Represents a shader for rendering a video frame.
Definition: VideoShader.h:53
Definition: VideoShader_p.h:55
Definition: VideoFrame.h:32
ShaderType
Definition: VideoShader_p.h:48
The VideoMaterial class Encapsulates rendering state for a video shader program.
Definition: VideoShader.h:179
#define DPTR_DECLARE(Class)
Definition: dptr.h:105
AudioOutput ao; ao.setAudioFormat(fmt); ao.open(); while (has_data) { data = read_data(ao->bufferSize...
Definition: AudioDecoder.h:31