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

#include <libmythtv/mythvideobounds.h>

Inheritance diagram for MythVideoBounds:
[legend]
Collaboration diagram for MythVideoBounds:
[legend]

Public Slots

void RefreshVideoBoundsState ()
 Send out latest state to listeners. More...
 
void ScreenChanged (QScreen *screen)
 
void PhysicalDPIChanged (qreal)
 
void SourceChanged (QSize VideoDim, QSize VideoDispDim, float Aspect)
 Update for new source video dimensions and aspect ratio. More...
 
void VideoAspectRatioChanged (float Aspect)
 Calls SetVideoAspectRatio(float aspect), then calls MoveResize() to apply changes. More...
 
virtual void EmbedPlayback (bool Embed, QRect Rect)
 
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 ratio than detected, then calls VideoAspectRatioChanged(float) to apply them. More...
 
void ResizeDisplayWindow (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 SetWindowSize (QSize Size)
 
void SetITVResize (QRect Rect)
 
void SetRotation (int Rotation)
 Set the rotation in degrees. More...
 
void SetStereoOverride (StereoscopicMode Mode)
 

Signals

void UpdateOSDMessage (const QString &Message)
 
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)
 
void VideoBoundsStateChanged (MythVideoBoundsState VideoState)
 

Public Member Functions

 MythVideoBounds ()
 
 ~MythVideoBounds () override=default
 
bool InitBounds (QSize VideoDim, QSize VideoDispDim, float Aspect, QRect WindowRect)
 
void SetDisplay (MythDisplay *mDisplay)
 
bool IsEmbedding (void) const
 
bool IsEmbeddingAndHidden () const
 
QSize GetVideoDim (void) const
 
QSize GetVideoDispDim (void) const
 
float GetOverridenVideoAspect (void) const
 
QRect GetDisplayVisibleRect (void) const
 
QRect GetWindowRect (void) const
 
QRect GetRawWindowRect (void) const
 
QRect GetVideoRect (void) const
 
QRect GetDisplayVideoRect (void) const
 
QRect GetEmbeddingRect (void) const
 
bool UsingGuiSize (void) const
 
AdjustFillMode GetAdjustFill (void) const
 
float GetVideoAspect (void) const
 
float GetDisplayAspect (void) const
 
StereoscopicMode GetStereoOverride () 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...
 

Protected Attributes

MythDisplaym_display {nullptr}
 

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 MythVideoBounds::video_aspect to aspect, and sets MythVideoBounds::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

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...
 
bool m_dbScalingAllowed {true}
 disable this to prevent overscan/underscan More...
 
bool m_dbUseGUISize {false}
 Use the gui size for video window. More...
 
AspectOverrideMode m_dbAspectOverride { kAspect_Off }
 
AdjustFillMode m_dbAdjustFill { kAdjustFill_Off }
 
qreal m_devicePixelRatio {1.0}
 
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}
 
StereoscopicMode m_stereoOverride { kStereoscopicModeAuto }
 
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_rawWindowRect {0,0,0,0}
 Rectangle describing QWidget bounds - not adjusted for high DPI scaling (macos) 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...
 
QRect m_rawEmbeddingRect
 
bool m_itvResizing {false}
 
QRect m_itvDisplayVideoRect
 
QRect m_rawItvDisplayVideoRect
 
bool m_embedding {false}
 State variables. More...
 
bool m_embeddingHidden { false }
 
bool m_bottomLine {false}
 

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 23 of file mythvideobounds.h.

Constructor & Destructor Documentation

◆ MythVideoBounds()

MythVideoBounds::MythVideoBounds ( )

Definition at line 54 of file mythvideobounds.cpp.

◆ ~MythVideoBounds()

MythVideoBounds::~MythVideoBounds ( )
overridedefault

Member Function Documentation

◆ InitBounds()

bool MythVideoBounds::InitBounds ( QSize  VideoDim,
QSize  VideoDispDim,
float  Aspect,
QRect  WindowRect 
)

Definition at line 452 of file mythvideobounds.cpp.

Referenced by MythVideoOutput::Init().

◆ SetDisplay()

void MythVideoBounds::SetDisplay ( MythDisplay mDisplay)

Definition at line 74 of file mythvideobounds.cpp.

Referenced by MythVideoOutputGPU::MythVideoOutputGPU().

◆ UpdateOSDMessage

void MythVideoBounds::UpdateOSDMessage ( const QString &  Message)
signal

◆ VideoSizeChanged

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

◆ VideoRectsChanged

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

◆ VisibleRectChanged

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

Referenced by MoveResize().

◆ WindowRectChanged

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

◆ VideoBoundsStateChanged

void MythVideoBounds::VideoBoundsStateChanged ( MythVideoBoundsState  VideoState)
signal

◆ RefreshVideoBoundsState

void MythVideoBounds::RefreshVideoBoundsState ( )
slot

Send out latest state to listeners.

Note
This should be used sparingly when first connecting to MythVideoBounds to retrieve the initial state.

Definition at line 68 of file mythvideobounds.cpp.

Referenced by MoveResize(), MythVideoOutputGPU::MythVideoOutputGPU(), and SetStereoOverride().

◆ ScreenChanged

void MythVideoBounds::ScreenChanged ( QScreen *  screen)
slot

Definition at line 89 of file mythvideobounds.cpp.

Referenced by SetDisplay().

◆ PhysicalDPIChanged

void MythVideoBounds::PhysicalDPIChanged ( qreal  )
slot

Definition at line 95 of file mythvideobounds.cpp.

Referenced by SetDisplay().

◆ SourceChanged

void MythVideoBounds::SourceChanged ( QSize  VideoDim,
QSize  VideoDispDim,
float  Aspect 
)
slot

Update for new source video dimensions and aspect ratio.

Definition at line 525 of file mythvideobounds.cpp.

Referenced by MythVideoOutput::InputChanged(), MythVideoGPU::MythVideoGPU(), and MythVideoOutputGPU::ProcessInputChange().

◆ VideoAspectRatioChanged

void MythVideoBounds::VideoAspectRatioChanged ( float  Aspect)
slot

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

Parameters
Aspectvideo aspect ratio to use

Definition at line 513 of file mythvideobounds.cpp.

Referenced by MythPlayerVideoUI::CheckAspectRatio(), MythVideoOutput::Init(), and VideoOutputD3D::InputChanged().

◆ EmbedPlayback

void MythVideoBounds::EmbedPlayback ( bool  Embed,
QRect  Rect 
)
virtualslot

◆ ToggleAdjustFill

void MythVideoBounds::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 566 of file mythvideobounds.cpp.

Referenced by MythPlayerUI::DisplayNormalFrame(), and MythPlayerVideoUI::ToggleAdjustFill().

◆ ToggleAspectOverride

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

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

See also
Zoom(ZoomDirection), ToggleAdjustFill(AdjustFillMode)

Definition at line 722 of file mythvideobounds.cpp.

Referenced by MythPlayerVideoUI::InitVideo().

◆ ResizeDisplayWindow

void MythVideoBounds::ResizeDisplayWindow ( QRect  Rect,
bool  SaveVisibleRect 
)
slot

Resize Display Window.

Definition at line 676 of file mythvideobounds.cpp.

Referenced by EmbedPlayback().

◆ MoveResize

void MythVideoBounds::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 137 of file mythvideobounds.cpp.

Referenced by EmbedPlayback(), MythVideoOutputNull::Init(), VideoOutputD3D::Init(), InitBounds(), MythVideoOutputNull::InputChanged(), VideoOutputD3D::InputChanged(), PhysicalDPIChanged(), ResizeDisplayWindow(), ScreenChanged(), SetDisplayAspect(), SetITVResize(), SetRotation(), SetVideoScalingAllowed(), SetWindowSize(), SourceChanged(), ToggleAdjustFill(), ToggleAspectOverride(), ToggleMoveBottomLine(), VideoAspectRatioChanged(), and Zoom().

◆ Zoom

void MythVideoBounds::Zoom ( ZoomDirection  Direction)
slot

Sets up zooming into to different parts of the video.

See also
ToggleAdjustFill(AdjustFillMode)

Definition at line 766 of file mythvideobounds.cpp.

Referenced by MythPlayerVideoUI::InitVideo().

◆ ToggleMoveBottomLine

void MythVideoBounds::ToggleMoveBottomLine ( void  )
slot

Definition at line 866 of file mythvideobounds.cpp.

Referenced by MythPlayerVideoUI::InitVideo().

◆ SaveBottomLine

void MythVideoBounds::SaveBottomLine ( void  )
slot

Definition at line 905 of file mythvideobounds.cpp.

Referenced by MythPlayerVideoUI::InitVideo().

◆ SetVideoScalingAllowed

void MythVideoBounds::SetVideoScalingAllowed ( bool  Change)
slot

Disable or enable underscan/overscan.

Definition at line 581 of file mythvideobounds.cpp.

Referenced by MythVideoOutputGPU::Create().

◆ SetDisplayAspect

void MythVideoBounds::SetDisplayAspect ( float  DisplayAspect)
slot

◆ SetWindowSize

void MythVideoBounds::SetWindowSize ( QSize  Size)
slot

◆ SetITVResize

void MythVideoBounds::SetITVResize ( QRect  Rect)
slot

Definition at line 632 of file mythvideobounds.cpp.

Referenced by MythPlayerVideoUI::InitVideo().

◆ SetRotation

void MythVideoBounds::SetRotation ( int  Rotation)
slot

Set the rotation in degrees.

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

Definition at line 661 of file mythvideobounds.cpp.

Referenced by MythVideoOutputGPU::PrepareFrame().

◆ SetStereoOverride

void MythVideoBounds::SetStereoOverride ( StereoscopicMode  Mode)
slot

Definition at line 936 of file mythvideobounds.cpp.

Referenced by MythPlayerVideoUI::InitVideo().

◆ IsEmbedding()

bool MythVideoBounds::IsEmbedding ( void  ) const
inline

◆ IsEmbeddingAndHidden()

bool MythVideoBounds::IsEmbeddingAndHidden ( ) const
inline

Definition at line 69 of file mythvideobounds.h.

◆ GetVideoDim()

QSize MythVideoBounds::GetVideoDim ( void  ) const
inline

◆ GetVideoDispDim()

QSize MythVideoBounds::GetVideoDispDim ( void  ) const
inline

◆ GetOverridenVideoAspect()

float MythVideoBounds::GetOverridenVideoAspect ( void  ) const
inline

Definition at line 72 of file mythvideobounds.h.

Referenced by MythVideoOutput::GetVisibleOSDBounds().

◆ GetDisplayVisibleRect()

QRect MythVideoBounds::GetDisplayVisibleRect ( void  ) const
inline

◆ GetWindowRect()

QRect MythVideoBounds::GetWindowRect ( void  ) const
inline

◆ GetRawWindowRect()

QRect MythVideoBounds::GetRawWindowRect ( void  ) const
inline

◆ GetVideoRect()

QRect MythVideoBounds::GetVideoRect ( void  ) const
inline

◆ GetDisplayVideoRect()

QRect MythVideoBounds::GetDisplayVideoRect ( void  ) const
inline

◆ GetEmbeddingRect()

QRect MythVideoBounds::GetEmbeddingRect ( void  ) const
inline

◆ UsingGuiSize()

bool MythVideoBounds::UsingGuiSize ( void  ) const
inline

Definition at line 79 of file mythvideobounds.h.

Referenced by MythVideoOutputGPU::ResizeForVideo().

◆ GetAdjustFill()

AdjustFillMode MythVideoBounds::GetAdjustFill ( void  ) const
inline

◆ GetVideoAspect()

float MythVideoBounds::GetVideoAspect ( void  ) const
inline

◆ GetDisplayAspect()

float MythVideoBounds::GetDisplayAspect ( void  ) const
inline

◆ GetStereoOverride()

StereoscopicMode MythVideoBounds::GetStereoOverride ( ) const
inline

Definition at line 83 of file mythvideobounds.h.

Referenced by MythVideoOutputGPU::RenderFrame().

◆ VideoIsFullScreen()

bool MythVideoBounds::VideoIsFullScreen ( void  ) const

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

Used to avoid unnecessary screen clearing when possible.

Definition at line 743 of file mythvideobounds.cpp.

Referenced by MythVideoOutputOpenGL::RenderFrame().

◆ GetBoundingRegion()

QRegion MythVideoBounds::GetBoundingRegion ( void  ) const

Return the region of DisplayVisibleRect that lies outside of DisplayVideoRect.

Note
This assumes VideoIsFullScreen has already been checked

Definition at line 755 of file mythvideobounds.cpp.

Referenced by MythVideoOutputOpenGL::RenderFrame().

◆ PopulateGeometry()

void MythVideoBounds::PopulateGeometry ( void  )
private

Definition at line 103 of file mythvideobounds.cpp.

Referenced by InitBounds(), PhysicalDPIChanged(), and ScreenChanged().

◆ ApplyDBScaleAndMove()

void MythVideoBounds::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 219 of file mythvideobounds.cpp.

Referenced by MoveResize().

◆ ApplyManualScaleAndMove()

void MythVideoBounds::ApplyManualScaleAndMove ( void  )
private

Apply scales and moves from "Zoom Mode" settings.

Definition at line 322 of file mythvideobounds.cpp.

Referenced by MoveResize().

◆ ApplyLetterboxing()

void MythVideoBounds::ApplyLetterboxing ( void  )
private

Definition at line 350 of file mythvideobounds.cpp.

Referenced by MoveResize().

◆ PrintMoveResizeDebug()

void MythVideoBounds::PrintMoveResizeDebug ( void  )
private

Definition at line 480 of file mythvideobounds.cpp.

Referenced by MoveResize().

◆ SetVideoAspectRatio()

void MythVideoBounds::SetVideoAspectRatio ( float  aspect)
private

Sets MythVideoBounds::video_aspect to aspect, and sets MythVideoBounds::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 502 of file mythvideobounds.cpp.

Referenced by InitBounds(), SourceChanged(), ToggleAspectOverride(), and VideoAspectRatioChanged().

◆ Fix1088()

QSize MythVideoBounds::Fix1088 ( QSize  Dimensions)
staticprivate

Definition at line 547 of file mythvideobounds.cpp.

Referenced by InitBounds(), and SourceChanged().

◆ Rotate()

void MythVideoBounds::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 184 of file mythvideobounds.cpp.

Referenced by MoveResize().

Member Data Documentation

◆ m_display

MythDisplay* MythVideoBounds::m_display {nullptr}
protected

◆ m_dbMove

QPoint MythVideoBounds::m_dbMove {0,0}
private

Percentage move from database.

Definition at line 102 of file mythvideobounds.h.

Referenced by ApplyDBScaleAndMove(), and Rotate().

◆ m_dbHorizScale

float MythVideoBounds::m_dbHorizScale {0.0F}
private

Horizontal Overscan/Underscan percentage.

Definition at line 103 of file mythvideobounds.h.

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

◆ m_dbVertScale

float MythVideoBounds::m_dbVertScale {0.0F}
private

Vertical Overscan/Underscan percentage.

Definition at line 104 of file mythvideobounds.h.

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

◆ m_dbScalingAllowed

bool MythVideoBounds::m_dbScalingAllowed {true}
private

disable this to prevent overscan/underscan

Definition at line 105 of file mythvideobounds.h.

Referenced by SetVideoScalingAllowed().

◆ m_dbUseGUISize

bool MythVideoBounds::m_dbUseGUISize {false}
private

Use the gui size for video window.

Definition at line 106 of file mythvideobounds.h.

Referenced by UsingGuiSize().

◆ m_dbAspectOverride

AspectOverrideMode MythVideoBounds::m_dbAspectOverride { kAspect_Off }
private

Definition at line 107 of file mythvideobounds.h.

Referenced by InitBounds().

◆ m_dbAdjustFill

AdjustFillMode MythVideoBounds::m_dbAdjustFill { kAdjustFill_Off }
private

Definition at line 108 of file mythvideobounds.h.

Referenced by InitBounds().

◆ m_devicePixelRatio

qreal MythVideoBounds::m_devicePixelRatio {1.0}
private

◆ m_manualVertScale

float MythVideoBounds::m_manualVertScale {1.0F}
private

Manually applied vertical scaling.

Definition at line 112 of file mythvideobounds.h.

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

◆ m_manualHorizScale

float MythVideoBounds::m_manualHorizScale {1.0F}
private

Manually applied horizontal scaling.

Definition at line 113 of file mythvideobounds.h.

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

◆ m_manualMove

QPoint MythVideoBounds::m_manualMove {0,0}
private

Manually applied percentage move.

Definition at line 114 of file mythvideobounds.h.

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

◆ m_displayAspect

float MythVideoBounds::m_displayAspect {1.3333F}
private

Physical aspect ratio of playback window.

Definition at line 117 of file mythvideobounds.h.

Referenced by GetDisplayAspect(), InitBounds(), MoveResize(), Rotate(), and SetDisplayAspect().

◆ m_videoDim

QSize MythVideoBounds::m_videoDim {640,480}
private

Pixel dimensions of video buffer.

Definition at line 120 of file mythvideobounds.h.

Referenced by GetVideoDim(), InitBounds(), MoveResize(), and SourceChanged().

◆ m_videoDispDim

QSize MythVideoBounds::m_videoDispDim {640,480}
private

Pixel dimensions of video display area.

Definition at line 121 of file mythvideobounds.h.

Referenced by ApplyDBScaleAndMove(), GetVideoDispDim(), InitBounds(), MoveResize(), and SourceChanged().

◆ m_videoAspect

float MythVideoBounds::m_videoAspect {1.3333F}
private

Physical aspect ratio of video.

Definition at line 122 of file mythvideobounds.h.

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

◆ m_videoAspectOverride

float MythVideoBounds::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 126 of file mythvideobounds.h.

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

◆ m_videoAspectOverrideMode

AspectOverrideMode MythVideoBounds::m_videoAspectOverrideMode {kAspect_Off}
private

AspectOverrideMode to use to modify overriden_video_aspect.

Definition at line 128 of file mythvideobounds.h.

Referenced by InitBounds(), RefreshVideoBoundsState(), SetVideoAspectRatio(), and ToggleAspectOverride().

◆ m_adjustFill

AdjustFillMode MythVideoBounds::m_adjustFill {kAdjustFill_Off}
private

◆ m_rotation

int MythVideoBounds::m_rotation {0}
private

Definition at line 131 of file mythvideobounds.h.

Referenced by MoveResize(), and SetRotation().

◆ m_stereoOverride

StereoscopicMode MythVideoBounds::m_stereoOverride { kStereoscopicModeAuto }
private

◆ m_videoRect

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

Pixel rectangle in video frame to display.

Definition at line 135 of file mythvideobounds.h.

Referenced by ApplyDBScaleAndMove(), GetVideoRect(), InitBounds(), MoveResize(), and PrintMoveResizeDebug().

◆ m_displayVideoRect

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

Pixel rectangle in display window into which video_rect maps to.

Definition at line 137 of file mythvideobounds.h.

Referenced by ApplyDBScaleAndMove(), ApplyLetterboxing(), ApplyManualScaleAndMove(), EmbedPlayback(), GetBoundingRegion(), GetDisplayVideoRect(), MoveResize(), PrintMoveResizeDebug(), Rotate(), and VideoIsFullScreen().

◆ m_displayVisibleRect

QRect MythVideoBounds::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 140 of file mythvideobounds.h.

Referenced by ApplyDBScaleAndMove(), ApplyLetterboxing(), EmbedPlayback(), GetDisplayVisibleRect(), InitBounds(), MoveResize(), PhysicalDPIChanged(), ResizeDisplayWindow(), Rotate(), and SetWindowSize().

◆ m_windowRect

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

◆ m_rawWindowRect

QRect MythVideoBounds::m_rawWindowRect {0,0,0,0}
private

Rectangle describing QWidget bounds - not adjusted for high DPI scaling (macos)

Definition at line 144 of file mythvideobounds.h.

Referenced by GetRawWindowRect(), InitBounds(), PhysicalDPIChanged(), and SetWindowSize().

◆ m_tmpDisplayVisibleRect

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

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

Definition at line 147 of file mythvideobounds.h.

Referenced by EmbedPlayback(), and ResizeDisplayWindow().

◆ m_embeddingRect

QRect MythVideoBounds::m_embeddingRect
private

Embedded video rectangle.

Definition at line 149 of file mythvideobounds.h.

Referenced by EmbedPlayback().

◆ m_rawEmbeddingRect

QRect MythVideoBounds::m_rawEmbeddingRect
private

Definition at line 150 of file mythvideobounds.h.

Referenced by EmbedPlayback(), and GetEmbeddingRect().

◆ m_itvResizing

bool MythVideoBounds::m_itvResizing {false}
private

Definition at line 153 of file mythvideobounds.h.

Referenced by MoveResize(), and SetITVResize().

◆ m_itvDisplayVideoRect

QRect MythVideoBounds::m_itvDisplayVideoRect
private

Definition at line 154 of file mythvideobounds.h.

Referenced by MoveResize(), and SetITVResize().

◆ m_rawItvDisplayVideoRect

QRect MythVideoBounds::m_rawItvDisplayVideoRect
private

Definition at line 155 of file mythvideobounds.h.

Referenced by SetITVResize().

◆ m_embedding

bool MythVideoBounds::m_embedding {false}
private

State variables.

Definition at line 158 of file mythvideobounds.h.

Referenced by EmbedPlayback(), InitBounds(), and IsEmbedding().

◆ m_embeddingHidden

bool MythVideoBounds::m_embeddingHidden { false }
private

Definition at line 159 of file mythvideobounds.h.

Referenced by EmbedPlayback(), and IsEmbeddingAndHidden().

◆ m_bottomLine

bool MythVideoBounds::m_bottomLine {false}
private

Definition at line 160 of file mythvideobounds.h.

Referenced by ToggleMoveBottomLine().

◆ kManualZoomMaxHorizontalZoom

const float MythVideoBounds::kManualZoomMaxHorizontalZoom = 4.0F
staticprivate

Definition at line 163 of file mythvideobounds.h.

Referenced by Zoom().

◆ kManualZoomMaxVerticalZoom

const float MythVideoBounds::kManualZoomMaxVerticalZoom = 4.0F
staticprivate

Definition at line 164 of file mythvideobounds.h.

Referenced by Zoom().

◆ kManualZoomMinHorizontalZoom

const float MythVideoBounds::kManualZoomMinHorizontalZoom = 0.25F
staticprivate

Definition at line 165 of file mythvideobounds.h.

Referenced by Zoom().

◆ kManualZoomMinVerticalZoom

const float MythVideoBounds::kManualZoomMinVerticalZoom = 0.25F
staticprivate

Definition at line 166 of file mythvideobounds.h.

Referenced by Zoom().

◆ kManualZoomMaxMove

const int MythVideoBounds::kManualZoomMaxMove = 50
staticprivate

Definition at line 167 of file mythvideobounds.h.

Referenced by Zoom().


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