MythTV master
mythplayervideoui.h
Go to the documentation of this file.
1#ifndef MYTHPLAYERVIDEOUI_H
2#define MYTHPLAYERVIDEOUI_H
3
4// MythTV
5#include "DetectLetterbox.h"
6#include "mythinteropgpu.h"
8
10{
11 public:
12 using Callback = void (*)(void*, void*, void*);
13 DecoderCallback() = default;
14 DecoderCallback(QString Debug, Callback Function, QAtomicInt *Ready,
15 void *Opaque1, void *Opaque2, void *Opaque3)
16 : m_debug(std::move(Debug)),
17 m_function(Function),
18 m_ready(Ready),
19 m_opaque1(Opaque1),
20 m_opaque2(Opaque2),
21 m_opaque3(Opaque3)
22 {
23 }
24
25 QString m_debug;
26 Callback m_function { nullptr };
27 QAtomicInt *m_ready { nullptr };
28 void* m_opaque1 { nullptr };
29 void* m_opaque2 { nullptr };
30 void* m_opaque3 { nullptr };
31};
32
34{
35 Q_OBJECT
36
37 signals:
40
41 public:
42 MythPlayerVideoUI(MythMainWindow* MainWindow, TV* Tv, PlayerContext* Context, PlayerFlags Flags);
43 ~MythPlayerVideoUI() override = default;
44
45 const MythInteropGPU::InteropMap& GetInteropTypes() const;
46 void HandleDecoderCallback(const QString& Debug, DecoderCallback::Callback Function,
47 void* Opaque1, void* Opaque2);
48
49 void CheckAspectRatio(MythVideoFrame* Frame);
50
51 public slots:
52 void ProcessCallbacks();
53 void SupportedAttributesChanged(PictureAttributeSupported Supported);
54 void PictureAttributeChanged(PictureAttribute Attribute, int Value);
55 void PictureAttributesUpdated(const std::map<PictureAttribute,int>& Values);
56
57 protected slots:
58 void ReinitOSD();
59 void ToggleAdjustFill(AdjustFillMode Mode = kAdjustFill_Toggle);
60
61 protected:
62 bool InitVideo() override;
63
65
66 private:
67 Q_DISABLE_COPY(MythPlayerVideoUI)
68
69 QMutex m_decoderCallbackLock;
70 QVector<DecoderCallback> m_decoderCallbacks;
71 MythVideoColourState m_colourState;
72 MythInteropGPU::InteropMap m_interopTypes;
73};
74
75#endif
DecoderCallback()=default
void(*)(void *, void *, void *) Callback
DecoderCallback(QString Debug, Callback Function, QAtomicInt *Ready, void *Opaque1, void *Opaque2, void *Opaque3)
QAtomicInt * m_ready
std::map< VideoFrameType, InteropTypes > InteropMap
DetectLetterbox m_detectLetterBox
void VideoColourStateChanged(const MythVideoColourState &ColourState)
~MythPlayerVideoUI() override=default
void RefreshVideoState()
virtual bool InitVideo(void)
Definition: mythplayer.cpp:270
Control TV playback.
Definition: tv_play.h:156
PlayerFlags
Definition: mythplayer.h:65
#define MTV_PUBLIC
Definition: mythtvexp.h:15
STL namespace.
Mode
Definition: synaesthesia.h:23
AdjustFillMode
Definition: videoouttypes.h:72
@ kAdjustFill_Toggle
Definition: videoouttypes.h:73
PictureAttributeSupported
PictureAttribute