35#include "Base/Headers/Angle.h"
36#include "VideoDelegate.h"
37#include "YUVVideoFrame.h"
38#include <QOpenGLWindow>
39#include <QOpenGLFunctions>
40#include <QScopedPointer>
47 class NDEVRVideoStream;
56 class VLCOpenGLRenderer :
public QOpenGLWindow,
public QOpenGLFunctions,
public VlcVideoDelegate
61 explicit VLCOpenGLRenderer();
67 void DisplayVideoFrame(
const std::shared_ptr<const VlcAbstractVideoFrame>& data);
71 Time lastFrameTime()
const;
74 QSize streamSize()
const;
77 void setMediaPlayer(VlcMediaPlayer* player);
81 void updateFrameTime();
84 void setBackgroundColor(QColor color);
91 bool event(QEvent* event);
94 virtual void setCameraRotation(Angle<sint04> rotation);
97 virtual Angle<sint04> cameraRotation() {
return m_rotation; }
101 virtual void setCameraZoom(fltp04 zoom);
104 virtual fltp04 cameraZoom() {
return m_zoom; }
108 WId request()
override;
111 void release()
override;
116 void vlcCapturedEvent(QEvent* event);
119 void initializeGL()
override;
123 void resizeGL(
int w,
int h)
override;
125 void paintGL()
override;
127 void applyPreviousSettings();
129 struct OpenGLDisplayImpl;
130 std::shared_ptr<const VlcAbstractVideoFrame> frame;
133 QScopedPointer<OpenGLDisplayImpl> impl;
134 NDEVRVideoStream* m_video_stream =
nullptr;
135 VlcMediaPlayer* m_player =
nullptr;
136 Angle<sint04> m_rotation;
138 QColor m_background_color;
139 bool m_is_initialized =
false;
142 class OpenGlException :
public QException
146 void raise()
const {
throw*
this; }
149 OpenGlException* clone()
const {
return new OpenGlException(*
this); }
Logic for reading or writing to a file as well as navigating filesystems or other common file operati...
Represents a timestamp with utilities for manipulation and conversion.
The primary namespace for the NDEVR SDK.
float fltp04
Defines an alias representing a 4 byte floating-point number Bit layout is as follows: -Sign: 1 bit a...