MythTV  master
videoout_nullvaapi.h
Go to the documentation of this file.
1 #ifndef VIDEOOUT_NULLVAAPI_H
2 #define VIDEOOUT_NULLVAAPI_H
3 
4 #include "videooutbase.h"
5 
6 class VAAPIContext;
7 
9 {
10  public:
11  static void GetRenderOptions(render_opts &opts);
12  static QStringList GetAllowedRenderers(MythCodecID myth_codec_id);
15 
16  void* GetDecoderContext(unsigned char* buf, uint8_t*& id) override; // VideoOutput
17  bool Init(const QSize &video_dim_buf,
18  const QSize &video_dim_disp,
19  float aspect, WId winid,
20  const QRect &win_rect, MythCodecID codec_id) override; // VideoOutput
21  bool InputChanged(const QSize &video_dim_buf,
22  const QSize &video_dim_disp,
23  float aspect,
24  MythCodecID av_codec_id,
25  void *codec_private,
26  bool &aspect_only) override; // VideoOutput
27 
28  bool SetupDeinterlace(bool, const QString & = "") override // VideoOutput
29  { return false; }
30  bool SetDeinterlacingEnabled(bool) override // VideoOutput
31  { return false; }
32  bool ApproveDeintFilter(const QString&) const override // VideoOutput
33  { return false; }
34  void ReleaseFrame(VideoFrame *frame) override; // VideoOutput
36  FilterChain *,
37  const PIPMap &,
38  FrameScanType) override {;} // VideoOutput
40  FrameScanType, OSD *) override {;} // VideoOutput
41  void Show(FrameScanType ) override {;} // VideoOutput
42 
43  void Zoom(ZoomDirection) override {;} // VideoOutput
44  void EmbedInWidget(const QRect &) override {;} // VideoOutput
45  void StopEmbedding(void) override {;} // VideoOutput
46  void DrawUnusedRects(bool = true) override {;} // VideoOutput
47  void UpdatePauseFrame(int64_t &) override {;} // VideoOutput
48  void MoveResizeWindow(QRect ) override {;} // VideoOutput
49  bool CanVisualise(AudioPlayer *, MythRender *) override // VideoOutput
50  { return false; }
52  const QString &) override // VideoOutput
53  { return false; }
54  MythPainter *GetOSDPainter(void) override // VideoOutput
55  { return nullptr; }
56  VideoFrame *GetLastDecodedFrame(void) override; // VideoOutput
57  VideoFrame *GetLastShownFrame(void) override; // VideoOutput
58  void DoneDisplayingFrame(VideoFrame *frame) override; // VideoOutput
59 
60  private:
61  void TearDown(void);
62  bool CreateVAAPIContext(QSize size);
63  void DeleteVAAPIContext(void);
64  bool InitBuffers(void);
65  void DeleteBuffers(void);
66  void DiscardFrame(VideoFrame*) override; // VideoOutput
67 
68  private:
70  QMutex m_lock;
72 };
73 
74 #endif // VIDEOOUT_NULLVAAPI_H
MythPainter * GetOSDPainter(void) override
bool CreateVAAPIContext(QSize size)
QMap< MythPlayer *, PIPLocation > PIPMap
Definition: videooutbase.h:37
void Show(FrameScanType) override
MythCodecID
Definition: mythcodecid.h:10
bool SetupVisualisation(AudioPlayer *, MythRender *, const QString &) override
void Zoom(ZoomDirection) override
Sets up zooming into to different parts of the video, the zoom is actually applied in MoveResize().
FrameScanType
Definition: videoouttypes.h:80
void DoneDisplayingFrame(VideoFrame *frame) override
Releases frame returned from GetLastShownFrame() onto the queue of frames ready for decoding onto.
bool ApproveDeintFilter(const QString &) const override
Approves bobdeint filter for XVideo and otherwise defers to VideoOutput::ApproveDeintFilter(const QSt...
bool CanVisualise(AudioPlayer *, MythRender *) override
bool Init(const QSize &video_dim_buf, const QSize &video_dim_disp, float aspect, WId winid, const QRect &win_rect, MythCodecID codec_id) override
Performs most of the initialization for VideoOutput.
This class serves as the base class for all video output methods.
Definition: videooutbase.h:46
static QStringList GetAllowedRenderers(MythCodecID myth_codec_id)
void UpdatePauseFrame(int64_t &) override
Updates frame displayed when video is paused.
VideoBuffers * m_shadowBuffers
static void GetRenderOptions(render_opts &opts)
void StopEmbedding(void) override
Tells video output to stop embedding video in an existing window.
VideoFrame * GetLastShownFrame(void) override
Returns frame from the head of the ready to be displayed queue, if StartDisplayingFrame has been call...
void * GetDecoderContext(unsigned char *buf, uint8_t *&id) override
bool SetDeinterlacingEnabled(bool) override
Attempts to enable/disable deinterlacing using existing deinterlace method when enabling.
void DrawUnusedRects(bool=true) override
Draws non-video portions of the screen.
void ProcessFrame(VideoFrame *, OSD *, FilterChain *, const PIPMap &, FrameScanType) override
VideoFrame * GetLastDecodedFrame(void) override
bool InputChanged(const QSize &video_dim_buf, const QSize &video_dim_disp, float aspect, MythCodecID av_codec_id, void *codec_private, bool &aspect_only) override
Tells video output to discard decoded frames and wait for new ones.
void EmbedInWidget(const QRect &) override
Tells video output to embed video in an existing window.
void ReleaseFrame(VideoFrame *frame) override
Releases a frame from the ready for decoding queue onto the queue of frames ready for display.
Definition: osd.h:132
void DiscardFrame(VideoFrame *) override
Releases frame from any queue onto the queue of frames ready for decoding onto.
void PrepareFrame(VideoFrame *, FrameScanType, OSD *) override
This class creates tracks the state of the buffers used by various VideoOutput derived classes.
Definition: videobuffers.h:61
bool SetupDeinterlace(bool, const QString &="") override
Attempts to enable or disable deinterlacing.
ZoomDirection
Definition: videoouttypes.h:28
void MoveResizeWindow(QRect) override