MythTV  master
videoout_openglvaapi.h
Go to the documentation of this file.
1 #ifndef VIDEOOUTPUTOPENGLVAAPI_H
2 #define VIDEOOUTPUTOPENGLVAAPI_H
3 
4 #include "videoout_opengl.h"
5 
6 class VAAPIContext;
7 
9 {
10  public:
11  static void GetRenderOptions(render_opts &opts);
12  static bool AllowVAAPIDisplay();
13 
16 
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; // VideoOutputOpenGL
21  bool CreateVAAPIContext(QSize size);
22  void DeleteVAAPIContext(void);
23  bool CreateBuffers(void) override; // VideoOutputOpenGL
24  void* GetDecoderContext(unsigned char* buf, uint8_t*& id) override; // VideoOutput
25  uint8_t* GetSurfaceIDPointer(void* buf);
26  void SetProfile(void) override; // VideoOutputOpenGL
27  void TearDown(void) override; // VideoOutputOpenGL
28  bool InputChanged(const QSize &video_dim_buf,
29  const QSize &video_dim_disp,
30  float aspect,
31  MythCodecID av_codec_id, void *codec_private,
32  bool &aspect_only) override; // VideoOutputOpenGL
33  void UpdatePauseFrame(int64_t &disp_timecode) override; // VideoOutputOpenGL
34  void PrepareFrame(VideoFrame *frame, FrameScanType scan, OSD *osd) override; // VideoOutputOpenGL
35  bool ApproveDeintFilter(const QString& filtername) const override; // VideoOutputOpenGL
36  bool SetDeinterlacingEnabled(bool enable) override; // VideoOutputOpenGL
37  bool SetupDeinterlace(bool interlaced, const QString& overridefilter="") override; // VideoOutputOpenGL
38  void InitPictureAttributes(void) override; // VideoOutputOpenGL
39  int SetPictureAttribute(PictureAttribute attribute, int newValue) override; // VideoOutputOpenGL
40 
41  static QStringList GetAllowedRenderers(MythCodecID myth_codec_id,
42  const QSize &video_dim);
43  static MythCodecID GetBestSupportedCodec(uint width, uint height,
44  const QString &decoder,
45  uint stream_type,
46  bool no_acceleration,
47  AVPixelFormat &pix_fmt);
48 
49  private:
52 };
53 #endif // VIDEOOUTPUTOPENGLVAAPI_H
54 
void TearDown(void) override
int SetPictureAttribute(PictureAttribute attribute, int newValue) override
Sets a specified picture attribute.
static MythCodecID GetBestSupportedCodec(uint width, uint height, const QString &decoder, uint stream_type, bool no_acceleration, AVPixelFormat &pix_fmt)
void PrepareFrame(VideoFrame *frame, FrameScanType scan, OSD *osd) override
def scan(profile, smoonURL, gate)
Definition: scan.py:43
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.
bool SetupDeinterlace(bool interlaced, const QString &overridefilter="") override
Attempts to enable or disable deinterlacing.
MythCodecID
Definition: mythcodecid.h:10
uint8_t * GetSurfaceIDPointer(void *buf)
bool CreateVAAPIContext(QSize size)
void UpdatePauseFrame(int64_t &disp_timecode) override
Updates frame displayed when video is paused.
FrameScanType
Definition: videoouttypes.h:80
unsigned int uint
Definition: compat.h:140
static void GetRenderOptions(render_opts &opts)
bool CreateBuffers(void) override
PictureAttribute
Definition: videoouttypes.h:89
bool ApproveDeintFilter(const QString &filtername) const override
Approves bobdeint filter for XVideo and otherwise defers to VideoOutput::ApproveDeintFilter(const QSt...
void InitPictureAttributes(void) override
bool SetDeinterlacingEnabled(bool enable) override
Attempts to enable/disable deinterlacing using existing deinterlace method when enabling.
void * GetDecoderContext(unsigned char *buf, uint8_t *&id) override
Definition: osd.h:132
void SetProfile(void) override
static QStringList GetAllowedRenderers(MythCodecID myth_codec_id, const QSize &video_dim)
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.