VideoOutputD3D Class Reference

#include <videoout_d3d.h>

Inheritance diagram for VideoOutputD3D:
VideoOutput

List of all members.

Public Member Functions

 VideoOutputD3D ()
 ~VideoOutputD3D ()
bool Init (int width, int height, float aspect, WId winid, const QRect &win_rect, MythCodecID codec_id)
void PrepareFrame (VideoFrame *buffer, FrameScanType, OSD *osd)
void ProcessFrame (VideoFrame *frame, OSD *osd, FilterChain *filterList, const PIPMap &pipPlayers, FrameScanType scan)
void Show (FrameScanType)
void WindowResized (const QSize &new_size)
bool InputChanged (const QSize &input_size, float aspect, MythCodecID av_codec_id, void *codec_private, bool &aspect_only)
 Tells video output to discard decoded frames and wait for new ones.
void MoveResizeWindow (QRect new_rect)
void UpdatePauseFrame (int64_t &disp_timecode)
 Updates frame displayed when video is paused.
virtual void DrawUnusedRects (bool)
 Draws non-video portions of the screen.
void Zoom (ZoomDirection direction)
 Sets up zooming into to different parts of the video, the zoom is actually applied in MoveResize().
void EmbedInWidget (const QRect &rect)
 Tells video output to embed video in an existing window.
void StopEmbedding (void)
 Tells video output to stop embedding video in an existing window.
bool hasFullScreenOSD (void) const
void ShowPIP (VideoFrame *frame, MythPlayer *pipplayer, PIPLocation loc)
 Composites PiP image onto a video frame.
void RemovePIP (MythPlayer *pipplayer)
bool IsPIPSupported (void) const
virtual MythPainterGetOSDPainter (void)
bool hasHWAcceleration (void) const
 Return true if HW Acceleration is running.
virtual bool ApproveDeintFilter (const QString &filtername) const
 Approves bobdeint filter for XVideo and otherwise defers to VideoOutput::ApproveDeintFilter(const QString&).
virtual void * GetDecoderContext (unsigned char *buf, uint8_t *&id)
virtual bool CanVisualise (AudioPlayer *audio, MythRender *render)
virtual bool SetupVisualisation (AudioPlayer *audio, MythRender *render, const QString &name)

Static Public Member Functions

static void GetRenderOptions (render_opts &opts, QStringList &cpudeints)
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, PixelFormat &pix_fmt)

Private Member Functions

void TearDown (void)
bool SetupContext (void)
bool CreateBuffers (void)
bool InitBuffers (void)
bool CreatePauseFrame (void)
void SetProfile (void)
void DestroyContext (void)
void UpdateFrame (VideoFrame *frame, D3D9Image *img)
bool CreateDecoder (void)
void DeleteDecoder (void)

Private Attributes

VideoFrame m_pauseFrame
QMutex m_lock
HWND m_hWnd
HWND m_hEmbedWnd
MythRenderD3D9m_render
D3D9Imagem_video
bool m_render_valid
bool m_render_reset
QMap< MythPlayer *, D3D9Image * > m_pips
QMap< MythPlayer *, boolm_pip_ready
D3D9Imagem_pip_active
MythD3D9Painterm_osd_painter
DXVA2Decoderm_decoder
void * m_pause_surface

Detailed Description

Definition at line 15 of file videoout_d3d.h.


Constructor & Destructor Documentation

VideoOutputD3D::VideoOutputD3D ( void   ) 

Definition at line 57 of file videoout_d3d.cpp.

VideoOutputD3D::~VideoOutputD3D (  ) 

Definition at line 71 of file videoout_d3d.cpp.


Member Function Documentation

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

Definition at line 37 of file videoout_d3d.cpp.

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

Reimplemented from VideoOutput.

Definition at line 202 of file videoout_d3d.cpp.

Referenced by InputChanged().

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

Implements VideoOutput.

Definition at line 314 of file videoout_d3d.cpp.

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

Implements VideoOutput.

Definition at line 507 of file videoout_d3d.cpp.

void VideoOutputD3D::Show ( FrameScanType   )  [virtual]

Implements VideoOutput.

Definition at line 386 of file videoout_d3d.cpp.

void VideoOutputD3D::WindowResized ( const QSize &  new_size  )  [virtual]

Reimplemented from VideoOutput.

Definition at line 121 of file videoout_d3d.cpp.

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

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

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

Reimplemented from VideoOutput.

Definition at line 134 of file videoout_d3d.cpp.

void VideoOutputD3D::MoveResizeWindow ( QRect  new_rect  )  [inline, virtual]

Implements VideoOutput.

Definition at line 36 of file videoout_d3d.h.

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

Updates frame displayed when video is paused.

Implements VideoOutput.

Definition at line 427 of file videoout_d3d.cpp.

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

Draws non-video portions of the screen.

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

Implements VideoOutput.

Definition at line 38 of file videoout_d3d.h.

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

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

See also:
ToggleAdjustFill(AdjustFillMode)

Reimplemented from VideoOutput.

Definition at line 420 of file videoout_d3d.cpp.

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

Tells video output to embed video in an existing window.

See also:
StopEmbedding()

Reimplemented from VideoOutput.

Definition at line 403 of file videoout_d3d.cpp.

void VideoOutputD3D::StopEmbedding ( void   )  [virtual]

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

See also:
EmbedInWidget(const QRect&)

Reimplemented from VideoOutput.

Definition at line 412 of file videoout_d3d.cpp.

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

Reimplemented from VideoOutput.

Definition at line 42 of file videoout_d3d.h.

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

Definition at line 674 of file videoout_d3d.cpp.

Referenced by VideoOutput::Create().

MythCodecID VideoOutputD3D::GetBestSupportedCodec ( uint  width,
uint  height,
const QString &  decoder,
uint  stream_type,
bool  no_acceleration,
PixelFormat &  pix_fmt 
) [static]

Definition at line 703 of file videoout_d3d.cpp.

Referenced by AvFormatDecoder::ScanStreams().

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

Composites PiP image onto a video frame.

Note: This only works with memory backed VideoFrames.

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

Reimplemented from VideoOutput.

Definition at line 594 of file videoout_d3d.cpp.

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

Reimplemented from VideoOutput.

Definition at line 660 of file videoout_d3d.cpp.

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

Reimplemented from VideoOutput.

Definition at line 55 of file videoout_d3d.h.

MythPainter * VideoOutputD3D::GetOSDPainter ( void   )  [virtual]

Reimplemented from VideoOutput.

Definition at line 686 of file videoout_d3d.cpp.

bool VideoOutputD3D::hasHWAcceleration ( void   )  const [inline, virtual]

Return true if HW Acceleration is running.

Reimplemented from VideoOutput.

Definition at line 57 of file videoout_d3d.h.

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

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

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

Returns:
whether current video output supports a specific filter.

Reimplemented from VideoOutput.

Definition at line 691 of file videoout_d3d.cpp.

void * VideoOutputD3D::GetDecoderContext ( unsigned char *  buf,
uint8_t *&  id 
) [virtual]

Reimplemented from VideoOutput.

Definition at line 721 of file videoout_d3d.cpp.

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

Reimplemented from VideoOutput.

Definition at line 61 of file videoout_d3d.h.

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

Reimplemented from VideoOutput.

Definition at line 63 of file videoout_d3d.h.

void VideoOutputD3D::TearDown ( void   )  [private]

Definition at line 76 of file videoout_d3d.cpp.

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

bool VideoOutputD3D::SetupContext ( void   )  [private]

Definition at line 182 of file videoout_d3d.cpp.

Referenced by Init(), and ProcessFrame().

bool VideoOutputD3D::CreateBuffers ( void   )  [private]

Definition at line 258 of file videoout_d3d.cpp.

Referenced by Init().

bool VideoOutputD3D::InitBuffers ( void   )  [private]

Definition at line 275 of file videoout_d3d.cpp.

Referenced by Init().

bool VideoOutputD3D::CreatePauseFrame ( void   )  [private]

Definition at line 299 of file videoout_d3d.cpp.

Referenced by Init().

void VideoOutputD3D::SetProfile ( void   )  [private]

Definition at line 252 of file videoout_d3d.cpp.

Referenced by Init().

void VideoOutputD3D::DestroyContext ( void   )  [private]

Definition at line 95 of file videoout_d3d.cpp.

Referenced by SetupContext(), and TearDown().

void VideoOutputD3D::UpdateFrame ( VideoFrame frame,
D3D9Image img 
) [private]

Definition at line 451 of file videoout_d3d.cpp.

Referenced by ProcessFrame(), and ShowPIP().

bool VideoOutputD3D::CreateDecoder ( void   )  [private]

Definition at line 732 of file videoout_d3d.cpp.

Referenced by Init(), and ProcessFrame().

void VideoOutputD3D::DeleteDecoder ( void   )  [private]

Definition at line 747 of file videoout_d3d.cpp.

Referenced by CreateDecoder(), and TearDown().


Member Data Documentation

QMutex VideoOutputD3D::m_lock [private]
HWND VideoOutputD3D::m_hWnd [private]

Definition at line 80 of file videoout_d3d.h.

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

Definition at line 81 of file videoout_d3d.h.

Referenced by Show().

Definition at line 83 of file videoout_d3d.h.

Referenced by DestroyContext(), PrepareFrame(), ProcessFrame(), and SetupContext().

Definition at line 84 of file videoout_d3d.h.

Referenced by DestroyContext(), PrepareFrame(), ProcessFrame(), SetupContext(), and Show().

Definition at line 85 of file videoout_d3d.h.

Referenced by DestroyContext(), PrepareFrame(), ProcessFrame(), and Show().

Definition at line 87 of file videoout_d3d.h.

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

Definition at line 88 of file videoout_d3d.h.

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

Definition at line 89 of file videoout_d3d.h.

Referenced by PrepareFrame(), and ShowPIP().

Definition at line 91 of file videoout_d3d.h.

Referenced by GetOSDPainter(), Init(), PrepareFrame(), and TearDown().

Definition at line 98 of file videoout_d3d.h.

Referenced by ProcessFrame(), UpdatePauseFrame(), and VideoOutputD3D().


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