VideoOutputD3D Class Reference

#include <videoout_d3d.h>

Inheritance diagram for VideoOutputD3D:

VideoOutput

List of all members.


Detailed Description

Definition at line 16 of file videoout_d3d.h.


Public Member Functions

 VideoOutputD3D ()
 ~VideoOutputD3D ()
bool Init (int width, int height, float aspect, WId winid, int winx, int winy, int winw, int winh, WId embedid=0)
 Performs most of the initialization for VideoOutput.
bool InitD3D ()
void UnInitD3D ()
void PrepareFrame (VideoFrame *buffer, FrameScanType)
void ProcessFrame (VideoFrame *frame, OSD *osd, FilterChain *filterList, NuppelVideoPlayer *pipPlayer)
void Show (FrameScanType)
bool InputChanged (const QSize &input_size, float aspect, MythCodecID av_codec_id, void *codec_private)
 Tells video output to discard decoded frames and wait for new ones.
int GetRefreshRate (void)
 Returns current display's frame refresh period in microseconds.
void UpdatePauseFrame (void)
 Updates frame displayed when video is paused.
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 (WId wid, int x, int y, int w, int h)
 Tells video output to embed video in an existing window.
virtual void StopEmbedding (void)
 Tells video output to stop embedding video in an existing window.
float GetDisplayAspect (void) const
 Returns current display aspect ratio.

Static Public Member Functions

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

Private Member Functions

void Exit (void)

Private Attributes

int m_InputCX
int m_InputCY
VideoFrame m_pauseFrame
QMutex m_lock
int m_RefreshRate
HWND m_hWnd
HWND m_hEmbedWnd
D3DFORMAT m_ddFormat
IDirect3D9 * m_pD3D
IDirect3DDevice9 * m_pd3dDevice
IDirect3DSurface9 * m_pSurface
IDirect3DTexture9 * m_pTexture
IDirect3DVertexBuffer9 * m_pVertexBuffer

Constructor & Destructor Documentation

VideoOutputD3D::VideoOutputD3D ( void   ) 

Definition at line 50 of file videoout_d3d.cpp.

VideoOutputD3D::~VideoOutputD3D (  ) 

Definition at line 61 of file videoout_d3d.cpp.


Member Function Documentation

bool VideoOutputD3D::Init ( int  width,
int  height,
float  aspect,
WId  winid,
int  winx,
int  winy,
int  winw,
int  winh,
WId  embedid = 0 
) [virtual]

Performs most of the initialization for VideoOutput.

Returns:
true if successful, false otherwise.

Reimplemented from VideoOutput.

Definition at line 452 of file videoout_d3d.cpp.

bool VideoOutputD3D::InitD3D (  ) 

Definition at line 164 of file videoout_d3d.cpp.

Referenced by Init(), and InputChanged().

void VideoOutputD3D::UnInitD3D ( void   ) 

Definition at line 79 of file videoout_d3d.cpp.

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

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

Implements VideoOutput.

Definition at line 494 of file videoout_d3d.cpp.

void VideoOutputD3D::ProcessFrame ( VideoFrame frame,
OSD osd,
FilterChain filterList,
NuppelVideoPlayer pipPlayer 
) [virtual]

Implements VideoOutput.

Definition at line 765 of file videoout_d3d.cpp.

void VideoOutputD3D::Show ( FrameScanType   )  [virtual]

Implements VideoOutput.

Definition at line 534 of file videoout_d3d.cpp.

bool VideoOutputD3D::InputChanged ( const QSize &  input_size,
float  aspect,
MythCodecID  myth_codec_id,
void *  codec_private 
) [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 114 of file videoout_d3d.cpp.

int VideoOutputD3D::GetRefreshRate ( void   )  [virtual]

Returns current display's frame refresh period in microseconds.

e.g. 1000000 / frame_rate_in_Hz

Implements VideoOutput.

Definition at line 447 of file videoout_d3d.cpp.

void VideoOutputD3D::UpdatePauseFrame ( void   )  [virtual]

Updates frame displayed when video is paused.

Implements VideoOutput.

Definition at line 755 of file videoout_d3d.cpp.

void VideoOutputD3D::DrawUnusedRects ( bool  sync  )  [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 707 of file videoout_d3d.cpp.

Referenced by Show().

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 742 of file videoout_d3d.cpp.

void VideoOutputD3D::EmbedInWidget ( WId  wid,
int  x,
int  y,
int  w,
int  h 
) [virtual]

Tells video output to embed video in an existing window.

Parameters:
wid window to embed in.
x X location where to locate video
y Y location where to locate video
w width of video
h height of video
See also:
StopEmbedding()

Reimplemented from VideoOutput.

Definition at line 725 of file videoout_d3d.cpp.

void VideoOutputD3D::StopEmbedding ( void   )  [virtual]

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

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

Reimplemented from VideoOutput.

Definition at line 734 of file videoout_d3d.cpp.

float VideoOutputD3D::GetDisplayAspect ( void   )  const [virtual]

Returns current display aspect ratio.

Reimplemented from VideoOutput.

Definition at line 793 of file videoout_d3d.cpp.

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

Definition at line 804 of file videoout_d3d.cpp.

Referenced by VideoOutput::Create().

void VideoOutputD3D::Exit ( void   )  [private]

Definition at line 66 of file videoout_d3d.cpp.

Referenced by ~VideoOutputD3D().


Member Data Documentation

Definition at line 53 of file videoout_d3d.h.

Referenced by Init(), InitD3D(), InputChanged(), and PrepareFrame().

Definition at line 54 of file videoout_d3d.h.

Referenced by Init(), InitD3D(), InputChanged(), and PrepareFrame().

Definition at line 56 of file videoout_d3d.h.

Referenced by Exit(), Init(), InputChanged(), ProcessFrame(), UpdatePauseFrame(), and VideoOutputD3D().

QMutex VideoOutputD3D::m_lock [private]

Definition at line 57 of file videoout_d3d.h.

Referenced by Exit(), InitD3D(), InputChanged(), ProcessFrame(), UnInitD3D(), and UpdatePauseFrame().

Definition at line 59 of file videoout_d3d.h.

Referenced by GetRefreshRate(), and InitD3D().

HWND VideoOutputD3D::m_hWnd [private]

Definition at line 60 of file videoout_d3d.h.

Referenced by DrawUnusedRects(), Init(), InitD3D(), and Zoom().

Definition at line 61 of file videoout_d3d.h.

Referenced by EmbedInWidget(), and Show().

D3DFORMAT VideoOutputD3D::m_ddFormat [private]

Definition at line 62 of file videoout_d3d.h.

Referenced by InitD3D().

IDirect3D9* VideoOutputD3D::m_pD3D [private]

Definition at line 63 of file videoout_d3d.h.

Referenced by InitD3D(), and UnInitD3D().

IDirect3DDevice9* VideoOutputD3D::m_pd3dDevice [private]

Definition at line 64 of file videoout_d3d.h.

Referenced by InitD3D(), Show(), and UnInitD3D().

IDirect3DSurface9* VideoOutputD3D::m_pSurface [private]

Definition at line 65 of file videoout_d3d.h.

Referenced by InitD3D(), PrepareFrame(), Show(), and UnInitD3D().

IDirect3DTexture9* VideoOutputD3D::m_pTexture [private]

Definition at line 66 of file videoout_d3d.h.

Referenced by InitD3D(), Show(), and UnInitD3D().

IDirect3DVertexBuffer9* VideoOutputD3D::m_pVertexBuffer [private]

Definition at line 67 of file videoout_d3d.h.

Referenced by InitD3D(), Show(), and UnInitD3D().


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

Generated on Sat Dec 18 05:16:13 2010 for MythTV by  doxygen 1.5.5