MythTV  master
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
VideoOutputVDPAU Class Reference

#include <videoout_vdpau.h>

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

Public Member Functions

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

Private Member Functions

bool hasFullScreenOSD (void) const override
 
void TearDown (void)
 
bool InitRender (void)
 
void DeleteRender (void)
 
bool InitBuffers (void)
 
bool CreateVideoSurfaces (uint num)
 
void ClaimVideoSurfaces (void)
 
void DeleteVideoSurfaces (void)
 
void DeleteBuffers (void)
 
void RestoreDisplay (void)
 
void UpdateReferenceFrames (VideoFrame *frame)
 
bool FrameIsInUse (VideoFrame *frame)
 
void ClearReferenceFrames (void)
 
void DiscardFrame (VideoFrame *) override
 Releases frame from any queue onto the queue of frames ready for decoding onto. More...
 
void DiscardFrames (bool next_frame_keyframe) override
 Releases all frames not being actively displayed from any queue onto the queue of frames ready for decoding onto. More...
 
void DoneDisplayingFrame (VideoFrame *frame) override
 Releases frame returned from GetLastShownFrame() onto the queue of frames ready for decoding onto. More...
 
void CheckFrameStates (void) override
 
void ShowPIP (VideoFrame *frame, MythPlayer *pipplayer, PIPLocation loc) override
 Composites PiP image onto a video frame. More...
 
void RemovePIP (MythPlayer *pipplayer) override
 
bool InitPIPLayer (QSize size)
 
void DeinitPIPS (void)
 
void DeinitPIPLayer (void)
 
void ParseOptions (void)
 

Private Attributes

Window m_win
 
MythRenderVDPAUm_render
 
AVVDPAUContext * m_context
 
uint m_decoder_buffer_size
 
uint m_process_buffer_size
 
QVector< uintm_video_surfaces
 
QVector< uintm_reference_frames
 
uint m_pause_surface
 
bool m_need_deintrefs
 
uint m_video_mixer
 
uint m_mixer_features
 
bool m_checked_surface_ownership
 
bool m_checked_output_surfaces
 
uint m_decoder
 
int m_pix_fmt
 
QMutex m_lock
 
uint m_pip_layer
 
uint m_pip_surface
 
bool m_pip_ready
 
QMap< MythPlayer *, vdpauPIPm_pips
 
MythVDPAUPainterm_osd_painter
 
bool m_skip_chroma
 
float m_denoise
 
float m_sharpen
 
int m_colorspace
 

Additional Inherited Members

- Protected Member Functions inherited from VideoOutput
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. More...
 
virtual void ShowPIPs (VideoFrame *frame, const PIPMap &pipPlayers)
 
virtual bool DisplayOSD (VideoFrame *frame, OSD *osd)
 If the OSD has changed, this will convert the OSD buffer to the OSDSurface's color format. More...
 
QRect GetVisibleOSDBounds (float &, float &, float) const
 Returns visible portions of total OSD bounds. More...
 
QRect GetTotalOSDBounds (void) const
 Returns total OSD bounds. More...
 
void DoPipResize (int pipwidth, int pipheight)
 Sets up Picture in Picture image resampler. More...
 
void ShutdownPipResize (void)
 Shuts down Picture in Picture image resampler. More...
 
void ResizeVideo (VideoFrame *frame)
 
void DoVideoResize (const QSize &inDim, const QSize &outDim)
 Sets up Picture in Picture image resampler. More...
 
virtual void ShutdownVideoResize (void)
 
- Static Protected Member Functions inherited from VideoOutput
static void CopyFrame (VideoFrame *to, const VideoFrame *from)
 Copies frame data from one VideoFrame to another. More...
 
- Protected Attributes inherited from VideoOutput
VideoOutWindow window
 
QSize db_display_dim
 Screen dimensions in millimeters from DB. More...
 
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. More...
 
VideoErrorState errorState
 
long long framesPlayed
 
DisplayResdisplay_res
 
QSize monitor_sz
 
QSize monitor_dim
 
MythYUVAPainterosd_painter
 
MythImageosd_image
 
MythPainterinvalid_osd_painter
 
VideoVisualm_visual
 
StereoscopicMode m_stereo
 
MythAVCopy m_copyFrame
 

Detailed Description

Definition at line 18 of file videoout_vdpau.h.

Constructor & Destructor Documentation

◆ VideoOutputVDPAU()

VideoOutputVDPAU::VideoOutputVDPAU ( )

Definition at line 54 of file videoout_vdpau.cpp.

◆ ~VideoOutputVDPAU()

VideoOutputVDPAU::~VideoOutputVDPAU ( )

Definition at line 74 of file videoout_vdpau.cpp.

Member Function Documentation

◆ GetRenderOptions()

void VideoOutputVDPAU::GetRenderOptions ( render_opts opts)
static

Definition at line 29 of file videoout_vdpau.cpp.

Referenced by VideoOutput::GetRenderOptions().

◆ Init()

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

Performs most of the initialization for VideoOutput.

Returns
true if successful, false otherwise.

Reimplemented from VideoOutput.

Definition at line 91 of file videoout_vdpau.cpp.

Referenced by InputChanged().

◆ GetDecoderContext()

void * VideoOutputVDPAU::GetDecoderContext ( unsigned char *  buf,
uint8_t *&  id 
)
overridevirtual

Reimplemented from VideoOutput.

Definition at line 1360 of file videoout_vdpau.cpp.

◆ SetDeinterlacingEnabled()

bool VideoOutputVDPAU::SetDeinterlacingEnabled ( bool  enable)
overridevirtual

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

Reimplemented from VideoOutput.

Definition at line 327 of file videoout_vdpau.cpp.

◆ SetupDeinterlace()

bool VideoOutputVDPAU::SetupDeinterlace ( bool  interlaced,
const QString &  overridefilter = "" 
)
overridevirtual

Attempts to enable or disable deinterlacing.

Returns
true if successful, false otherwise.
Parameters
interlacedDesired state of interlacing.
overridefilteroptional, explicitly use this nondefault deinterlacing filter

Reimplemented from VideoOutput.

Definition at line 336 of file videoout_vdpau.cpp.

Referenced by SetDeinterlacingEnabled().

◆ ApproveDeintFilter()

bool VideoOutputVDPAU::ApproveDeintFilter ( const QString &  filtername) const
overridevirtual

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

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

Returns
whether current video output supports a specific filter.

Reimplemented from VideoOutput.

Definition at line 398 of file videoout_vdpau.cpp.

◆ ProcessFrame()

void VideoOutputVDPAU::ProcessFrame ( VideoFrame frame,
OSD osd,
FilterChain filterList,
const PIPMap pipPlayers,
FrameScanType  scan 
)
overridevirtual

Implements VideoOutput.

Definition at line 403 of file videoout_vdpau.cpp.

◆ PrepareFrame()

void VideoOutputVDPAU::PrepareFrame ( VideoFrame frame,
FrameScanType  scan,
OSD osd 
)
overridevirtual

Implements VideoOutput.

Definition at line 430 of file videoout_vdpau.cpp.

◆ DrawSlice()

void VideoOutputVDPAU::DrawSlice ( VideoFrame frame,
int  x,
int  y,
int  w,
int  h 
)
overridevirtual

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

Reimplemented from VideoOutput.

Definition at line 577 of file videoout_vdpau.cpp.

◆ Show()

void VideoOutputVDPAU::Show ( FrameScanType  )
overridevirtual

Implements VideoOutput.

Definition at line 707 of file videoout_vdpau.cpp.

◆ ClearAfterSeek()

void VideoOutputVDPAU::ClearAfterSeek ( void  )
overridevirtual

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

Reimplemented from VideoOutput.

Definition at line 720 of file videoout_vdpau.cpp.

◆ InputChanged()

bool VideoOutputVDPAU::InputChanged ( const QSize &  video_dim_buf,
const QSize &  video_dim_disp,
float  aspect,
MythCodecID  myth_codec_id,
void *  codec_private,
bool aspect_changed 
)
overridevirtual

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().
Parameters
video_dim_bufThe size of the video buffer.
video_dim_dispThe size of the video display.
aspectThe width/height of the presented video.
myth_codec_idThe video codec ID.
codec_privatePrivate data for the video codec.
aspect_changedAn output parameter indicating that only the aspect ratio has changed. It must be initialized to false before calling this function.

Reimplemented from VideoOutput.

Definition at line 728 of file videoout_vdpau.cpp.

◆ Zoom()

void VideoOutputVDPAU::Zoom ( ZoomDirection  direction)
overridevirtual

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

See also
ToggleAdjustFill(AdjustFillMode)

Reimplemented from VideoOutput.

Definition at line 791 of file videoout_vdpau.cpp.

◆ VideoAspectRatioChanged()

void VideoOutputVDPAU::VideoAspectRatioChanged ( float  aspect)
overridevirtual

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

Parameters
aspectvideo aspect ratio to use

Reimplemented from VideoOutput.

Definition at line 798 of file videoout_vdpau.cpp.

Referenced by InputChanged().

◆ EmbedInWidget()

void VideoOutputVDPAU::EmbedInWidget ( const QRect &  rect)
overridevirtual

Tells video output to embed video in an existing window.

See also
StopEmbedding()

Reimplemented from VideoOutput.

Definition at line 804 of file videoout_vdpau.cpp.

Referenced by InputChanged().

◆ StopEmbedding()

void VideoOutputVDPAU::StopEmbedding ( void  )
overridevirtual

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

See also
EmbedInWidget(const QRect&)

Reimplemented from VideoOutput.

Definition at line 815 of file videoout_vdpau.cpp.

Referenced by InputChanged().

◆ MoveResizeWindow()

void VideoOutputVDPAU::MoveResizeWindow ( QRect  new_rect)
overridevirtual

Implements VideoOutput.

Definition at line 824 of file videoout_vdpau.cpp.

◆ DrawUnusedRects()

void VideoOutputVDPAU::DrawUnusedRects ( bool  sync = true)
overridevirtual

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.

Implements VideoOutput.

Definition at line 832 of file videoout_vdpau.cpp.

Referenced by Show().

◆ UpdatePauseFrame()

void VideoOutputVDPAU::UpdatePauseFrame ( int64_t &  disp_timecode)
overridevirtual

Updates frame displayed when video is paused.

Implements VideoOutput.

Definition at line 846 of file videoout_vdpau.cpp.

◆ SetPictureAttribute()

int VideoOutputVDPAU::SetPictureAttribute ( PictureAttribute  attribute,
int  newValue 
)
overridevirtual

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 from VideoOutput.

Definition at line 918 of file videoout_vdpau.cpp.

◆ InitPictureAttributes()

void VideoOutputVDPAU::InitPictureAttributes ( void  )
overridevirtual

Reimplemented from VideoOutput.

Definition at line 885 of file videoout_vdpau.cpp.

Referenced by Init().

◆ GetAllowedRenderers()

QStringList VideoOutputVDPAU::GetAllowedRenderers ( MythCodecID  myth_codec_id,
const QSize &  video_dim 
)
static

Definition at line 932 of file videoout_vdpau.cpp.

Referenced by VideoOutput::Create().

◆ GetBestSupportedCodec()

MythCodecID VideoOutputVDPAU::GetBestSupportedCodec ( uint  width,
uint  height,
const QString &  decoder,
uint  stream_type,
bool  no_acceleration 
)
static

Definition at line 945 of file videoout_vdpau.cpp.

Referenced by AvFormatDecoder::ScanStreams().

◆ IsNVIDIA()

bool VideoOutputVDPAU::IsNVIDIA ( void  )
static

Definition at line 970 of file videoout_vdpau.cpp.

◆ IsPIPSupported()

bool VideoOutputVDPAU::IsPIPSupported ( void  ) const
inlineoverridevirtual

Reimplemented from VideoOutput.

Definition at line 62 of file videoout_vdpau.h.

◆ IsPBPSupported()

bool VideoOutputVDPAU::IsPBPSupported ( void  ) const
inlineoverridevirtual

Reimplemented from VideoOutput.

Definition at line 64 of file videoout_vdpau.h.

◆ NeedExtraAudioDecode()

bool VideoOutputVDPAU::NeedExtraAudioDecode ( void  ) const
inlineoverridevirtual

Reimplemented from VideoOutput.

Definition at line 66 of file videoout_vdpau.h.

◆ hasHWAcceleration()

bool VideoOutputVDPAU::hasHWAcceleration ( void  ) const
inlineoverridevirtual

Return true if HW Acceleration is running.

Reimplemented from VideoOutput.

Definition at line 68 of file videoout_vdpau.h.

◆ GetOSDPainter()

MythPainter * VideoOutputVDPAU::GetOSDPainter ( void  )
overridevirtual

Reimplemented from VideoOutput.

Definition at line 1331 of file videoout_vdpau.cpp.

◆ GetScreenShot()

bool VideoOutputVDPAU::GetScreenShot ( int  width = 0,
int  height = 0,
QString  filename = "" 
)
overridevirtual

Reimplemented from VideoOutput.

Definition at line 1336 of file videoout_vdpau.cpp.

◆ CanVisualise()

bool VideoOutputVDPAU::CanVisualise ( AudioPlayer audio,
MythRender  
)
inlineoverridevirtual

Reimplemented from VideoOutput.

Definition at line 74 of file videoout_vdpau.h.

◆ SetupVisualisation()

bool VideoOutputVDPAU::SetupVisualisation ( AudioPlayer audio,
MythRender ,
const QString &  name 
)
inlineoverridevirtual

Reimplemented from VideoOutput.

Definition at line 76 of file videoout_vdpau.h.

◆ GetVisualiserList()

QStringList VideoOutputVDPAU::GetVisualiserList ( void  )
overridevirtual

Reimplemented from VideoOutput.

Definition at line 1343 of file videoout_vdpau.cpp.

◆ ClearDummyFrame()

void VideoOutputVDPAU::ClearDummyFrame ( VideoFrame frame)
overridevirtual

Clears the frame to black.

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

Reimplemented from VideoOutput.

Definition at line 418 of file videoout_vdpau.cpp.

◆ SetVideoFlip()

void VideoOutputVDPAU::SetVideoFlip ( void  )
overridevirtual

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

Reimplemented from VideoOutput.

Definition at line 1350 of file videoout_vdpau.cpp.

◆ getRender()

MythRenderVDPAU* VideoOutputVDPAU::getRender ( ) const
inline

Definition at line 82 of file videoout_vdpau.h.

Referenced by get_format_vdpau().

◆ hasFullScreenOSD()

bool VideoOutputVDPAU::hasFullScreenOSD ( void  ) const
inlineoverrideprivatevirtual

Reimplemented from VideoOutput.

Definition at line 85 of file videoout_vdpau.h.

◆ TearDown()

void VideoOutputVDPAU::TearDown ( void  )
private

Definition at line 81 of file videoout_vdpau.cpp.

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

◆ InitRender()

bool VideoOutputVDPAU::InitRender ( void  )
private

Definition at line 134 of file videoout_vdpau.cpp.

Referenced by Init().

◆ DeleteRender()

void VideoOutputVDPAU::DeleteRender ( void  )
private

Definition at line 161 of file videoout_vdpau.cpp.

Referenced by TearDown().

◆ InitBuffers()

bool VideoOutputVDPAU::InitBuffers ( void  )
private

Definition at line 192 of file videoout_vdpau.cpp.

Referenced by Init().

◆ CreateVideoSurfaces()

bool VideoOutputVDPAU::CreateVideoSurfaces ( uint  num)
private

Definition at line 262 of file videoout_vdpau.cpp.

Referenced by InitBuffers().

◆ ClaimVideoSurfaces()

void VideoOutputVDPAU::ClaimVideoSurfaces ( void  )
private

Definition at line 566 of file videoout_vdpau.cpp.

Referenced by DrawSlice(), and ProcessFrame().

◆ DeleteVideoSurfaces()

void VideoOutputVDPAU::DeleteVideoSurfaces ( void  )
private

Definition at line 287 of file videoout_vdpau.cpp.

Referenced by DeleteBuffers().

◆ DeleteBuffers()

void VideoOutputVDPAU::DeleteBuffers ( void  )
private

Definition at line 297 of file videoout_vdpau.cpp.

Referenced by InitBuffers(), and TearDown().

◆ RestoreDisplay()

void VideoOutputVDPAU::RestoreDisplay ( void  )
private

Definition at line 310 of file videoout_vdpau.cpp.

Referenced by TearDown().

◆ UpdateReferenceFrames()

void VideoOutputVDPAU::UpdateReferenceFrames ( VideoFrame frame)
private

Definition at line 977 of file videoout_vdpau.cpp.

Referenced by PrepareFrame().

◆ FrameIsInUse()

bool VideoOutputVDPAU::FrameIsInUse ( VideoFrame frame)
private

Definition at line 994 of file videoout_vdpau.cpp.

Referenced by CheckFrameStates(), and DiscardFrame().

◆ ClearReferenceFrames()

void VideoOutputVDPAU::ClearReferenceFrames ( void  )
private

Definition at line 1006 of file videoout_vdpau.cpp.

Referenced by DiscardFrames(), PrepareFrame(), and SetupDeinterlace().

◆ DiscardFrame()

void VideoOutputVDPAU::DiscardFrame ( VideoFrame frame)
overrideprivatevirtual

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

Reimplemented from VideoOutput.

Definition at line 1013 of file videoout_vdpau.cpp.

Referenced by DoneDisplayingFrame().

◆ DiscardFrames()

void VideoOutputVDPAU::DiscardFrames ( bool  kf)
overrideprivatevirtual

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

Reimplemented from VideoOutput.

Definition at line 1028 of file videoout_vdpau.cpp.

Referenced by ClearAfterSeek(), and DeleteBuffers().

◆ DoneDisplayingFrame()

void VideoOutputVDPAU::DoneDisplayingFrame ( VideoFrame frame)
overrideprivatevirtual

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

Reimplemented from VideoOutput.

Definition at line 1041 of file videoout_vdpau.cpp.

◆ CheckFrameStates()

void VideoOutputVDPAU::CheckFrameStates ( void  )
overrideprivatevirtual

Reimplemented from VideoOutput.

Definition at line 1050 of file videoout_vdpau.cpp.

Referenced by DiscardFrames(), DoneDisplayingFrame(), and Show().

◆ ShowPIP()

void VideoOutputVDPAU::ShowPIP ( VideoFrame frame,
MythPlayer pipplayer,
PIPLocation  loc 
)
overrideprivatevirtual

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 from VideoOutput.

Definition at line 1126 of file videoout_vdpau.cpp.

◆ RemovePIP()

void VideoOutputVDPAU::RemovePIP ( MythPlayer pipplayer)
overrideprivatevirtual

Reimplemented from VideoOutput.

Definition at line 1217 of file videoout_vdpau.cpp.

Referenced by DeinitPIPS(), and ShowPIP().

◆ InitPIPLayer()

bool VideoOutputVDPAU::InitPIPLayer ( QSize  size)
private

Definition at line 1081 of file videoout_vdpau.cpp.

Referenced by ShowPIP().

◆ DeinitPIPS()

void VideoOutputVDPAU::DeinitPIPS ( void  )
private

Definition at line 1095 of file videoout_vdpau.cpp.

Referenced by TearDown().

◆ DeinitPIPLayer()

void VideoOutputVDPAU::DeinitPIPLayer ( void  )
private

Definition at line 1106 of file videoout_vdpau.cpp.

Referenced by RemovePIP(), and TearDown().

◆ ParseOptions()

void VideoOutputVDPAU::ParseOptions ( void  )
private

Definition at line 1235 of file videoout_vdpau.cpp.

Referenced by Init().

Member Data Documentation

◆ m_win

Window VideoOutputVDPAU::m_win
private

Definition at line 112 of file videoout_vdpau.h.

Referenced by Init(), InitRender(), and InputChanged().

◆ m_render

MythRenderVDPAU* VideoOutputVDPAU::m_render
private

◆ m_context

AVVDPAUContext* VideoOutputVDPAU::m_context
private

Definition at line 114 of file videoout_vdpau.h.

Referenced by GetDecoderContext(), VideoOutputVDPAU(), and ~VideoOutputVDPAU().

◆ m_decoder_buffer_size

uint VideoOutputVDPAU::m_decoder_buffer_size
private

Definition at line 116 of file videoout_vdpau.h.

Referenced by DrawSlice(), InitBuffers(), and ParseOptions().

◆ m_process_buffer_size

uint VideoOutputVDPAU::m_process_buffer_size
private

Definition at line 117 of file videoout_vdpau.h.

Referenced by DrawSlice(), InitBuffers(), and ParseOptions().

◆ m_video_surfaces

QVector<uint> VideoOutputVDPAU::m_video_surfaces
private

◆ m_reference_frames

QVector<uint> VideoOutputVDPAU::m_reference_frames
private

◆ m_pause_surface

uint VideoOutputVDPAU::m_pause_surface
private

Definition at line 120 of file videoout_vdpau.h.

Referenced by InitBuffers(), PrepareFrame(), and UpdatePauseFrame().

◆ m_need_deintrefs

bool VideoOutputVDPAU::m_need_deintrefs
private

Definition at line 121 of file videoout_vdpau.h.

Referenced by PrepareFrame(), and SetupDeinterlace().

◆ m_video_mixer

uint VideoOutputVDPAU::m_video_mixer
private

◆ m_mixer_features

uint VideoOutputVDPAU::m_mixer_features
private

Definition at line 123 of file videoout_vdpau.h.

Referenced by InitBuffers(), and ParseOptions().

◆ m_checked_surface_ownership

bool VideoOutputVDPAU::m_checked_surface_ownership
private

Definition at line 124 of file videoout_vdpau.h.

Referenced by ClaimVideoSurfaces(), DeleteBuffers(), DrawSlice(), and ProcessFrame().

◆ m_checked_output_surfaces

bool VideoOutputVDPAU::m_checked_output_surfaces
private

Definition at line 125 of file videoout_vdpau.h.

Referenced by DeleteRender(), and PrepareFrame().

◆ m_decoder

uint VideoOutputVDPAU::m_decoder
private

Definition at line 127 of file videoout_vdpau.h.

Referenced by DeleteRender(), DrawSlice(), and PrepareFrame().

◆ m_pix_fmt

int VideoOutputVDPAU::m_pix_fmt
private

Definition at line 128 of file videoout_vdpau.h.

Referenced by DeleteRender(), and DrawSlice().

◆ m_lock

QMutex VideoOutputVDPAU::m_lock
private

◆ m_pip_layer

uint VideoOutputVDPAU::m_pip_layer
private

Definition at line 132 of file videoout_vdpau.h.

Referenced by DeinitPIPLayer(), InitPIPLayer(), and PrepareFrame().

◆ m_pip_surface

uint VideoOutputVDPAU::m_pip_surface
private

Definition at line 133 of file videoout_vdpau.h.

Referenced by DeinitPIPLayer(), InitPIPLayer(), and ShowPIP().

◆ m_pip_ready

bool VideoOutputVDPAU::m_pip_ready
private

Definition at line 134 of file videoout_vdpau.h.

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

◆ m_pips

QMap<MythPlayer*,vdpauPIP> VideoOutputVDPAU::m_pips
private

Definition at line 135 of file videoout_vdpau.h.

Referenced by DeinitPIPS(), RemovePIP(), and ShowPIP().

◆ m_osd_painter

MythVDPAUPainter* VideoOutputVDPAU::m_osd_painter
private

Definition at line 137 of file videoout_vdpau.h.

Referenced by DeleteRender(), GetOSDPainter(), InitRender(), and PrepareFrame().

◆ m_skip_chroma

bool VideoOutputVDPAU::m_skip_chroma
private

Definition at line 139 of file videoout_vdpau.h.

Referenced by InitBuffers(), and ParseOptions().

◆ m_denoise

float VideoOutputVDPAU::m_denoise
private

Definition at line 140 of file videoout_vdpau.h.

Referenced by InitBuffers(), and ParseOptions().

◆ m_sharpen

float VideoOutputVDPAU::m_sharpen
private

Definition at line 141 of file videoout_vdpau.h.

Referenced by InitBuffers(), and ParseOptions().

◆ m_colorspace

int VideoOutputVDPAU::m_colorspace
private

Definition at line 142 of file videoout_vdpau.h.

Referenced by InitPictureAttributes(), and ParseOptions().


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