MythTV  0.27pre
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Groups Pages
Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
VideoOutput Class Reference

This class serves as the base class for all video output methods. More...

#include <videooutbase.h>

Inheritance diagram for VideoOutput:
Inheritance graph
[legend]
Collaboration diagram for VideoOutput:
Collaboration graph
[legend]

Public Member Functions

 VideoOutput ()
 This constructor for VideoOutput must be followed by an Init(int,int,float,WId,int,int,int,int,WId) call.
virtual ~VideoOutput ()
 Shuts down video output.
virtual bool Init (const QSize &video_dim_buf, const QSize &video_dim_disp, float aspect, WId winid, const QRect &win_rect, MythCodecID codec_id)
 Performs most of the initialization for VideoOutput.
virtual void InitOSD (OSD *osd)
virtual void SetVideoFrameRate (float)
virtual bool IsPreferredRenderer (QSize video_size)
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.
virtual void FallbackDeint (void)
 Fallback to non-frame-rate-doubling deinterlacing method.
virtual void BestDeint (void)
 Change to the best deinterlacing method.
virtual bool NeedsDoubleFramerate (void) const
 Should Prepare() and Show() be called twice for every ProcessFrame().
virtual bool IsBobDeint (void) const
virtual bool IsExtraProcessingRequired (void) const
 Should Prepare() and Show() and ProcessFrame be called twice for every Frameloop().
virtual bool ApproveDeintFilter (const QString &filtername) const
 Approves bobdeint filter for XVideo and otherwise defers to VideoOutput::ApproveDeintFilter(const QString&).
void GetDeinterlacers (QStringList &deinterlacers)
QString GetDeinterlacer (void)
virtual void PrepareFrame (VideoFrame *buffer, FrameScanType, OSD *osd)=0
virtual void Show (FrameScanType)=0
virtual void WindowResized (const QSize &new_size)
virtual bool InputChanged (const QSize &video_dim_buf, const QSize &video_dim_disp, float aspect, MythCodecID myth_codec_id, void *codec_private, bool &aspect_changed)
 Tells video output to discard decoded frames and wait for new ones.
virtual void VideoAspectRatioChanged (float aspect)
 Calls SetVideoAspectRatio(float aspect), then calls MoveResize() to apply changes.
virtual void ResizeDisplayWindow (const QRect &, bool)
 Resize Display Window.
virtual void EmbedInWidget (const QRect &rect)
 Tells video output to embed video in an existing window.
virtual void StopEmbedding (void)
 Tells video output to stop embedding video in an existing window.
virtual void ResizeForGui (void)
 If we are using DisplayRes support, return the screen size and refresh rate to those used for the GUI.
virtual void ResizeForVideo (uint width=0, uint height=0)
 Sets display parameters based on video resolution.
virtual void MoveResizeWindow (QRect new_rect)=0
virtual void MoveResize (void)
 performs all the calculations for video framing and any resizing.
virtual void Zoom (ZoomDirection direction)
 Sets up zooming into to different parts of the video, the zoom is actually applied in MoveResize().
virtual void GetOSDBounds (QRect &total, QRect &visible, float &visibleAspect, float &fontScale, float themeAspect) const
QRect GetMHEGBounds (void)
virtual void DrawSlice (VideoFrame *frame, int x, int y, int w, int h)
 Informs video output of new data for frame, used for hardware accelerated decoding.
virtual void DrawUnusedRects (bool sync=true)=0
 Draws non-video portions of the screen.
virtual float GetDisplayAspect (void) const
 Returns current display aspect ratio.
AspectOverrideMode GetAspectOverride (void) const
 Returns current aspect override mode.
virtual void ToggleAspectOverride (AspectOverrideMode aspectOverrideMode=kAspect_Toggle)
 Enforce different aspect ration than detected, then calls VideoAspectRatioChanged(float) to apply them.
AdjustFillMode GetAdjustFill (void) const
 Returns current adjust fill mode.
virtual void ToggleAdjustFill (AdjustFillMode adjustFillMode=kAdjustFill_Toggle)
 Sets up letterboxing for various standard video frame and monitor dimensions, then calls MoveResize() to apply them.
QString GetZoomString (void) const
virtual void ProcessFrame (VideoFrame *frame, OSD *osd, FilterChain *filterList, const PIPMap &pipPlayers, FrameScanType scan=kScan_Ignore)=0
void CropToDisplay (VideoFrame *frame)
void ExposeEvent (void)
 Tells video output that a full repaint is needed.
PictureAttributeSupported GetSupportedPictureAttributes (void)
int ChangePictureAttribute (PictureAttribute, bool direction)
virtual int SetPictureAttribute (PictureAttribute, int newValue)
 Sets a specified picture attribute.
int GetPictureAttribute (PictureAttribute)
virtual void InitPictureAttributes (void)
bool AllowPreviewEPG (void) const
virtual bool IsPIPSupported (void) const
virtual bool IsPBPSupported (void) const
virtual bool NeedExtraAudioDecode (void) const
virtual bool hasHWAcceleration (void) const
 Return true if HW Acceleration is running.
virtual voidGetDecoderContext (unsigned char *buf, uint8_t *&id)
virtual void SetFramesPlayed (long long fp)
 Sets the number of frames played.
virtual long long GetFramesPlayed (void)
 Returns the number of frames played.
bool IsErrored () const
 Returns true if a fatal error has been encountered.
VideoErrorState GetError (void) const
 Returns error type.
void SetPrebuffering (bool normal)
 Sets whether to use a normal number of buffers or fewer buffers.
virtual void ClearAfterSeek (void)
 Tells video output to toss decoded buffers due to a seek.
virtual int ValidVideoFrames (void) const
 Returns number of frames that are fully decoded.
int FreeVideoFrames (void)
 Returns number of frames available for decoding onto.
bool EnoughFreeFrames (void)
 Returns true iff enough frames are available to decode onto.
bool EnoughDecodedFrames (void)
 Returns true iff there are plenty of decoded frames ready for display.
bool EnoughPrebufferedFrames (void)
 Returns true iff we have at least the minimum number of decoded frames ready for display.
bool IsEmbedding (void)
 Returns if videooutput is embedding.
virtual VideoFrameGetNextFreeFrame (void)
 Blocks until it is possible to return a frame for decoding onto.
virtual void ReleaseFrame (VideoFrame *frame)
 Releases a frame from the ready for decoding queue onto the queue of frames ready for display.
virtual void DeLimboFrame (VideoFrame *frame)
 Releases a frame for reuse if it is in limbo.
virtual void StartDisplayingFrame (void)
 Tell GetLastShownFrame() to return the next frame from the head of the queue of frames to display.
virtual void DoneDisplayingFrame (VideoFrame *frame)
 Releases frame returned from GetLastShownFrame() onto the queue of frames ready for decoding onto.
virtual void DiscardFrame (VideoFrame *frame)
 Releases frame from any queue onto the queue of frames ready for decoding onto.
virtual void DiscardFrames (bool kf)
 Releases all frames not being actively displayed from any queue onto the queue of frames ready for decoding onto.
virtual void ClearDummyFrame (VideoFrame *frame)
 Clears the frame to black.
virtual void CheckFrameStates (void)
virtual VideoFrameGetLastDecodedFrame (void)
virtual VideoFrameGetLastShownFrame (void)
 Returns frame from the head of the ready to be displayed queue, if StartDisplayingFrame has been called.
QString GetFrameStatus (void) const
 Returns string with status of each frame for debugging.
virtual void UpdatePauseFrame (int64_t &disp_timecode)=0
 Updates frame displayed when video is paused.
void SetVideoResize (const QRect &videoRect)
 Tells the player to resize the video frame (used for ITV)
void SetVideoScalingAllowed (bool change)
 Disable or enable underscan/overscan.
bool IsVideoScalingAllowed (void) const
 check if video underscan/overscan is allowed
virtual void SetVideoFlip (void)
 Tells the player to flip the video frames for proper display.
virtual QRect GetPIPRect (PIPLocation location, MythPlayer *pipplayer=NULL, bool do_pixel_adj=true) const
 returns QRect of PIP based on PIPLocation
virtual void RemovePIP (MythPlayer *pipplayer)
virtual void SetPIPState (PIPState setting)
virtual QString GetOSDRenderer (void) const
 \ brief return OSD renderer type for this videoOutput
virtual MythPainterGetOSDPainter (void)
virtual bool GetScreenShot (int width=0, int height=0, QString filename="")
QString GetFilters (void) const
QRect GetImageRect (const QRect &rect, QRect *display=NULL)
 translates caption/dvd button rectangle into 'screen' space
QRect GetSafeRect (void)
 Returns a QRect describing an area of the screen on which it is 'safe' to render the On Screen Display.
bool EnableVisualisation (AudioPlayer *audio, bool enable, const QString &name=QString(""))
virtual bool CanVisualise (AudioPlayer *audio, MythRender *render)
virtual bool SetupVisualisation (AudioPlayer *audio, MythRender *render, const QString &name)
VideoVisualGetVisualisation (void)
QString GetVisualiserName (void)
virtual QStringList GetVisualiserList (void)
void DestroyVisualisation (void)
virtual bool StereoscopicModesAllowed (void) const
void SetStereoscopicMode (StereoscopicMode mode)
StereoscopicMode GetStereoscopicMode (void) const

Static Public Member Functions

static void GetRenderOptions (render_opts &opts)
static VideoOutputCreate (const QString &decoder, MythCodecID codec_id, void *codec_priv, PIPState pipState, const QSize &video_dim_buf, const QSize &video_dim_disp, float video_aspect, QWidget *parentwidget, const QRect &embed_rect, float video_prate, uint playerFlags)
 Depending on compile-time configure settings and run-time renderer settings, create a relevant VideoOutput subclass.
static int CalcHueBase (const QString &adaptor_name)

Protected Member Functions

void InitBuffers (int numdecode, bool extra_for_pause, int need_free, int needprebuffer_normal, int needprebuffer_small, int keepprebuffer)
void InitDisplayMeasurements (uint width, uint height, bool resize)
 Init display measurements based on database settings and actual screen parameters.
virtual void ShowPIPs (VideoFrame *frame, const PIPMap &pipPlayers)
virtual void ShowPIP (VideoFrame *frame, MythPlayer *pipplayer, PIPLocation loc)
 Composites PiP image onto a video frame.
virtual bool DisplayOSD (VideoFrame *frame, OSD *osd)
 If the OSD has changed, this will convert the OSD buffer to the OSDSurface's color format.
QRect GetVisibleOSDBounds (float &, float &, float) const
 Returns visible portions of total OSD bounds.
QRect GetTotalOSDBounds (void) const
 Returns total OSD bounds.
virtual bool hasFullScreenOSD (void) const
void DoPipResize (int pipwidth, int pipheight)
 Sets up Picture in Picture image resampler.
void ShutdownPipResize (void)
 Shuts down Picture in Picture image resampler.
void ResizeVideo (VideoFrame *frame)
void DoVideoResize (const QSize &inDim, const QSize &outDim)
 Sets up Picture in Picture image resampler.
virtual void ShutdownVideoResize (void)

Static Protected Member Functions

static void CopyFrame (VideoFrame *to, const VideoFrame *from)
 Copies frame data from one VideoFrame to another.

Protected Attributes

VideoOutWindow window
QSize db_display_dim
 Screen dimensions in millimeters from DB.
VideoColourSpace videoColourSpace
AspectOverrideMode db_aspectoverride
AdjustFillMode db_adjustfill
LetterBoxColour db_letterbox_colour
QString db_deint_filtername
MythCodecID video_codec_id
VideoDisplayProfiledb_vdisp_profile
QSize pip_desired_display_size
QSize pip_display_size
QSize pip_video_size
unsigned char * pip_tmp_buf
unsigned char * pip_tmp_buf2
struct SwsContext * pip_scaling_context
VideoFrame pip_tmp_image
bool vsz_enabled
QRect vsz_desired_display_rect
QSize vsz_display_size
QSize vsz_video_size
unsigned char * vsz_tmp_buf
struct SwsContext * vsz_scale_context
bool m_deinterlacing
QString m_deintfiltername
FilterManagerm_deintFiltMan
FilterChainm_deintFilter
bool m_deinterlaceBeforeOSD
VideoBuffers vbuffers
 VideoBuffers instance used to track video output buffers.
VideoErrorState errorState
long long framesPlayed
DisplayResdisplay_res
QSize monitor_sz
QSize monitor_dim
MythYUVAPainterosd_painter
MythImageosd_image
VideoVisualm_visual
StereoscopicMode m_stereo

Detailed Description

This class serves as the base class for all video output methods.

The basic use is:

VideoOutputType type = kVideoOutput_Default;
vo = VideoOutput::InitVideoOut(type);
vo->Init(width, height, aspect ...);
// Then create two threads.
// In the decoding thread
while (decoding)
{
if (vo->WaitForAvailable(1000)
{
frame = vo->GetNextFreeFrame(); // remove frame from "available"
av_lib_process(frame); // do something to fill it.
// call DrawSlice() // if you need piecemeal processing
// by VideoOutput use DrawSlice
vo->ReleaseFrame(frame); // enqueues frame in "used" queue
}
}
// In the displaying thread
while (playing)
{
if (vo->EnoughPrebufferedFrames())
{
// Sets "Last Shown Frame" to head of "used" queue
vo->StartDisplayingFrame();
// Get pointer to "Last Shown Frame"
frame = vo->GetLastShownFrame();
// add OSD, do any filtering, etc.
vo->ProcessFrame(frame, osd, filters, pict-in-pict);
// tells show what frame to be show, do other last minute stuff
vo->PrepareFrame(frame, scan);
// here you wait until it's time to show the frame
// Show blits the last prepared frame to the screen
// as quickly as possible.
vo->Show(scan);
// remove frame from the head of "used",
// vo must get it into "available" eventually.
vo->DoneDisplayingFrame();
}
}
delete vo;

Note: Show() may be called multiple times between PrepareFrame() and DoneDisplayingFrame(). But if a frame is ever removed from available via GetNextFreeFrame(), you must either call DoneDisplayFrame() or call DiscardFrame(VideoFrame*) on it.

Note: ProcessFrame() may be called multiple times on a frame, to update an OSD for example.

The VideoBuffers class handles the buffer tracking, see it for more details on the states a buffer can take before it becomes available for reuse.

See Also
VideoBuffers, MythPlayer

Definition at line 45 of file videooutbase.h.

Constructor & Destructor Documentation

VideoOutput::VideoOutput ( )

This constructor for VideoOutput must be followed by an Init(int,int,float,WId,int,int,int,int,WId) call.

Definition at line 386 of file videooutbase.cpp.

VideoOutput::~VideoOutput ( )
virtual

Shuts down video output.

Definition at line 450 of file videooutbase.cpp.

Member Function Documentation

void VideoOutput::GetRenderOptions ( render_opts opts)
static
VideoOutput * VideoOutput::Create ( const QString &  decoder,
MythCodecID  codec_id,
void codec_priv,
PIPState  pipState,
const QSize &  video_dim_buf,
const QSize &  video_dim_disp,
float  video_aspect,
QWidget *  parentwidget,
const QRect &  embed_rect,
float  video_prate,
uint  playerFlags 
)
static

Depending on compile-time configure settings and run-time renderer settings, create a relevant VideoOutput subclass.

Returns
instance of VideoOutput if successful, NULL otherwise.

Definition at line 112 of file videooutbase.cpp.

Referenced by MythPlayer::InitVideo(), VideoOutputOpenGL::SetupContext(), and SetupVisualisation().

bool VideoOutput::Init ( const QSize &  video_dim_buf,
const QSize &  video_dim_disp,
float  aspect,
WId  winid,
const QRect &  win_rect,
MythCodecID  codec_id 
)
virtual

Performs most of the initialization for VideoOutput.

Returns
true if successful, false otherwise.

Reimplemented in VideoOutputNullVDPAU, VideoOutputXv, VideoOutputVDPAU, VideoOutputD3D, VideoOutputNullVAAPI, VideoOutputOpenGL, VideoOutputOpenGLVAAPI, VideoOutputNull, and VideoOutputQuartz.

Definition at line 478 of file videooutbase.cpp.

Referenced by Create().

void VideoOutput::InitOSD ( OSD osd)
virtual

Definition at line 509 of file videooutbase.cpp.

Referenced by MythPlayer::VideoStart().

void VideoOutput::SetVideoFrameRate ( float  playback_fps)
virtual

Reimplemented in VideoOutputQuartz.

Definition at line 536 of file videooutbase.cpp.

Referenced by MythPlayer::ChangeSpeed(), Create(), and MythPlayer::ReinitVideo().

bool VideoOutput::IsPreferredRenderer ( QSize  video_size)
virtual

Definition at line 522 of file videooutbase.cpp.

Referenced by MythPlayer::ReinitVideo().

bool VideoOutput::SetDeinterlacingEnabled ( bool  enable)
virtual

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

Reimplemented in VideoOutputNullVDPAU, VideoOutputOpenGL, VideoOutputXv, VideoOutputOpenGLVAAPI, VideoOutputNullVAAPI, and VideoOutputVDPAU.

Definition at line 547 of file videooutbase.cpp.

Referenced by MythPlayer::SetScanType().

bool VideoOutput::SetupDeinterlace ( bool  i,
const QString &  ovrf = "" 
)
virtual

Attempts to enable or disable deinterlacing.

Returns
true if successful, false otherwise.
Parameters
overridefilteroptional, explicitly use this nondefault deint filter

Reimplemented in VideoOutputNullVDPAU, VideoOutputOpenGL, VideoOutputXv, VideoOutputOpenGLVAAPI, VideoOutputVDPAU, VideoOutputNullVAAPI, and VideoOutputNull.

Definition at line 566 of file videooutbase.cpp.

Referenced by BestDeint(), FallbackDeint(), MythPlayer::ForceDeinterlacer(), SetDeinterlacingEnabled(), and MythPlayer::VideoStart().

void VideoOutput::FallbackDeint ( void  )
virtual

Fallback to non-frame-rate-doubling deinterlacing method.

Definition at line 653 of file videooutbase.cpp.

Referenced by MythPlayer::ChangeSpeed(), and MythPlayer::FallbackDeint().

void VideoOutput::BestDeint ( void  )
virtual
bool VideoOutput::NeedsDoubleFramerate ( void  ) const
virtual

Should Prepare() and Show() be called twice for every ProcessFrame().

Returns
m_deintfiltername == "bobdeint" && m_deinterlacing

Definition at line 688 of file videooutbase.cpp.

Referenced by MythPlayer::ChangeSpeed(), MythPlayer::ForceDeinterlacer(), MythPlayer::SetScanType(), and MythPlayer::VideoStart().

bool VideoOutput::IsBobDeint ( void  ) const
virtual
bool VideoOutput::IsExtraProcessingRequired ( void  ) const
virtual

Should Prepare() and Show() and ProcessFrame be called twice for every Frameloop().

All adaptive full framerate deinterlacers require an extra ProcessFrame() call.

Returns
true if deint name contains doubleprocess

Definition at line 678 of file videooutbase.cpp.

Referenced by MythPlayer::ChangeSpeed(), MythPlayer::ForceDeinterlacer(), MythPlayer::SetScanType(), and MythPlayer::VideoStart().

bool VideoOutput::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 in VideoOutputD3D, VideoOutputOpenGL, VideoOutputNullVDPAU, VideoOutputXv, VideoOutputOpenGLVAAPI, VideoOutputNullVAAPI, and VideoOutputVDPAU.

Definition at line 707 of file videooutbase.cpp.

Referenced by SetupDeinterlace().

void VideoOutput::GetDeinterlacers ( QStringList &  deinterlacers)

Definition at line 716 of file videooutbase.cpp.

Referenced by TV::PlaybackMenuInit().

QString VideoOutput::GetDeinterlacer ( void  )

Definition at line 724 of file videooutbase.cpp.

Referenced by TV::PlaybackMenuInit().

virtual void VideoOutput::PrepareFrame ( VideoFrame buffer,
FrameScanType  ,
OSD osd 
)
pure virtual
virtual void VideoOutput::Show ( FrameScanType  )
pure virtual
virtual void VideoOutput::WindowResized ( const QSize &  new_size)
inlinevirtual

Reimplemented in VideoOutputXv, and VideoOutputD3D.

Definition at line 80 of file videooutbase.h.

Referenced by MythPlayer::WindowResized().

bool VideoOutput::InputChanged ( const QSize &  video_dim_buf,
const QSize &  video_dim_disp,
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 in VideoOutputXv, VideoOutputNullVDPAU, VideoOutputVDPAU, VideoOutputD3D, VideoOutputQuartz, VideoOutputOpenGL, VideoOutputOpenGLVAAPI, VideoOutputNull, and VideoOutputNullVAAPI.

Definition at line 747 of file videooutbase.cpp.

Referenced by MythPlayer::ReinitVideo().

void VideoOutput::VideoAspectRatioChanged ( float  aspect)
virtual

Calls SetVideoAspectRatio(float aspect), then calls MoveResize() to apply changes.

Parameters
aspectvideo aspect ratio to use

Reimplemented in VideoOutputXv, VideoOutputVDPAU, and VideoOutputQuartz.

Definition at line 737 of file videooutbase.cpp.

Referenced by MythPlayer::CheckAspectRatio(), Init(), VideoOutputOpenGLVAAPI::InputChanged(), VideoOutputOpenGL::InputChanged(), and VideoOutputD3D::InputChanged().

void VideoOutput::ResizeDisplayWindow ( const QRect &  rect,
bool  save_visible_rect 
)
virtual

Resize Display Window.

Definition at line 769 of file videooutbase.cpp.

Referenced by PlayerContext::ResizePIPWindow(), and VideoOutputOpenGL::SetupOpenGL().

void VideoOutput::EmbedInWidget ( const QRect &  rect)
virtual
void VideoOutput::StopEmbedding ( void  )
virtual

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

See Also
EmbedInWidget(const QRect&)

Reimplemented in VideoOutputXv, VideoOutputNullVDPAU, VideoOutputVDPAU, VideoOutputD3D, VideoOutputOpenGL, VideoOutputNullVAAPI, VideoOutputQuartz, and VideoOutputNull.

Definition at line 788 of file videooutbase.cpp.

Referenced by Init(), VideoOutputNull::StopEmbedding(), and MythPlayer::StopEmbedding().

void VideoOutput::ResizeForGui ( void  )
virtual

If we are using DisplayRes support, return the screen size and refresh rate to those used for the GUI.

Reimplemented in VideoOutputQuartz.

Definition at line 1670 of file videooutbase.cpp.

Referenced by TV::DoEditSchedule(), and ~VideoOutput().

void VideoOutput::ResizeForVideo ( uint  width = 0,
uint  height = 0 
)
virtual

Sets display parameters based on video resolution.

If we are using DisplayRes support we use the video size to determine the desired screen size and refresh rate. If we are also not using "GuiSizeForTV" we also resize the video output window.

Parameters
width,heightResolution of the video we will be playing

Reimplemented in VideoOutputQuartz.

Definition at line 1687 of file videooutbase.cpp.

Referenced by TV::customEvent(), InitDisplayMeasurements(), and VideoOutputXv::InputChanged().

virtual void VideoOutput::MoveResizeWindow ( QRect  new_rect)
pure virtual
void VideoOutput::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 in VideoOutputXv, VideoOutputOpenGL, and VideoOutputQuartz.

Definition at line 886 of file videooutbase.cpp.

Referenced by VideoOutputVDPAU::EmbedInWidget(), VideoOutputNull::Init(), VideoOutputD3D::Init(), VideoOutputVDPAU::Init(), VideoOutputNull::InputChanged(), VideoOutputD3D::InputChanged(), VideoOutputVDPAU::InputChanged(), ResizeForVideo(), VideoOutputVDPAU::StopEmbedding(), VideoOutputNull::Zoom(), VideoOutputD3D::Zoom(), and VideoOutputVDPAU::Zoom().

void VideoOutput::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 in VideoOutputXv, VideoOutputNullVDPAU, VideoOutputVDPAU, VideoOutputD3D, VideoOutputNullVAAPI, VideoOutputQuartz, VideoOutputOpenGL, and VideoOutputNull.

Definition at line 897 of file videooutbase.cpp.

Referenced by MythPlayer::Zoom().

void VideoOutput::GetOSDBounds ( QRect &  total,
QRect &  visible,
float &  visibleAspect,
float &  fontScale,
float  themeAspect 
) const
virtual
QRect VideoOutput::GetMHEGBounds ( void  )
void VideoOutput::DrawSlice ( VideoFrame frame,
int  x,
int  y,
int  w,
int  h 
)
virtual

Informs video output of new data for frame, used for hardware accelerated decoding.

Reimplemented in VideoOutputNullVDPAU, and VideoOutputVDPAU.

Definition at line 798 of file videooutbase.cpp.

Referenced by MythPlayer::DrawSlice().

virtual void VideoOutput::DrawUnusedRects ( bool  sync = true)
pure virtual

Draws non-video portions of the screen.

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

Implemented in VideoOutputXv, VideoOutputNullVDPAU, VideoOutputVDPAU, VideoOutputQuartz, VideoOutputNullVAAPI, VideoOutputD3D, VideoOutputOpenGL, and VideoOutputNull.

float VideoOutput::GetDisplayAspect ( void  ) const
virtual

Returns current display aspect ratio.

Definition at line 1282 of file videooutbase.cpp.

Referenced by GetVisibleOSDBounds().

AspectOverrideMode VideoOutput::GetAspectOverride ( void  ) const

Returns current aspect override mode.

See Also
ToggleAspectOverride(AspectOverrideMode)

Definition at line 1272 of file videooutbase.cpp.

Referenced by MythPlayer::GetAspectOverride().

void VideoOutput::ToggleAspectOverride ( AspectOverrideMode  aspectOverrideMode = kAspect_Toggle)
virtual

Enforce different aspect ration than detected, then calls VideoAspectRatioChanged(float) to apply them.

See Also
Zoom(ZoomDirection), ToggleAdjustFill(AdjustFillMode)

Reimplemented in VideoOutputQuartz.

Definition at line 909 of file videooutbase.cpp.

Referenced by MythPlayer::ToggleAspectOverride().

AdjustFillMode VideoOutput::GetAdjustFill ( void  ) const

Returns current adjust fill mode.

See Also
ToggleAdjustFill(AdjustFillMode)

Definition at line 1277 of file videooutbase.cpp.

Referenced by MythPlayer::GetAdjustFill().

void VideoOutput::ToggleAdjustFill ( AdjustFillMode  adjustFillMode = kAdjustFill_Toggle)
virtual

Sets up letterboxing for various standard video frame and monitor dimensions, then calls MoveResize() to apply them.

See Also
Zoom(ZoomDirection), ToggleAspectOverride(AspectOverrideMode)

Reimplemented in VideoOutputQuartz.

Definition at line 921 of file videooutbase.cpp.

Referenced by MythPlayer::ToggleAdjustFill().

QString VideoOutput::GetZoomString ( void  ) const
inline

Definition at line 126 of file videooutbase.h.

Referenced by TV::ManualZoomHandleAction().

virtual void VideoOutput::ProcessFrame ( VideoFrame frame,
OSD osd,
FilterChain filterList,
const PIPMap pipPlayers,
FrameScanType  scan = kScan_Ignore 
)
pure virtual
void VideoOutput::CropToDisplay ( VideoFrame frame)
void VideoOutput::ExposeEvent ( void  )

Tells video output that a full repaint is needed.

Definition at line 1660 of file videooutbase.cpp.

Referenced by MythPlayer::ExposeEvent(), and MythPlayer::UnpauseVideo().

PictureAttributeSupported VideoOutput::GetSupportedPictureAttributes ( void  )
inline
int VideoOutput::ChangePictureAttribute ( PictureAttribute  attributeType,
bool  direction 
)

Definition at line 926 of file videooutbase.cpp.

Referenced by TV::DoChangePictureAttribute().

int VideoOutput::SetPictureAttribute ( PictureAttribute  attribute,
int  newValue 
)
virtual

Sets a specified picture attribute.

Parameters
attributePicture attribute to set.
newValueValue to set attribute to.
Returns
Set value if it succeeds, -1 if it does not.

Reimplemented in VideoOutputXv, VideoOutputVDPAU, VideoOutputOpenGLVAAPI, and VideoOutputOpenGL.

Definition at line 953 of file videooutbase.cpp.

Referenced by ChangePictureAttribute(), TV::DoChangePictureAttribute(), MythPlayer::ToggleNightMode(), and MythPlayer::ToggleStudioLevels().

int VideoOutput::GetPictureAttribute ( PictureAttribute  attributeType)
virtual void VideoOutput::InitPictureAttributes ( void  )
inlinevirtual

Reimplemented in VideoOutputXv, VideoOutputVDPAU, VideoOutputOpenGLVAAPI, and VideoOutputOpenGL.

Definition at line 143 of file videooutbase.h.

bool VideoOutput::AllowPreviewEPG ( void  ) const

Definition at line 871 of file videooutbase.cpp.

Referenced by TV::DoEditSchedule().

virtual bool VideoOutput::IsPIPSupported ( void  ) const
inlinevirtual

Reimplemented in VideoOutputXv, VideoOutputVDPAU, VideoOutputD3D, and VideoOutputOpenGL.

Definition at line 147 of file videooutbase.h.

Referenced by PlayerContext::IsPIPSupported().

virtual bool VideoOutput::IsPBPSupported ( void  ) const
inlinevirtual

Reimplemented in VideoOutputXv, and VideoOutputVDPAU.

Definition at line 148 of file videooutbase.h.

Referenced by PlayerContext::IsPBPSupported().

virtual bool VideoOutput::NeedExtraAudioDecode ( void  ) const
inlinevirtual

Reimplemented in VideoOutputXv, VideoOutputVDPAU, and VideoOutputQuartz.

Definition at line 149 of file videooutbase.h.

Referenced by MythPlayer::CheckExtraAudioDecode().

virtual bool VideoOutput::hasHWAcceleration ( void  ) const
inlinevirtual

Return true if HW Acceleration is running.

Reimplemented in VideoOutputVDPAU, and VideoOutputD3D.

Definition at line 152 of file videooutbase.h.

Referenced by TV::PlaybackMenuInit(), and MythPlayer::PrebufferEnoughFrames().

virtual void* VideoOutput::GetDecoderContext ( unsigned char *  buf,
uint8_t *&  id 
)
inlinevirtual

Reimplemented in VideoOutputD3D, VideoOutputOpenGLVAAPI, and VideoOutputNullVAAPI.

Definition at line 153 of file videooutbase.h.

Referenced by MythPlayer::GetDecoderContext().

virtual void VideoOutput::SetFramesPlayed ( long long  fp)
inlinevirtual

Sets the number of frames played.

Definition at line 156 of file videooutbase.h.

Referenced by MythPlayer::SetFramesPlayed().

virtual long long VideoOutput::GetFramesPlayed ( void  )
inlinevirtual

Returns the number of frames played.

Definition at line 158 of file videooutbase.h.

Referenced by MythPlayer::Pause(), and MythPlayer::VideoLoop().

bool VideoOutput::IsErrored ( void  ) const
inline
VideoErrorState VideoOutput::GetError ( void  ) const
inline

Returns error type.

Definition at line 163 of file videooutbase.h.

Referenced by MythPlayer::SetErrored().

void VideoOutput::SetPrebuffering ( bool  normal)
inline

Sets whether to use a normal number of buffers or fewer buffers.

Definition at line 166 of file videooutbase.h.

Referenced by MythPlayer::ChangeSpeed().

virtual void VideoOutput::ClearAfterSeek ( void  )
inlinevirtual

Tells video output to toss decoded buffers due to a seek.

Reimplemented in VideoOutputXv, VideoOutputNullVDPAU, and VideoOutputVDPAU.

Definition at line 168 of file videooutbase.h.

Referenced by MythPlayer::ClearAfterSeek().

virtual int VideoOutput::ValidVideoFrames ( void  ) const
inlinevirtual
int VideoOutput::FreeVideoFrames ( void  )
inline

Returns number of frames available for decoding onto.

Definition at line 174 of file videooutbase.h.

Referenced by MythPlayer::GetFreeVideoFrames(), MythPlayer::GetPlaybackData(), and MythDVDPlayer::VideoLoop().

bool VideoOutput::EnoughFreeFrames ( void  )
inline

Returns true iff enough frames are available to decode onto.

Definition at line 176 of file videooutbase.h.

Referenced by MythPlayer::DecoderGetFrame(), MythPlayer::PrebufferEnoughFrames(), and MythDVDPlayer::VideoLoop().

bool VideoOutput::EnoughDecodedFrames ( void  )
inline

Returns true iff there are plenty of decoded frames ready for display.

Definition at line 179 of file videooutbase.h.

Referenced by MythPlayer::PrebufferEnoughFrames().

bool VideoOutput::EnoughPrebufferedFrames ( void  )
inline

Returns true iff we have at least the minimum number of decoded frames ready for display.

Definition at line 182 of file videooutbase.h.

Referenced by MythPlayer::PrebufferEnoughFrames().

bool VideoOutput::IsEmbedding ( void  )

Returns if videooutput is embedding.

Definition at line 1655 of file videooutbase.cpp.

Referenced by MythPlayer::IsEmbedding().

virtual VideoFrame* VideoOutput::GetNextFreeFrame ( void  )
inlinevirtual

Blocks until it is possible to return a frame for decoding onto.

Definition at line 190 of file videooutbase.h.

Referenced by MythPlayer::GetNextVideoFrame().

virtual void VideoOutput::ReleaseFrame ( VideoFrame frame)
inlinevirtual

Releases a frame from the ready for decoding queue onto the queue of frames ready for display.

Reimplemented in VideoOutputNullVDPAU, and VideoOutputNullVAAPI.

Definition at line 194 of file videooutbase.h.

Referenced by MythPlayer::ReleaseNextVideoFrame().

virtual void VideoOutput::DeLimboFrame ( VideoFrame frame)
inlinevirtual

Releases a frame for reuse if it is in limbo.

Definition at line 196 of file videooutbase.h.

Referenced by MythPlayer::DeLimboFrame().

virtual void VideoOutput::StartDisplayingFrame ( void  )
inlinevirtual

Tell GetLastShownFrame() to return the next frame from the head of the queue of frames to display.

Definition at line 199 of file videooutbase.h.

Referenced by MythPlayer::DisplayNormalFrame(), MythPlayer::GetRawVideoFrame(), MythCCExtractorPlayer::OnGotNewFrame(), and VideoPerformanceTest::Test().

virtual void VideoOutput::DoneDisplayingFrame ( VideoFrame frame)
inlinevirtual

Releases frame returned from GetLastShownFrame() onto the queue of frames ready for decoding onto.

Reimplemented in VideoOutputNullVDPAU, and VideoOutputNullVAAPI.

Definition at line 202 of file videooutbase.h.

Referenced by MythPlayer::DisplayNormalFrame(), MythCCExtractorPlayer::OnGotNewFrame(), VideoPerformanceTest::Test(), and Transcode::TranscodeFile().

virtual void VideoOutput::DiscardFrame ( VideoFrame frame)
inlinevirtual

Releases frame from any queue onto the queue of frames ready for decoding onto.

Definition at line 206 of file videooutbase.h.

Referenced by MythPlayer::DiscardVideoFrame().

virtual void VideoOutput::DiscardFrames ( bool  kf)
inlinevirtual

Releases all frames not being actively displayed from any queue onto the queue of frames ready for decoding onto.

Definition at line 209 of file videooutbase.h.

Referenced by VideoOutputNullVAAPI::DeleteBuffers(), VideoOutputOpenGL::DestroyCPUResources(), MythPlayer::DiscardVideoFrames(), and InputChanged().

void VideoOutput::ClearDummyFrame ( VideoFrame frame)
virtual

Clears the frame to black.

Subclasses may choose to mark the frame as a dummy and act appropriately

Reimplemented in VideoOutputVDPAU.

Definition at line 1311 of file videooutbase.cpp.

Referenced by MythPlayer::ClearDummyVideoFrame().

virtual void VideoOutput::CheckFrameStates ( void  )
inlinevirtual

Definition at line 213 of file videooutbase.h.

virtual VideoFrame* VideoOutput::GetLastDecodedFrame ( void  )
inlinevirtual
Bug:
not implemented correctly. vpos is not updated.

Reimplemented in VideoOutputNullVDPAU, and VideoOutputNullVAAPI.

Definition at line 216 of file videooutbase.h.

Referenced by MythPlayer::GetScreenGrabAtFrame(), VideoDecodeBuffer::run(), MythPlayer::SeekForScreenGrab(), and MythPlayer::TranscodeGetNextFrame().

virtual VideoFrame* VideoOutput::GetLastShownFrame ( void  )
inlinevirtual
QString VideoOutput::GetFrameStatus ( void  ) const
inline

Returns string with status of each frame for debugging.

Definition at line 225 of file videooutbase.h.

Referenced by MythPlayer::PrebufferEnoughFrames().

virtual void VideoOutput::UpdatePauseFrame ( int64_t &  disp_timecode)
pure virtual
void VideoOutput::SetVideoResize ( const QRect &  videoRect)

Tells the player to resize the video frame (used for ITV)

Definition at line 1320 of file videooutbase.cpp.

Referenced by InteractiveScreen::Close(), and MythPlayer::SetVideoResize().

void VideoOutput::SetVideoScalingAllowed ( bool  change)

Disable or enable underscan/overscan.

Definition at line 1339 of file videooutbase.cpp.

Referenced by Create().

bool VideoOutput::IsVideoScalingAllowed ( void  ) const

check if video underscan/overscan is allowed

Definition at line 1287 of file videooutbase.cpp.

virtual void VideoOutput::SetVideoFlip ( void  )
inlinevirtual

Tells the player to flip the video frames for proper display.

Reimplemented in VideoOutputVDPAU.

Definition at line 239 of file videooutbase.h.

Referenced by MythPlayer::InitVideo().

QRect VideoOutput::GetPIPRect ( PIPLocation  location,
MythPlayer pipplayer = NULL,
bool  do_pixel_adj = true 
) const
virtual

returns QRect of PIP based on PIPLocation

Reimplemented in VideoOutputXv.

Definition at line 974 of file videooutbase.cpp.

Referenced by VideoOutputXv::GetPIPRect(), TV::ResizePIPWindow(), VideoOutputOpenGL::ShowPIP(), VideoOutputD3D::ShowPIP(), VideoOutputVDPAU::ShowPIP(), and ShowPIP().

virtual void VideoOutput::RemovePIP ( MythPlayer pipplayer)
inlinevirtual

Reimplemented in VideoOutputD3D, and VideoOutputOpenGL.

Definition at line 245 of file videooutbase.h.

Referenced by MythPlayer::RemovePIPPlayer().

void VideoOutput::SetPIPState ( PIPState  setting)
virtual

Definition at line 1637 of file videooutbase.cpp.

Referenced by Create().

QString VideoOutput::GetOSDRenderer ( void  ) const
virtual

\ brief return OSD renderer type for this videoOutput

Definition at line 966 of file videooutbase.cpp.

virtual MythPainter* VideoOutput::GetOSDPainter ( void  )
inlinevirtual
virtual bool VideoOutput::GetScreenShot ( int  width = 0,
int  height = 0,
QString  filename = "" 
)
inlinevirtual

Reimplemented in VideoOutputVDPAU.

Definition at line 251 of file videooutbase.h.

Referenced by MythPlayer::GetScreenShot().

QString VideoOutput::GetFilters ( void  ) const
QRect VideoOutput::GetImageRect ( const QRect &  rect,
QRect *  display = NULL 
)

translates caption/dvd button rectangle into 'screen' space

Definition at line 1556 of file videooutbase.cpp.

Referenced by SubtitleScreen::AddScaledImage(), BDOverlayScreen::DisplayBDOverlay(), and SubtitleScreen::DisplayScaledAVSubtitles().

QRect VideoOutput::GetSafeRect ( void  )

Returns a QRect describing an area of the screen on which it is 'safe' to render the On Screen Display.

For 'fullscreen' OSDs this will still translate to a subset of the video frame area to ensure consistency of presentation for subtitling etc.

Definition at line 1626 of file videooutbase.cpp.

Referenced by SubtitleScreen::DisplayCC608Subtitles(), SubtitleScreen::DisplayCC708Subtitles(), SubtitleScreen::DisplayRawTextSubtitles(), SubtitleScreen::DisplayTextSubtitles(), and TeletextScreen::Pulse().

bool VideoOutput::EnableVisualisation ( AudioPlayer audio,
bool  enable,
const QString &  name = QString("") 
)

Definition at line 1449 of file videooutbase.cpp.

Referenced by MythPlayer::EnableVisualisation().

bool VideoOutput::CanVisualise ( AudioPlayer audio,
MythRender render 
)
virtual
bool VideoOutput::SetupVisualisation ( AudioPlayer audio,
MythRender render,
const QString &  name 
)
virtual
VideoVisual* VideoOutput::GetVisualisation ( void  )
inline

Definition at line 265 of file videooutbase.h.

Referenced by MythPlayer::IsVisualising().

QString VideoOutput::GetVisualiserName ( void  )

Definition at line 1473 of file videooutbase.cpp.

Referenced by MythPlayer::GetVisualiserName().

QStringList VideoOutput::GetVisualiserList ( void  )
virtual

Reimplemented in VideoOutputVDPAU, and VideoOutputOpenGL.

Definition at line 1480 of file videooutbase.cpp.

Referenced by MythPlayer::GetVisualiserList().

void VideoOutput::DestroyVisualisation ( void  )

Definition at line 1485 of file videooutbase.cpp.

Referenced by EnableVisualisation(), and SetupVisualisation().

int VideoOutput::CalcHueBase ( const QString &  adaptor_name)
static

Definition at line 1858 of file videooutbase.cpp.

Referenced by VAAPIContext::CreateDisplay(), and VideoOutputXv::InitXVideo().

virtual bool VideoOutput::StereoscopicModesAllowed ( void  ) const
inlinevirtual

Reimplemented in VideoOutputOpenGL.

Definition at line 274 of file videooutbase.h.

Referenced by TV::Handle3D(), and TV::PlaybackMenuInit().

void VideoOutput::SetStereoscopicMode ( StereoscopicMode  mode)
inline

Definition at line 275 of file videooutbase.h.

Referenced by TV::Handle3D().

StereoscopicMode VideoOutput::GetStereoscopicMode ( void  ) const
inline

Definition at line 276 of file videooutbase.h.

Referenced by TV::PlaybackMenuInit().

void VideoOutput::InitBuffers ( int  numdecode,
bool  extra_for_pause,
int  need_free,
int  needprebuffer_normal,
int  needprebuffer_small,
int  keepprebuffer 
)
protected
void VideoOutput::InitDisplayMeasurements ( uint  width,
uint  height,
bool  resize 
)
protected

Init display measurements based on database settings and actual screen parameters.

Definition at line 1744 of file videooutbase.cpp.

Referenced by VideoOutputOpenGL::CreateGPUResources(), VideoOutputD3D::Init(), VideoOutputVDPAU::Init(), VideoOutputXv::Init(), and VideoOutputOpenGL::ProcessFrame().

void VideoOutput::ShowPIPs ( VideoFrame frame,
const PIPMap pipPlayers 
)
protectedvirtual
void VideoOutput::ShowPIP ( VideoFrame frame,
MythPlayer pipplayer,
PIPLocation  loc 
)
protectedvirtual

Composites PiP image onto a video frame.

Note: This only works with memory backed VideoFrames.

Parameters
frameFrame to composite PiP onto.
pipplayerPicture-in-Picture Player.
locLocation of this PiP on the frame.

Reimplemented in VideoOutputD3D, and VideoOutputOpenGL.

Definition at line 1058 of file videooutbase.cpp.

Referenced by ShowPIPs().

bool VideoOutput::DisplayOSD ( VideoFrame frame,
OSD osd 
)
protectedvirtual

If the OSD has changed, this will convert the OSD buffer to the OSDSurface's color format.

If the destination format is either IA44 or AI44 the osd is converted to greyscale.

Returns
true if visible, false otherwise

Definition at line 1354 of file videooutbase.cpp.

Referenced by VideoOutputQuartz::ProcessFrame(), and VideoOutputXv::ProcessFrame().

QRect VideoOutput::GetVisibleOSDBounds ( float &  visible_aspect,
float &  font_scaling,
float  themeaspect 
) const
protected

Returns visible portions of total OSD bounds.

Parameters
visible_aspectphysical aspect ratio of bounds returned
font_scalingscaling to apply to fonts

Definition at line 822 of file videooutbase.cpp.

Referenced by GetImageRect(), GetOSDBounds(), and GetSafeRect().

QRect VideoOutput::GetTotalOSDBounds ( void  ) const
protected
virtual bool VideoOutput::hasFullScreenOSD ( void  ) const
inlineprotectedvirtual

Reimplemented in VideoOutputOpenGL, and VideoOutputD3D.

Definition at line 292 of file videooutbase.h.

Referenced by GetImageRect(), GetMHEGBounds(), GetTotalOSDBounds(), and GetVisibleOSDBounds().

void VideoOutput::CopyFrame ( VideoFrame to,
const VideoFrame from 
)
staticprotected
void VideoOutput::DoPipResize ( int  pipwidth,
int  pipheight 
)
protected

Sets up Picture in Picture image resampler.

Parameters
pipwidthinput width
pipheightinput height
See Also
ShutdownPipResize(), ShowPIPs(VideoFrame*,const PIPMap&)

Definition at line 987 of file videooutbase.cpp.

Referenced by ShowPIP().

void VideoOutput::ShutdownPipResize ( void  )
protected

Shuts down Picture in Picture image resampler.

See Also
VideoOutput::DoPipResize(int,int), ShowPIPs(VideoFrame*,const PIPMap&)

Definition at line 1017 of file videooutbase.cpp.

Referenced by DoPipResize(), and ~VideoOutput().

void VideoOutput::ResizeVideo ( VideoFrame frame)
protected

Definition at line 1201 of file videooutbase.cpp.

Referenced by DisplayOSD().

void VideoOutput::DoVideoResize ( const QSize &  inDim,
const QSize &  outDim 
)
protected

Sets up Picture in Picture image resampler.

Parameters
inDiminput width and height
outDimoutput width and height
See Also
ShutdownPipResize(), ShowPIPs(VideoFrame*,const PIPMap&)

Definition at line 1178 of file videooutbase.cpp.

Referenced by ResizeVideo().

void VideoOutput::ShutdownVideoResize ( void  )
protectedvirtual

Definition at line 1292 of file videooutbase.cpp.

Referenced by DoVideoResize(), ResizeVideo(), SetVideoResize(), and ~VideoOutput().

Member Data Documentation

VideoOutWindow VideoOutput::window
protected

Definition at line 303 of file videooutbase.h.

Referenced by AllowPreviewEPG(), Create(), VideoOutputOpenGL::CreateBuffers(), VideoOutputXv::CreateBuffers(), VideoOutputD3D::CreateDecoder(), VideoOutputOpenGL::CreateGPUResources(), VideoOutputQuartz::CreateQuartzBuffers(), VideoOutputXv::CreateShmImages(), VideoOutputOpenGLVAAPI::CreateVAAPIContext(), VideoOutputVDPAU::CreateVideoSurfaces(), VideoOutputNullVDPAU::CreateVideoSurfaces(), CropToDisplay(), DisplayOSD(), VideoOutputVDPAU::DrawSlice(), VideoOutputNullVDPAU::DrawSlice(), VideoOutputVDPAU::DrawUnusedRects(), VideoOutputXv::DrawUnusedRects(), VideoOutputNull::EmbedInWidget(), VideoOutputQuartz::EmbedInWidget(), VideoOutputOpenGL::EmbedInWidget(), VideoOutputD3D::EmbedInWidget(), VideoOutputVDPAU::EmbedInWidget(), VideoOutputXv::EmbedInWidget(), EmbedInWidget(), ExposeEvent(), GetAdjustFill(), GetAspectOverride(), GetDisplayAspect(), GetImageRect(), GetMHEGBounds(), VideoOutputXv::GetPIPRect(), GetPIPRect(), GetTotalOSDBounds(), GetVisibleOSDBounds(), VideoOutputQuartz::Init(), VideoOutputNull::Init(), VideoOutputOpenGLVAAPI::Init(), VideoOutputOpenGL::Init(), VideoOutputNullVAAPI::Init(), VideoOutputD3D::Init(), VideoOutputVDPAU::Init(), VideoOutputXv::Init(), Init(), VideoOutputNullVAAPI::InitBuffers(), VideoOutputD3D::InitBuffers(), VideoOutputNullVDPAU::InitBuffers(), VideoOutputVDPAU::InitBuffers(), InitDisplayMeasurements(), VideoOutputVDPAU::InitPictureAttributes(), VideoOutputVDPAU::InitRender(), VideoOutputXv::InitSetupBuffers(), VideoOutputXv::InitVideoBuffers(), VideoOutputXv::InitXlib(), VideoOutputXv::InitXShm(), VideoOutputXv::InitXVideo(), VideoOutputNullVAAPI::InputChanged(), VideoOutputNull::InputChanged(), VideoOutputOpenGLVAAPI::InputChanged(), VideoOutputOpenGL::InputChanged(), VideoOutputQuartz::InputChanged(), VideoOutputD3D::InputChanged(), VideoOutputVDPAU::InputChanged(), VideoOutputNullVDPAU::InputChanged(), VideoOutputXv::InputChanged(), InputChanged(), IsEmbedding(), IsPreferredRenderer(), IsVideoScalingAllowed(), VideoOutputQuartz::MoveResize(), VideoOutputOpenGL::MoveResize(), VideoOutputXv::MoveResize(), MoveResize(), VideoOutputOpenGL::PrepareFrame(), VideoOutputD3D::PrepareFrame(), VideoOutputVDPAU::PrepareFrame(), VideoOutputXv::PrepareFrameMem(), VideoOutputQuartz::ProcessFrame(), VideoOutputOpenGL::ProcessFrame(), VideoOutputD3D::ProcessFrame(), VideoOutputXv::ProcessFrame(), ChromaKeyOSD::ProcessOSD(), ResizeDisplayWindow(), VideoOutputQuartz::ResizeForVideo(), ResizeForVideo(), VideoOutputVDPAU::RestoreDisplay(), SetPIPState(), VideoOutputD3D::SetupContext(), VideoOutputXv::SetupDeinterlace(), SetupDeinterlace(), VideoOutputOpenGL::SetupOpenGL(), SetVideoScalingAllowed(), VideoOutputD3D::Show(), VideoOutputVDPAU::Show(), VideoOutputXv::Show(), VideoOutputOpenGL::ShowPIP(), VideoOutputD3D::ShowPIP(), VideoOutputVDPAU::ShowPIP(), ShowPIP(), VideoOutputXv::ShowXVideo(), VideoOutputNull::StopEmbedding(), VideoOutputQuartz::StopEmbedding(), VideoOutputOpenGL::StopEmbedding(), VideoOutputD3D::StopEmbedding(), VideoOutputVDPAU::StopEmbedding(), VideoOutputXv::StopEmbedding(), StopEmbedding(), VideoOutputQuartz::ToggleAdjustFill(), ToggleAdjustFill(), ToggleAspectOverride(), VideoAspectRatioChanged(), VideoOutputXv::WindowResized(), Zoom(), and VideoOutputXv::~VideoOutputXv().

QSize VideoOutput::db_display_dim
protected

Screen dimensions in millimeters from DB.

Definition at line 304 of file videooutbase.h.

Referenced by InitDisplayMeasurements(), and VideoOutput().

VideoColourSpace VideoOutput::videoColourSpace
protected
AspectOverrideMode VideoOutput::db_aspectoverride
protected
AdjustFillMode VideoOutput::db_adjustfill
protected

Definition at line 307 of file videooutbase.h.

Referenced by Init(), and VideoOutput().

LetterBoxColour VideoOutput::db_letterbox_colour
protected
QString VideoOutput::db_deint_filtername
protected

Definition at line 309 of file videooutbase.h.

MythCodecID VideoOutput::video_codec_id
protected

Definition at line 312 of file videooutbase.h.

Referenced by VideoOutputD3D::ApproveDeintFilter(), VideoOutputVDPAU::ClearDummyFrame(), VideoOutputOpenGLVAAPI::CreateBuffers(), VideoOutputD3D::CreateBuffers(), VideoOutputD3D::CreateDecoder(), VideoOutputD3D::CreatePauseFrame(), VideoOutputQuartz::CreateQuartzBuffers(), VideoOutputOpenGLVAAPI::CreateVAAPIContext(), VideoOutputNullVAAPI::CreateVAAPIContext(), VideoOutputVDPAU::CreateVideoSurfaces(), VideoOutputVDPAU::DrawSlice(), VideoOutputNullVDPAU::DrawSlice(), VideoOutputVDPAU::FrameIsInUse(), VideoOutputD3D::hasHWAcceleration(), VideoOutputVDPAU::hasHWAcceleration(), VideoOutputOpenGLVAAPI::Init(), VideoOutputNullVAAPI::Init(), VideoOutputD3D::Init(), VideoOutputVDPAU::Init(), VideoOutputNullVDPAU::Init(), Init(), VideoOutputNullVAAPI::InitBuffers(), VideoOutputD3D::InitBuffers(), VideoOutputNullVDPAU::InitBuffers(), VideoOutputVDPAU::InitBuffers(), VideoOutputOpenGL::InitPictureAttributes(), VideoOutputOpenGLVAAPI::InitPictureAttributes(), VideoOutputXv::InitSetupBuffers(), VideoOutputNullVDPAU::InitShadowBuffers(), VideoOutputNullVAAPI::InputChanged(), VideoOutputOpenGLVAAPI::InputChanged(), VideoOutputOpenGL::InputChanged(), VideoOutputQuartz::InputChanged(), VideoOutputD3D::InputChanged(), VideoOutputVDPAU::InputChanged(), VideoOutputNullVDPAU::InputChanged(), VideoOutputXv::InputChanged(), InputChanged(), VideoOutputQuartz::NeedExtraAudioDecode(), VideoOutputVDPAU::NeedExtraAudioDecode(), VideoOutputVDPAU::ParseOptions(), VideoOutputD3D::PrepareFrame(), VideoOutputVDPAU::PrepareFrame(), VideoOutputOpenGL::ProcessFrame(), VideoOutputD3D::ProcessFrame(), VideoOutputVDPAU::ProcessFrame(), VideoOutputOpenGLVAAPI::ProcessFrame(), VideoOutputOpenGLVAAPI::SetPictureAttribute(), VideoOutputOpenGL::SetupOpenGL(), VideoOutputD3D::UpdateFrame(), VideoOutputOpenGLVAAPI::UpdatePauseFrame(), VideoOutputD3D::UpdatePauseFrame(), VideoOutputVDPAU::UpdatePauseFrame(), and VideoOutputVDPAU::UpdateReferenceFrames().

VideoDisplayProfile* VideoOutput::db_vdisp_profile
protected
QSize VideoOutput::pip_desired_display_size
protected

Definition at line 316 of file videooutbase.h.

Referenced by DoPipResize(), and ShowPIP().

QSize VideoOutput::pip_display_size
protected

Definition at line 317 of file videooutbase.h.

Referenced by DoPipResize(), ShowPIP(), and ShutdownPipResize().

QSize VideoOutput::pip_video_size
protected

Definition at line 318 of file videooutbase.h.

Referenced by DoPipResize(), and ShutdownPipResize().

unsigned char* VideoOutput::pip_tmp_buf
protected

Definition at line 319 of file videooutbase.h.

Referenced by DoPipResize(), ShowPIP(), and ShutdownPipResize().

unsigned char* VideoOutput::pip_tmp_buf2
protected

Definition at line 320 of file videooutbase.h.

Referenced by DoPipResize(), ShowPIP(), and ShutdownPipResize().

struct SwsContext* VideoOutput::pip_scaling_context
protected

Definition at line 321 of file videooutbase.h.

Referenced by DoPipResize(), ShowPIP(), and ShutdownPipResize().

VideoFrame VideoOutput::pip_tmp_image
protected

Definition at line 322 of file videooutbase.h.

Referenced by ShowPIP(), and VideoOutput().

bool VideoOutput::vsz_enabled
protected
QRect VideoOutput::vsz_desired_display_rect
protected
QSize VideoOutput::vsz_display_size
protected

Definition at line 327 of file videooutbase.h.

Referenced by DoVideoResize(), and ShutdownVideoResize().

QSize VideoOutput::vsz_video_size
protected

Definition at line 328 of file videooutbase.h.

Referenced by DoVideoResize(), and ShutdownVideoResize().

unsigned char* VideoOutput::vsz_tmp_buf
protected

Definition at line 329 of file videooutbase.h.

Referenced by DoVideoResize(), ResizeVideo(), and ShutdownVideoResize().

struct SwsContext* VideoOutput::vsz_scale_context
protected

Definition at line 330 of file videooutbase.h.

Referenced by DoVideoResize(), ResizeVideo(), and ShutdownVideoResize().

bool VideoOutput::m_deinterlacing
protected
QString VideoOutput::m_deintfiltername
protected
FilterManager* VideoOutput::m_deintFiltMan
protected
FilterChain* VideoOutput::m_deintFilter
protected
bool VideoOutput::m_deinterlaceBeforeOSD
protected
VideoBuffers VideoOutput::vbuffers
protected

VideoBuffers instance used to track video output buffers.

Definition at line 340 of file videooutbase.h.

Referenced by VideoOutputNullVDPAU::BufferSizeCheck(), VideoOutputNullVDPAU::CheckFrameStates(), VideoOutputVDPAU::CheckFrameStates(), VideoOutputOpenGLVAAPI::CreateBuffers(), VideoOutputOpenGL::CreateBuffers(), VideoOutputD3D::CreateBuffers(), VideoOutputXv::CreateBuffers(), VideoOutputNull::CreatePauseFrame(), VideoOutputOpenGL::CreatePauseFrame(), VideoOutputD3D::CreatePauseFrame(), VideoOutputXv::CreatePauseFrame(), VideoOutputQuartz::CreateQuartzBuffers(), VideoOutputOpenGLVAAPI::CreateVAAPIContext(), VideoOutputNullVAAPI::DeleteBuffers(), VideoOutputNullVDPAU::DeleteBuffers(), VideoOutputVDPAU::DeleteBuffers(), VideoOutputXv::DeleteBuffers(), VideoOutputQuartz::DeleteQuartzBuffers(), VideoOutputOpenGL::DestroyCPUResources(), VideoOutputNullVAAPI::DiscardFrame(), VideoOutputNullVDPAU::DiscardFrame(), VideoOutputVDPAU::DiscardFrame(), VideoOutputXv::DiscardFrame(), VideoOutputNullVDPAU::DiscardFrames(), VideoOutputVDPAU::DiscardFrames(), VideoOutputXv::DiscardFrames(), VideoOutputNullVAAPI::DoneDisplayingFrame(), VideoOutputNullVDPAU::DoneDisplayingFrame(), VideoOutputVDPAU::DoneDisplayingFrame(), VideoOutputVDPAU::DrawSlice(), VideoOutputNullVDPAU::DrawSlice(), VideoOutputNullVAAPI::GetLastDecodedFrame(), VideoOutputNullVDPAU::GetLastDecodedFrame(), VideoOutputNullVAAPI::GetLastShownFrame(), VideoOutputNullVDPAU::GetLastShownFrame(), VideoOutputQuartz::Init(), VideoOutputNull::Init(), VideoOutputNullVAAPI::InitBuffers(), VideoOutputD3D::InitBuffers(), VideoOutputNullVDPAU::InitBuffers(), VideoOutputVDPAU::InitBuffers(), VideoOutputNullVDPAU::InitShadowBuffers(), VideoOutputXv::InitVideoBuffers(), VideoOutputNull::InputChanged(), VideoOutputNull::PrepareFrame(), VideoOutputOpenGL::PrepareFrame(), VideoOutputD3D::PrepareFrame(), VideoOutputXv::PrepareFrameMem(), VideoOutputXv::PrepareFrameXv(), VideoOutputQuartz::ProcessFrame(), VideoOutputOpenGL::ProcessFrame(), VideoOutputD3D::ProcessFrame(), VideoOutputXv::ProcessFrame(), VideoOutputNullVAAPI::ReleaseFrame(), VideoOutputNullVDPAU::ReleaseFrame(), VideoOutputD3D::TearDown(), VideoOutputOpenGLVAAPI::UpdatePauseFrame(), VideoOutputOpenGL::UpdatePauseFrame(), VideoOutputNull::UpdatePauseFrame(), VideoOutputD3D::UpdatePauseFrame(), VideoOutputQuartz::UpdatePauseFrame(), VideoOutputVDPAU::UpdatePauseFrame(), VideoOutputXv::UpdatePauseFrame(), and VideoOutputNull::~VideoOutputNull().

VideoErrorState VideoOutput::errorState
protected
long long VideoOutput::framesPlayed
protected
DisplayRes* VideoOutput::display_res
protected
QSize VideoOutput::monitor_sz
protected

Definition at line 350 of file videooutbase.h.

Referenced by InitDisplayMeasurements(), and VideoOutputXv::WindowResized().

QSize VideoOutput::monitor_dim
protected

Definition at line 351 of file videooutbase.h.

Referenced by InitDisplayMeasurements(), and VideoOutputXv::WindowResized().

MythYUVAPainter* VideoOutput::osd_painter
protected

Definition at line 354 of file videooutbase.h.

Referenced by DisplayOSD(), and ~VideoOutput().

MythImage* VideoOutput::osd_image
protected

Definition at line 355 of file videooutbase.h.

Referenced by DisplayOSD(), and ~VideoOutput().

VideoVisual* VideoOutput::m_visual
protected
StereoscopicMode VideoOutput::m_stereo
protected

Definition at line 361 of file videooutbase.h.

Referenced by VideoOutputOpenGL::PrepareFrame().


The documentation for this class was generated from the following files: