VideoOutputOpenGL Class Reference

#include <videoout_opengl.h>

Inheritance diagram for VideoOutputOpenGL:
VideoOutput VideoOutputOpenGLVAAPI

List of all members.

Public Member Functions

 VideoOutputOpenGL (const QString &profile=QString())
virtual ~VideoOutputOpenGL ()
virtual bool Init (int width, int height, float aspect, WId winid, const QRect &win_rect, MythCodecID codec_id)
virtual void SetProfile (void)
virtual void TearDown (void)
void PrepareFrame (VideoFrame *buffer, FrameScanType, OSD *osd)
virtual void ProcessFrame (VideoFrame *frame, OSD *osd, FilterChain *filterList, const PIPMap &pipPlayers, FrameScanType scan)
virtual void Show (FrameScanType)
virtual bool InputChanged (const QSize &input_size, float aspect, MythCodecID av_codec_id, void *codec_private, bool &aspect_only)
 Tells video output to discard decoded frames and wait for new ones.
virtual void UpdatePauseFrame (int64_t &disp_timecode)
 Updates frame displayed when video is paused.
virtual void DrawUnusedRects (bool)
 Draws non-video portions of the screen.
void Zoom (ZoomDirection direction)
 Sets up zooming into to different parts of the video, the zoom is actually applied in MoveResize().
void MoveResize (void)
 performs all the calculations for video framing and any resizing.
virtual int SetPictureAttribute (PictureAttribute attribute, int newValue)
 Sets a specified picture attribute.
virtual void InitPictureAttributes (void)
void EmbedInWidget (const QRect &rect)
 Tells video output to embed video in an existing window.
void StopEmbedding (void)
 Tells video output to stop embedding video in an existing window.
virtual bool SetDeinterlacingEnabled (bool)
 Attempts to enable/disable deinterlacing using existing deinterlace method when enabling.
virtual bool SetupDeinterlace (bool i, const QString &ovrf="")
 Attempts to enable or disable deinterlacing.
void ShowPIP (VideoFrame *frame, MythPlayer *pipplayer, PIPLocation loc)
 Composites PiP image onto a video frame.
void MoveResizeWindow (QRect new_rect)
virtual void RemovePIP (MythPlayer *pipplayer)
virtual bool IsPIPSupported (void) const
virtual bool hasFullScreenOSD (void) const
virtual bool ApproveDeintFilter (const QString &filtername) const
 Approves bobdeint filter for XVideo and otherwise defers to VideoOutput::ApproveDeintFilter(const QString&).
virtual MythPainterGetOSDPainter (void)
virtual bool CanVisualise (AudioPlayer *audio, MythRender *render)
virtual bool SetupVisualisation (AudioPlayer *audio, MythRender *render, const QString &name)
virtual QStringList GetVisualiserList (void)
virtual bool StereoscopicModesAllowed (void) const

Static Public Member Functions

static void GetRenderOptions (render_opts &opts, QStringList &cpudeints)
static QStringList GetAllowedRenderers (MythCodecID myth_codec_id, const QSize &video_dim)

Protected Member Functions

bool CreateCPUResources (void)
bool CreateGPUResources (void)
bool CreateVideoResources (void)
void DestroyCPUResources (void)
void DestroyVideoResources (void)
void DestroyGPUResources (void)
virtual bool CreateBuffers (void)
bool CreatePauseFrame (void)
bool SetupContext (void)
bool SetupOpenGL (void)
void InitOSD (void)

Protected Attributes

QMutex gl_context_lock
MythRenderOpenGLgl_context
bool gl_valid
OpenGLVideogl_videochain
QMap< MythPlayer *, OpenGLVideo * > gl_pipchains
QMap< MythPlayer *, boolgl_pip_ready
OpenGLVideogl_pipchain_active
WId gl_parent_win
VideoFrame av_pause_frame
MythOpenGLPaintergl_painter
bool gl_created_painter
bool gl_opengl_lite

Detailed Description

Definition at line 9 of file videoout_opengl.h.


Constructor & Destructor Documentation

VideoOutputOpenGL::VideoOutputOpenGL ( const QString &  profile = QString()  ) 

Definition at line 54 of file videoout_opengl.cpp.

VideoOutputOpenGL::~VideoOutputOpenGL (  )  [virtual]

Definition at line 71 of file videoout_opengl.cpp.


Member Function Documentation

void VideoOutputOpenGL::GetRenderOptions ( render_opts opts,
QStringList &  cpudeints 
) [static]

Definition at line 13 of file videoout_opengl.cpp.

bool VideoOutputOpenGL::Init ( int  width,
int  height,
float  aspect,
WId  winid,
const QRect &  win_rect,
MythCodecID  codec_id 
) [virtual]

Reimplemented from VideoOutput.

Reimplemented in VideoOutputOpenGLVAAPI.

Definition at line 177 of file videoout_opengl.cpp.

Referenced by InputChanged().

void VideoOutputOpenGL::SetProfile ( void   )  [virtual]

Reimplemented in VideoOutputOpenGLVAAPI.

Definition at line 208 of file videoout_opengl.cpp.

Referenced by Init().

void VideoOutputOpenGL::TearDown ( void   )  [virtual]

Reimplemented in VideoOutputOpenGLVAAPI.

Definition at line 82 of file videoout_opengl.cpp.

Referenced by Init(), InputChanged(), and ~VideoOutputOpenGL().

void VideoOutputOpenGL::PrepareFrame ( VideoFrame buffer,
FrameScanType  t,
OSD osd 
) [virtual]

Implements VideoOutput.

Definition at line 505 of file videoout_opengl.cpp.

void VideoOutputOpenGL::ProcessFrame ( VideoFrame frame,
OSD osd,
FilterChain filterList,
const PIPMap pipPlayers,
FrameScanType  scan 
) [virtual]

Implements VideoOutput.

Reimplemented in VideoOutputOpenGLVAAPI.

Definition at line 437 of file videoout_opengl.cpp.

void VideoOutputOpenGL::Show ( FrameScanType  scan  )  [virtual]

Implements VideoOutput.

Definition at line 639 of file videoout_opengl.cpp.

bool VideoOutputOpenGL::InputChanged ( const QSize &  input_size,
float  aspect,
MythCodecID  myth_codec_id,
void *  codec_private,
bool aspect_only 
) [virtual]

Tells video output to discard decoded frames and wait for new ones.

Bug:
We set the new width height and aspect ratio here, but we should do this based on the new video frames in Show().

Reimplemented from VideoOutput.

Reimplemented in VideoOutputOpenGLVAAPI.

Definition at line 217 of file videoout_opengl.cpp.

Referenced by VideoOutputOpenGLVAAPI::InputChanged().

void VideoOutputOpenGL::UpdatePauseFrame ( int64_t disp_timecode  )  [virtual]

Updates frame displayed when video is paused.

Implements VideoOutput.

Reimplemented in VideoOutputOpenGLVAAPI.

Definition at line 686 of file videoout_opengl.cpp.

virtual void VideoOutputOpenGL::DrawUnusedRects ( bool  sync  )  [inline, virtual]

Draws non-video portions of the screen.

Parameters:
sync if set any queued up draws are sent immediately to the graphics context and we block until they have completed.

Implements VideoOutput.

Definition at line 31 of file videoout_opengl.h.

void VideoOutputOpenGL::Zoom ( ZoomDirection  direction  )  [virtual]

Sets up zooming into to different parts of the video, the zoom is actually applied in MoveResize().

See also:
ToggleAdjustFill(AdjustFillMode)

Reimplemented from VideoOutput.

Definition at line 667 of file videoout_opengl.cpp.

void VideoOutputOpenGL::MoveResize ( void   )  [virtual]

performs all the calculations for video framing and any resizing.

First we apply playback over/underscanning and offsetting, then we letterbox settings, and finally we apply manual scale & move properties for "Zoom Mode".

See also:
Zoom(ZoomDirection), ToggleAdjustFill(int)

Reimplemented from VideoOutput.

Definition at line 674 of file videoout_opengl.cpp.

Referenced by CreateVideoResources(), EmbedInWidget(), VideoOutputOpenGLVAAPI::InputChanged(), InputChanged(), SetDeinterlacingEnabled(), SetupDeinterlace(), StopEmbedding(), and Zoom().

int VideoOutputOpenGL::SetPictureAttribute ( PictureAttribute  attribute,
int  newValue 
) [virtual]

Sets a specified picture attribute.

Parameters:
attribute Picture attribute to set.
newValue Value to set attribute to.
Returns:
Set value if it succeeds, -1 if it does not.

Reimplemented from VideoOutput.

Reimplemented in VideoOutputOpenGLVAAPI.

Definition at line 710 of file videoout_opengl.cpp.

void VideoOutputOpenGL::InitPictureAttributes ( void   )  [virtual]

Reimplemented from VideoOutput.

Reimplemented in VideoOutputOpenGLVAAPI.

Definition at line 697 of file videoout_opengl.cpp.

Referenced by Init().

QStringList VideoOutputOpenGL::GetAllowedRenderers ( MythCodecID  myth_codec_id,
const QSize &  video_dim 
) [static]

Reimplemented in VideoOutputOpenGLVAAPI.

Definition at line 652 of file videoout_opengl.cpp.

Referenced by VideoOutput::Create().

void VideoOutputOpenGL::EmbedInWidget ( const QRect &  rect  )  [virtual]

Tells video output to embed video in an existing window.

See also:
StopEmbedding()

Reimplemented from VideoOutput.

Definition at line 934 of file videoout_opengl.cpp.

Referenced by VideoOutputOpenGLVAAPI::InputChanged(), and InputChanged().

void VideoOutputOpenGL::StopEmbedding ( void   )  [virtual]

Tells video output to stop embedding video in an existing window.

See also:
EmbedInWidget(const QRect&)

Reimplemented from VideoOutput.

Definition at line 942 of file videoout_opengl.cpp.

Referenced by VideoOutputOpenGLVAAPI::InputChanged(), and InputChanged().

bool VideoOutputOpenGL::SetDeinterlacingEnabled ( bool  enable  )  [virtual]

Attempts to enable/disable deinterlacing using existing deinterlace method when enabling.

Reimplemented from VideoOutput.

Reimplemented in VideoOutputOpenGLVAAPI.

Definition at line 782 of file videoout_opengl.cpp.

Referenced by SetupOpenGL().

bool VideoOutputOpenGL::SetupDeinterlace ( bool  i,
const QString &  ovrf = "" 
) [virtual]

Attempts to enable or disable deinterlacing.

Returns:
true if successful, false otherwise.
Parameters:
overridefilter optional, explicitly use this nondefault deint filter

Reimplemented from VideoOutput.

Reimplemented in VideoOutputOpenGLVAAPI.

Definition at line 719 of file videoout_opengl.cpp.

Referenced by SetDeinterlacingEnabled().

void VideoOutputOpenGL::ShowPIP ( VideoFrame frame,
MythPlayer pipplayer,
PIPLocation  loc 
) [virtual]

Composites PiP image onto a video frame.

Note: This only works with memory backed VideoFrames.

Parameters:
frame Frame to composite PiP onto.
pipplayer Picture-in-Picture Player.
loc Location of this PiP on the frame.

Reimplemented from VideoOutput.

Definition at line 818 of file videoout_opengl.cpp.

void VideoOutputOpenGL::MoveResizeWindow ( QRect  new_rect  )  [virtual]

Implements VideoOutput.

Definition at line 928 of file videoout_opengl.cpp.

void VideoOutputOpenGL::RemovePIP ( MythPlayer pipplayer  )  [virtual]

Reimplemented from VideoOutput.

Definition at line 914 of file videoout_opengl.cpp.

virtual bool VideoOutputOpenGL::IsPIPSupported ( void   )  const [inline, virtual]

Reimplemented from VideoOutput.

Definition at line 48 of file videoout_opengl.h.

virtual bool VideoOutputOpenGL::hasFullScreenOSD ( void   )  const [inline, virtual]

Reimplemented from VideoOutput.

Definition at line 49 of file videoout_opengl.h.

bool VideoOutputOpenGL::ApproveDeintFilter ( const QString &  filtername  )  const [virtual]

Approves bobdeint filter for XVideo and otherwise defers to VideoOutput::ApproveDeintFilter(const QString&).

Approves all deinterlace filters, except ones which must be supported by a specific video output class.

Returns:
whether current video output supports a specific filter.

Reimplemented from VideoOutput.

Reimplemented in VideoOutputOpenGLVAAPI.

Definition at line 951 of file videoout_opengl.cpp.

virtual MythPainter* VideoOutputOpenGL::GetOSDPainter ( void   )  [inline, virtual]

Reimplemented from VideoOutput.

Definition at line 51 of file videoout_opengl.h.

virtual bool VideoOutputOpenGL::CanVisualise ( AudioPlayer audio,
MythRender render 
) [inline, virtual]

Reimplemented from VideoOutput.

Definition at line 53 of file videoout_opengl.h.

virtual bool VideoOutputOpenGL::SetupVisualisation ( AudioPlayer audio,
MythRender render,
const QString &  name 
) [inline, virtual]

Reimplemented from VideoOutput.

Definition at line 55 of file videoout_opengl.h.

QStringList VideoOutputOpenGL::GetVisualiserList ( void   )  [virtual]

Reimplemented from VideoOutput.

Definition at line 962 of file videoout_opengl.cpp.

virtual bool VideoOutputOpenGL::StereoscopicModesAllowed ( void   )  const [inline, virtual]

Reimplemented from VideoOutput.

Definition at line 60 of file videoout_opengl.h.

bool VideoOutputOpenGL::CreateCPUResources ( void   )  [protected]

Definition at line 91 of file videoout_opengl.cpp.

Referenced by Init().

bool VideoOutputOpenGL::CreateGPUResources ( void   )  [protected]

Definition at line 98 of file videoout_opengl.cpp.

Referenced by Init().

bool VideoOutputOpenGL::CreateVideoResources ( void   )  [protected]

Definition at line 107 of file videoout_opengl.cpp.

Referenced by Init(), and ProcessFrame().

void VideoOutputOpenGL::DestroyCPUResources ( void   )  [protected]
void VideoOutputOpenGL::DestroyVideoResources ( void   )  [protected]

Definition at line 153 of file videoout_opengl.cpp.

Referenced by ProcessFrame(), and TearDown().

void VideoOutputOpenGL::DestroyGPUResources ( void   )  [protected]

Definition at line 134 of file videoout_opengl.cpp.

Referenced by TearDown().

bool VideoOutputOpenGL::CreateBuffers ( void   )  [protected, virtual]

Reimplemented in VideoOutputOpenGLVAAPI.

Definition at line 411 of file videoout_opengl.cpp.

Referenced by CreateCPUResources().

bool VideoOutputOpenGL::CreatePauseFrame ( void   )  [protected]

Definition at line 420 of file videoout_opengl.cpp.

Referenced by CreateCPUResources().

bool VideoOutputOpenGL::SetupContext ( void   )  [protected]

Definition at line 286 of file videoout_opengl.cpp.

Referenced by CreateGPUResources().

bool VideoOutputOpenGL::SetupOpenGL ( void   )  [protected]

Definition at line 333 of file videoout_opengl.cpp.

Referenced by CreateVideoResources().

void VideoOutputOpenGL::InitOSD ( void   )  [protected]

Definition at line 381 of file videoout_opengl.cpp.

Referenced by CreateGPUResources().


Member Data Documentation

Definition at line 77 of file videoout_opengl.h.

Referenced by Init(), and ProcessFrame().

Definition at line 79 of file videoout_opengl.h.

Referenced by DestroyVideoResources(), PrepareFrame(), RemovePIP(), and ShowPIP().

Definition at line 80 of file videoout_opengl.h.

Referenced by DestroyVideoResources(), PrepareFrame(), RemovePIP(), and ShowPIP().

Definition at line 81 of file videoout_opengl.h.

Referenced by PrepareFrame(), ProcessFrame(), and ShowPIP().

Definition at line 85 of file videoout_opengl.h.

Referenced by DestroyGPUResources(), GetOSDPainter(), InitOSD(), and PrepareFrame().

Definition at line 86 of file videoout_opengl.h.

Referenced by DestroyGPUResources(), and InitOSD().


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends
Generated on Mon May 28 06:42:32 2012 for MythTV by  doxygen 1.6.3