MythTV  master
Public Slots | Signals | Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes | List of all members
VideoOutWindow Class Reference

#include <videooutwindow.h>

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

Public Slots

void ScreenChanged (QScreen *screen)
 
void InputChanged (const QSize &VideoDim, const QSize &VideoDispDim, float Aspect)
 Tells video output to discard decoded frames and wait for new ones. More...
 
void VideoAspectRatioChanged (float Aspect)
 Calls SetVideoAspectRatio(float aspect), then calls MoveResize() to apply changes. More...
 
void EmbedInWidget (const QRect &Rect)
 Tells video output to embed video in an existing window. More...
 
void StopEmbedding (void)
 Tells video output to stop embedding video in an existing window. More...
 
void ToggleAdjustFill (AdjustFillMode AdjustFillMode=kAdjustFill_Toggle)
 Sets up letterboxing for various standard video frame and monitor dimensions, then calls MoveResize() to apply them. More...
 
void ToggleAspectOverride (AspectOverrideMode AspectMode=kAspect_Toggle)
 Enforce different aspect ration than detected, then calls VideoAspectRatioChanged(float) to apply them. More...
 
void ResizeDisplayWindow (const QRect &Rect, bool SaveVisibleRect)
 Resize Display Window. More...
 
void MoveResize (void)
 performs all the calculations for video framing and any resizing. More...
 
void Zoom (ZoomDirection Direction)
 Sets up zooming into to different parts of the video. More...
 
void ToggleMoveBottomLine (void)
 
void SaveBottomLine (void)
 
void SetVideoScalingAllowed (bool Change)
 Disable or enable underscan/overscan. More...
 
void SetDisplayAspect (float DisplayAspect)
 
void SetPIPState (PIPState Setting)
 
void SetWindowSize (QSize Size)
 
void SetITVResize (QRect Rect)
 
void SetRotation (int Rotation)
 Set the rotation in degrees. More...
 
bool IsEmbedding (void) const
 
QSize GetVideoDim (void) const
 
QSize GetVideoDispDim (void) const
 
int GetPIPSize (void) const
 
PIPState GetPIPState (void) const
 
float GetOverridenVideoAspect (void) const
 
QRect GetDisplayVisibleRect (void) const
 
QRect GetWindowRect (void) const
 
QRect GetScreenGeometry (void) const
 
QRect GetVideoRect (void) const
 
QRect GetDisplayVideoRect (void) const
 
QRect GetEmbeddingRect (void) const
 
bool UsingGuiSize (void) const
 
bool GetITVResizing (void) const
 
QRect GetITVDisplayRect (void) const
 
QString GetZoomString (void) const
 
AspectOverrideMode GetAspectOverride (void) const
 
AdjustFillMode GetAdjustFill (void) const
 
float GetVideoAspect (void) const
 
float GetDisplayAspect (void) const
 
QRect GetTmpDisplayVisibleRect (void) const
 
QRect GetVisibleOSDBounds (float &VisibleAspect, float &FontScaling, float ThemeAspect) const
 Returns visible portions of total OSD bounds. More...
 
QRect GetTotalOSDBounds (void) const
 Returns total OSD bounds. More...
 
QRect GetPIPRect (PIPLocation Location, MythPlayer *PiPPlayer=nullptr, bool DoPixelAdjustment=true) const
 
bool VideoIsFullScreen (void) const
 Check whether the video display rect covers the entire window/framebuffer. More...
 
QRegion GetBoundingRegion (void) const
 Return the region of DisplayVisibleRect that lies outside of DisplayVideoRect. More...
 

Signals

void VideoSizeChanged (const QSize &VideoDim, const QSize &VideoDispDim)
 
void VideoRectsChanged (const QRect &DisplayVideoRect, const QRect &VideoRect)
 
void VisibleRectChanged (const QRect &DisplayVisibleRect)
 
void WindowRectChanged (const QRect &WindowRect)
 

Public Member Functions

 VideoOutWindow ()
 
 ~VideoOutWindow () override=default
 
bool Init (const QSize &VideoDim, const QSize &VideoDispDim, float Aspect, const QRect &WindowRect, AspectOverrideMode AspectOverride, AdjustFillMode AdjustFill, MythDisplay *Display)
 

Private Member Functions

void PopulateGeometry (void)
 
void ApplyDBScaleAndMove (void)
 Apply scales and moves for "Overscan" and "Underscan" DB settings. More...
 
void ApplyManualScaleAndMove (void)
 Apply scales and moves from "Zoom Mode" settings. More...
 
void ApplyLetterboxing (void)
 
void PrintMoveResizeDebug (void)
 
void SetVideoAspectRatio (float Aspect)
 Sets VideoOutWindow::video_aspect to aspect, and sets VideoOutWindow::overriden_video_aspect if aspectoverride is set to either 4:3, 14:9 or 16:9. More...
 
void Rotate (void)
 Adjust various settings to facilitate portrait mode calculations. More...
 

Static Private Member Functions

static QSize Fix1088 (QSize Dimensions)
 

Private Attributes

MythDisplaym_display {nullptr}
 
QPoint m_dbMove {0,0}
 Percentage move from database. More...
 
float m_dbHorizScale {0.0F}
 Horizontal Overscan/Underscan percentage. More...
 
float m_dbVertScale {0.0F}
 Vertical Overscan/Underscan percentage. More...
 
int m_dbPipSize {26}
 percentage of full window to use for PiP More...
 
bool m_dbScalingAllowed {true}
 disable this to prevent overscan/underscan More...
 
bool m_dbUseGUISize {false}
 Use the gui size for video window. More...
 
QRect m_screenGeometry {0,0,1024,768}
 Full screen geometry. More...
 
float m_manualVertScale {1.0F}
 Manually applied vertical scaling. More...
 
float m_manualHorizScale {1.0F}
 Manually applied horizontal scaling. More...
 
QPoint m_manualMove {0,0}
 Manually applied percentage move. More...
 
float m_displayAspect {1.3333F}
 Physical aspect ratio of playback window. More...
 
QSize m_videoDim {640,480}
 Pixel dimensions of video buffer. More...
 
QSize m_videoDispDim {640,480}
 Pixel dimensions of video display area. More...
 
float m_videoAspect {1.3333F}
 Physical aspect ratio of video. More...
 
float m_videoAspectOverride {1.3333F}
 Normally this is the same as videoAspect, but may not be if the user has toggled the aspect override mode. More...
 
AspectOverrideMode m_videoAspectOverrideMode {kAspect_Off}
 AspectOverrideMode to use to modify overriden_video_aspect. More...
 
AdjustFillMode m_adjustFill {kAdjustFill_Off}
 Zoom mode. More...
 
int m_rotation {0}
 
QRect m_videoRect {0,0,0,0}
 Pixel rectangle in video frame to display. More...
 
QRect m_displayVideoRect {0,0,0,0}
 Pixel rectangle in display window into which video_rect maps to. More...
 
QRect m_displayVisibleRect {0,0,0,0}
 Visible portion of display window in pixels. More...
 
QRect m_windowRect {0,0,0,0}
 Rectangle describing QWidget bounds. More...
 
QRect m_tmpDisplayVisibleRect {0,0,0,0}
 Used to save the display_visible_rect for restoration after video embedding ends. More...
 
QRect m_embeddingRect
 Embedded video rectangle. More...
 
bool m_itvResizing {false}
 
QRect m_itvDisplayVideoRect
 
bool m_embedding {false}
 State variables. More...
 
bool m_bottomLine {false}
 
PIPState m_pipState {kPIPOff}
 

Static Private Attributes

static const float kManualZoomMaxHorizontalZoom = 4.0F
 
static const float kManualZoomMaxVerticalZoom = 4.0F
 
static const float kManualZoomMinHorizontalZoom = 0.25F
 
static const float kManualZoomMinVerticalZoom = 0.25F
 
static const int kManualZoomMaxMove = 50
 

Detailed Description

Definition at line 25 of file videooutwindow.h.

Constructor & Destructor Documentation

◆ VideoOutWindow()

VideoOutWindow::VideoOutWindow ( )

Definition at line 50 of file videooutwindow.cpp.

◆ ~VideoOutWindow()

VideoOutWindow::~VideoOutWindow ( )
overridedefault

Member Function Documentation

◆ Init()

bool VideoOutWindow::Init ( const QSize &  VideoDim,
const QSize &  VideoDispDim,
float  Aspect,
const QRect &  WindowRect,
AspectOverrideMode  AspectOverride,
AdjustFillMode  AdjustFill,
MythDisplay Display 
)

Definition at line 410 of file videooutwindow.cpp.

Referenced by MythVideoOutput::Init().

◆ VideoSizeChanged

void VideoOutWindow::VideoSizeChanged ( const QSize &  VideoDim,
const QSize &  VideoDispDim 
)
signal

◆ VideoRectsChanged

void VideoOutWindow::VideoRectsChanged ( const QRect &  DisplayVideoRect,
const QRect &  VideoRect 
)
signal

◆ VisibleRectChanged

void VideoOutWindow::VisibleRectChanged ( const QRect &  DisplayVisibleRect)
signal

Referenced by MoveResize().

◆ WindowRectChanged

void VideoOutWindow::WindowRectChanged ( const QRect &  WindowRect)
signal

◆ ScreenChanged

void VideoOutWindow::ScreenChanged ( QScreen *  screen)
slot

Definition at line 59 of file videooutwindow.cpp.

Referenced by Init().

◆ InputChanged

void VideoOutWindow::InputChanged ( const QSize &  VideoDim,
const QSize &  VideoDispDim,
float  Aspect 
)
slot

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().

Definition at line 509 of file videooutwindow.cpp.

Referenced by MythVideoOutput::InputChanged(), MythVideoOutputOpenGL::MythVideoOutputOpenGL(), and MythVideoOutputOpenGL::ProcessFrame().

◆ VideoAspectRatioChanged

void VideoOutWindow::VideoAspectRatioChanged ( float  Aspect)
slot

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

Parameters
aspectvideo aspect ratio to use

Definition at line 493 of file videooutwindow.cpp.

Referenced by MythVideoOutput::VideoAspectRatioChanged().

◆ EmbedInWidget

void VideoOutWindow::EmbedInWidget ( const QRect &  Rect)
slot

Tells video output to embed video in an existing window.

Parameters
Rectnew display_video_rect
See also
StopEmbedding()

Definition at line 679 of file videooutwindow.cpp.

Referenced by MythVideoOutput::EmbedInWidget().

◆ StopEmbedding

void VideoOutWindow::StopEmbedding ( void  )
slot

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

See also
EmbedInWidget(WId, int, int, int, int)

Definition at line 696 of file videooutwindow.cpp.

Referenced by MythVideoOutput::StopEmbedding().

◆ ToggleAdjustFill

void VideoOutWindow::ToggleAdjustFill ( AdjustFillMode  AdjustFill = kAdjustFill_Toggle)
slot

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

See also
Zoom(ZoomDirection), ToggleAspectOverride(AspectOverrideMode)

Definition at line 560 of file videooutwindow.cpp.

Referenced by MythVideoOutput::ToggleAdjustFill().

◆ ToggleAspectOverride

void VideoOutWindow::ToggleAspectOverride ( AspectOverrideMode  AspectMode = kAspect_Toggle)
slot

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

See also
Zoom(ZoomDirection), ToggleAdjustFill(AdjustFillMode)

Definition at line 783 of file videooutwindow.cpp.

Referenced by MythVideoOutput::ToggleAspectOverride().

◆ ResizeDisplayWindow

void VideoOutWindow::ResizeDisplayWindow ( const QRect &  Rect,
bool  SaveVisibleRect 
)
slot

Resize Display Window.

Definition at line 666 of file videooutwindow.cpp.

Referenced by EmbedInWidget(), and MythVideoOutput::ResizeDisplayWindow().

◆ MoveResize

void VideoOutWindow::MoveResize ( void  )
slot

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)

Definition at line 97 of file videooutwindow.cpp.

Referenced by Init(), InputChanged(), MythVideoOutput::MoveResize(), ResizeDisplayWindow(), ScreenChanged(), SetDisplayAspect(), SetITVResize(), SetRotation(), SetVideoScalingAllowed(), SetWindowSize(), StopEmbedding(), ToggleAdjustFill(), ToggleAspectOverride(), ToggleMoveBottomLine(), VideoAspectRatioChanged(), and Zoom().

◆ Zoom

void VideoOutWindow::Zoom ( ZoomDirection  Direction)
slot

Sets up zooming into to different parts of the video.

See also
ToggleAdjustFill(AdjustFillMode)

Definition at line 871 of file videooutwindow.cpp.

Referenced by MythVideoOutput::Zoom().

◆ ToggleMoveBottomLine

void VideoOutWindow::ToggleMoveBottomLine ( void  )
slot

Definition at line 963 of file videooutwindow.cpp.

Referenced by MythVideoOutput::ToggleMoveBottomLine().

◆ SaveBottomLine

void VideoOutWindow::SaveBottomLine ( void  )
slot

Definition at line 1000 of file videooutwindow.cpp.

Referenced by MythVideoOutput::SaveBottomLine().

◆ SetVideoScalingAllowed

void VideoOutWindow::SetVideoScalingAllowed ( bool  Change)
slot

Disable or enable underscan/overscan.

Definition at line 575 of file videooutwindow.cpp.

Referenced by MythVideoOutput::SetVideoScalingAllowed().

◆ SetDisplayAspect

void VideoOutWindow::SetDisplayAspect ( float  DisplayAspect)
slot

◆ SetPIPState

void VideoOutWindow::SetPIPState ( PIPState  Setting)
slot

Definition at line 1030 of file videooutwindow.cpp.

Referenced by MythVideoOutput::SetPIPState().

◆ SetWindowSize

void VideoOutWindow::SetWindowSize ( QSize  Size)
slot

◆ SetITVResize

void VideoOutWindow::SetITVResize ( QRect  Rect)
slot

Definition at line 625 of file videooutwindow.cpp.

Referenced by MythVideoOutput::SetVideoResize().

◆ SetRotation

void VideoOutWindow::SetRotation ( int  Rotation)
slot

Set the rotation in degrees.

Note
We only actually care about +- 90 here to enable 'portrait' mode

Definition at line 651 of file videooutwindow.cpp.

Referenced by MythVideoOutputOpenGL::ProcessFrame().

◆ IsEmbedding

bool VideoOutWindow::IsEmbedding ( void  ) const
inlineslot

◆ GetVideoDim

QSize VideoOutWindow::GetVideoDim ( void  ) const
inlineslot

◆ GetVideoDispDim

QSize VideoOutWindow::GetVideoDispDim ( void  ) const
inlineslot

◆ GetPIPSize

int VideoOutWindow::GetPIPSize ( void  ) const
inlineslot

Definition at line 72 of file videooutwindow.h.

◆ GetPIPState

PIPState VideoOutWindow::GetPIPState ( void  ) const
inlineslot

Definition at line 73 of file videooutwindow.h.

Referenced by MythVideoOutputOpenGL::Init().

◆ GetOverridenVideoAspect

float VideoOutWindow::GetOverridenVideoAspect ( void  ) const
inlineslot

Definition at line 74 of file videooutwindow.h.

Referenced by MythVideoOutput::GetVisibleOSDBounds().

◆ GetDisplayVisibleRect

QRect VideoOutWindow::GetDisplayVisibleRect ( void  ) const
inlineslot

◆ GetWindowRect

QRect VideoOutWindow::GetWindowRect ( void  ) const
inlineslot

◆ GetScreenGeometry

QRect VideoOutWindow::GetScreenGeometry ( void  ) const
inlineslot

Definition at line 77 of file videooutwindow.h.

◆ GetVideoRect

QRect VideoOutWindow::GetVideoRect ( void  ) const
inlineslot

◆ GetDisplayVideoRect

QRect VideoOutWindow::GetDisplayVideoRect ( void  ) const
inlineslot

◆ GetEmbeddingRect

QRect VideoOutWindow::GetEmbeddingRect ( void  ) const
inlineslot

Definition at line 80 of file videooutwindow.h.

Referenced by MythVideoOutput::Init(), and MythVideoOutputOpenGL::ProcessFrame().

◆ UsingGuiSize

bool VideoOutWindow::UsingGuiSize ( void  ) const
inlineslot

Definition at line 81 of file videooutwindow.h.

Referenced by MythVideoOutput::ResizeForVideo().

◆ GetITVResizing

bool VideoOutWindow::GetITVResizing ( void  ) const
inlineslot

Definition at line 82 of file videooutwindow.h.

Referenced by VideoOutputD3D::PrepareFrame().

◆ GetITVDisplayRect

QRect VideoOutWindow::GetITVDisplayRect ( void  ) const
inlineslot

Definition at line 83 of file videooutwindow.h.

Referenced by VideoOutputD3D::PrepareFrame().

◆ GetZoomString

QString VideoOutWindow::GetZoomString ( void  ) const
slot

Definition at line 1008 of file videooutwindow.cpp.

Referenced by MythVideoOutput::GetZoomString().

◆ GetAspectOverride

AspectOverrideMode VideoOutWindow::GetAspectOverride ( void  ) const
inlineslot

Definition at line 85 of file videooutwindow.h.

Referenced by MythVideoOutput::GetAspectOverride().

◆ GetAdjustFill

AdjustFillMode VideoOutWindow::GetAdjustFill ( void  ) const
inlineslot

Definition at line 86 of file videooutwindow.h.

Referenced by MythVideoOutput::GetAdjustFill().

◆ GetVideoAspect

float VideoOutWindow::GetVideoAspect ( void  ) const
inlineslot

◆ GetDisplayAspect

float VideoOutWindow::GetDisplayAspect ( void  ) const
inlineslot

◆ GetTmpDisplayVisibleRect

QRect VideoOutWindow::GetTmpDisplayVisibleRect ( void  ) const
inlineslot

Definition at line 89 of file videooutwindow.h.

◆ GetVisibleOSDBounds

QRect VideoOutWindow::GetVisibleOSDBounds ( float &  VisibleAspect,
float &  FontScaling,
float  ThemeAspect 
) const
slot

Returns visible portions of total OSD bounds.

Parameters
visible_aspectphysical aspect ratio of bounds returned
font_scalingscaling to apply to fonts
themeaspectaspect ration of the theme

Definition at line 713 of file videooutwindow.cpp.

◆ GetTotalOSDBounds

QRect VideoOutWindow::GetTotalOSDBounds ( void  ) const
slot

Returns total OSD bounds.

Definition at line 549 of file videooutwindow.cpp.

◆ GetPIPRect

QRect VideoOutWindow::GetPIPRect ( PIPLocation  Location,
MythPlayer PiPPlayer = nullptr,
bool  DoPixelAdjustment = true 
) const
slot

Definition at line 829 of file videooutwindow.cpp.

Referenced by MythVideoOutput::GetPIPRect().

◆ VideoIsFullScreen

bool VideoOutWindow::VideoIsFullScreen ( void  ) const
slot

Check whether the video display rect covers the entire window/framebuffer.

Used to avoid unnecessary screen clearing when possible.

Definition at line 805 of file videooutwindow.cpp.

Referenced by MythVideoOutputOpenGL::PrepareFrame().

◆ GetBoundingRegion

QRegion VideoOutWindow::GetBoundingRegion ( void  ) const
slot

Return the region of DisplayVisibleRect that lies outside of DisplayVideoRect.

Note
This assumes VideoIsFullScreen has already been checked

Definition at line 818 of file videooutwindow.cpp.

Referenced by MythVideoOutputOpenGL::PrepareFrame().

◆ PopulateGeometry()

void VideoOutWindow::PopulateGeometry ( void  )
private

Definition at line 65 of file videooutwindow.cpp.

Referenced by Init(), and ScreenChanged().

◆ ApplyDBScaleAndMove()

void VideoOutWindow::ApplyDBScaleAndMove ( void  )
private

Apply scales and moves for "Overscan" and "Underscan" DB settings.

It doesn't make any sense to me to offset an image such that it is clipped. Therefore, we only apply offsets if there is an underscan or overscan which creates "room" to move the image around. That is, if we overscan, we can move the "viewport". If we underscan, we change where we place the image into the display window. If no over/underscanning is performed, you just get the full original image scaled into the full display area.

Definition at line 177 of file videooutwindow.cpp.

Referenced by MoveResize().

◆ ApplyManualScaleAndMove()

void VideoOutWindow::ApplyManualScaleAndMove ( void  )
private

Apply scales and moves from "Zoom Mode" settings.

Definition at line 280 of file videooutwindow.cpp.

Referenced by MoveResize().

◆ ApplyLetterboxing()

void VideoOutWindow::ApplyLetterboxing ( void  )
private

Definition at line 308 of file videooutwindow.cpp.

Referenced by MoveResize().

◆ PrintMoveResizeDebug()

void VideoOutWindow::PrintMoveResizeDebug ( void  )
private

Definition at line 460 of file videooutwindow.cpp.

Referenced by MoveResize().

◆ SetVideoAspectRatio()

void VideoOutWindow::SetVideoAspectRatio ( float  aspect)
private

Sets VideoOutWindow::video_aspect to aspect, and sets VideoOutWindow::overriden_video_aspect if aspectoverride is set to either 4:3, 14:9 or 16:9.

Parameters
aspectvideo aspect ratio to use

Definition at line 482 of file videooutwindow.cpp.

Referenced by Init(), InputChanged(), ToggleAspectOverride(), and VideoAspectRatioChanged().

◆ Fix1088()

QSize VideoOutWindow::Fix1088 ( QSize  Dimensions)
staticprivate

Definition at line 531 of file videooutwindow.cpp.

Referenced by Init(), and InputChanged().

◆ Rotate()

void VideoOutWindow::Rotate ( void  )
private

Adjust various settings to facilitate portrait mode calculations.

This mimics rotating the screen around the video. While more complicated than simply adjusting the video dimensions and aspect ratio, this retains the correct video rectangle for use in the VideoOutput classes.

Note
To prevent a loss of precision over multiple passes, the original display aspect ratio should be retained elsewhere.

Definition at line 142 of file videooutwindow.cpp.

Referenced by MoveResize().

Member Data Documentation

◆ m_display

MythDisplay* VideoOutWindow::m_display {nullptr}
private

Definition at line 110 of file videooutwindow.h.

Referenced by Init(), and PopulateGeometry().

◆ m_dbMove

QPoint VideoOutWindow::m_dbMove {0,0}
private

Percentage move from database.

Definition at line 111 of file videooutwindow.h.

Referenced by ApplyDBScaleAndMove(), Rotate(), and VideoOutWindow().

◆ m_dbHorizScale

float VideoOutWindow::m_dbHorizScale {0.0F}
private

Horizontal Overscan/Underscan percentage.

Definition at line 112 of file videooutwindow.h.

Referenced by ApplyDBScaleAndMove(), GetVisibleOSDBounds(), Rotate(), and SetVideoScalingAllowed().

◆ m_dbVertScale

float VideoOutWindow::m_dbVertScale {0.0F}
private

Vertical Overscan/Underscan percentage.

Definition at line 113 of file videooutwindow.h.

Referenced by ApplyDBScaleAndMove(), GetVisibleOSDBounds(), Rotate(), and SetVideoScalingAllowed().

◆ m_dbPipSize

int VideoOutWindow::m_dbPipSize {26}
private

percentage of full window to use for PiP

Definition at line 114 of file videooutwindow.h.

Referenced by GetPIPRect(), GetPIPSize(), and VideoOutWindow().

◆ m_dbScalingAllowed

bool VideoOutWindow::m_dbScalingAllowed {true}
private

disable this to prevent overscan/underscan

Definition at line 115 of file videooutwindow.h.

Referenced by SetVideoScalingAllowed().

◆ m_dbUseGUISize

bool VideoOutWindow::m_dbUseGUISize {false}
private

Use the gui size for video window.

Definition at line 116 of file videooutwindow.h.

Referenced by UsingGuiSize(), and VideoOutWindow().

◆ m_screenGeometry

QRect VideoOutWindow::m_screenGeometry {0,0,1024,768}
private

Full screen geometry.

Definition at line 117 of file videooutwindow.h.

Referenced by GetScreenGeometry(), and PopulateGeometry().

◆ m_manualVertScale

float VideoOutWindow::m_manualVertScale {1.0F}
private

Manually applied vertical scaling.

Definition at line 120 of file videooutwindow.h.

Referenced by ApplyManualScaleAndMove(), GetZoomString(), Rotate(), SaveBottomLine(), ToggleMoveBottomLine(), and Zoom().

◆ m_manualHorizScale

float VideoOutWindow::m_manualHorizScale {1.0F}
private

Manually applied horizontal scaling.

Definition at line 121 of file videooutwindow.h.

Referenced by ApplyManualScaleAndMove(), GetZoomString(), Rotate(), SaveBottomLine(), ToggleMoveBottomLine(), and Zoom().

◆ m_manualMove

QPoint VideoOutWindow::m_manualMove {0,0}
private

Manually applied percentage move.

Definition at line 122 of file videooutwindow.h.

Referenced by ApplyManualScaleAndMove(), GetZoomString(), Rotate(), SaveBottomLine(), ToggleMoveBottomLine(), and Zoom().

◆ m_displayAspect

float VideoOutWindow::m_displayAspect {1.3333F}
private

Physical aspect ratio of playback window.

Definition at line 125 of file videooutwindow.h.

Referenced by GetDisplayAspect(), GetPIPRect(), Init(), MoveResize(), Rotate(), and SetDisplayAspect().

◆ m_videoDim

QSize VideoOutWindow::m_videoDim {640,480}
private

Pixel dimensions of video buffer.

Definition at line 128 of file videooutwindow.h.

Referenced by GetVideoDim(), Init(), InputChanged(), and MoveResize().

◆ m_videoDispDim

QSize VideoOutWindow::m_videoDispDim {640,480}
private

Pixel dimensions of video display area.

Definition at line 129 of file videooutwindow.h.

Referenced by ApplyDBScaleAndMove(), GetTotalOSDBounds(), GetVideoDispDim(), GetVisibleOSDBounds(), Init(), InputChanged(), and MoveResize().

◆ m_videoAspect

float VideoOutWindow::m_videoAspect {1.3333F}
private

Physical aspect ratio of video.

Definition at line 130 of file videooutwindow.h.

Referenced by GetVideoAspect(), InputChanged(), SetVideoAspectRatio(), ToggleAspectOverride(), and VideoAspectRatioChanged().

◆ m_videoAspectOverride

float VideoOutWindow::m_videoAspectOverride {1.3333F}
private

Normally this is the same as videoAspect, but may not be if the user has toggled the aspect override mode.

Definition at line 134 of file videooutwindow.h.

Referenced by ApplyLetterboxing(), GetOverridenVideoAspect(), GetVisibleOSDBounds(), PrintMoveResizeDebug(), and SetVideoAspectRatio().

◆ m_videoAspectOverrideMode

AspectOverrideMode VideoOutWindow::m_videoAspectOverrideMode {kAspect_Off}
private

AspectOverrideMode to use to modify overriden_video_aspect.

Definition at line 136 of file videooutwindow.h.

Referenced by GetAspectOverride(), Init(), SetVideoAspectRatio(), and ToggleAspectOverride().

◆ m_adjustFill

AdjustFillMode VideoOutWindow::m_adjustFill {kAdjustFill_Off}
private

Zoom mode.

Definition at line 138 of file videooutwindow.h.

Referenced by ApplyLetterboxing(), GetAdjustFill(), Init(), Rotate(), and ToggleAdjustFill().

◆ m_rotation

int VideoOutWindow::m_rotation {0}
private

Definition at line 139 of file videooutwindow.h.

Referenced by MoveResize(), and SetRotation().

◆ m_videoRect

QRect VideoOutWindow::m_videoRect {0,0,0,0}
private

Pixel rectangle in video frame to display.

Definition at line 142 of file videooutwindow.h.

Referenced by ApplyDBScaleAndMove(), GetVideoRect(), GetVisibleOSDBounds(), Init(), MoveResize(), and PrintMoveResizeDebug().

◆ m_displayVideoRect

QRect VideoOutWindow::m_displayVideoRect {0,0,0,0}
private

◆ m_displayVisibleRect

QRect VideoOutWindow::m_displayVisibleRect {0,0,0,0}
private

Visible portion of display window in pixels.

This may be bigger or smaller than display_video_rect.

Definition at line 147 of file videooutwindow.h.

Referenced by ApplyDBScaleAndMove(), ApplyLetterboxing(), GetDisplayVisibleRect(), GetPIPRect(), GetVisibleOSDBounds(), Init(), MoveResize(), ResizeDisplayWindow(), Rotate(), SetWindowSize(), and StopEmbedding().

◆ m_windowRect

QRect VideoOutWindow::m_windowRect {0,0,0,0}
private

Rectangle describing QWidget bounds.

Definition at line 149 of file videooutwindow.h.

Referenced by GetBoundingRegion(), GetWindowRect(), Init(), MoveResize(), PrintMoveResizeDebug(), SetWindowSize(), and VideoIsFullScreen().

◆ m_tmpDisplayVisibleRect

QRect VideoOutWindow::m_tmpDisplayVisibleRect {0,0,0,0}
private

Used to save the display_visible_rect for restoration after video embedding ends.

Definition at line 152 of file videooutwindow.h.

Referenced by GetTmpDisplayVisibleRect(), ResizeDisplayWindow(), and StopEmbedding().

◆ m_embeddingRect

QRect VideoOutWindow::m_embeddingRect
private

Embedded video rectangle.

Definition at line 154 of file videooutwindow.h.

Referenced by EmbedInWidget(), GetEmbeddingRect(), and StopEmbedding().

◆ m_itvResizing

bool VideoOutWindow::m_itvResizing {false}
private

Definition at line 157 of file videooutwindow.h.

Referenced by GetITVResizing(), MoveResize(), and SetITVResize().

◆ m_itvDisplayVideoRect

QRect VideoOutWindow::m_itvDisplayVideoRect
private

Definition at line 158 of file videooutwindow.h.

Referenced by GetITVDisplayRect(), MoveResize(), and SetITVResize().

◆ m_embedding

bool VideoOutWindow::m_embedding {false}
private

State variables.

Definition at line 161 of file videooutwindow.h.

Referenced by EmbedInWidget(), Init(), IsEmbedding(), and StopEmbedding().

◆ m_bottomLine

bool VideoOutWindow::m_bottomLine {false}
private

Definition at line 162 of file videooutwindow.h.

Referenced by ToggleMoveBottomLine().

◆ m_pipState

PIPState VideoOutWindow::m_pipState {kPIPOff}
private

◆ kManualZoomMaxHorizontalZoom

const float VideoOutWindow::kManualZoomMaxHorizontalZoom = 4.0F
staticprivate

Definition at line 166 of file videooutwindow.h.

Referenced by Zoom().

◆ kManualZoomMaxVerticalZoom

const float VideoOutWindow::kManualZoomMaxVerticalZoom = 4.0F
staticprivate

Definition at line 167 of file videooutwindow.h.

Referenced by Zoom().

◆ kManualZoomMinHorizontalZoom

const float VideoOutWindow::kManualZoomMinHorizontalZoom = 0.25F
staticprivate

Definition at line 168 of file videooutwindow.h.

Referenced by Zoom().

◆ kManualZoomMinVerticalZoom

const float VideoOutWindow::kManualZoomMinVerticalZoom = 0.25F
staticprivate

Definition at line 169 of file videooutwindow.h.

Referenced by Zoom().

◆ kManualZoomMaxMove

const int VideoOutWindow::kManualZoomMaxMove = 50
staticprivate

Definition at line 170 of file videooutwindow.h.

Referenced by Zoom().


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