#include <videoout_d3d.h>
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 MythPainter * | GetOSDPainter (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 |
| MythRenderD3D9 * | m_render |
| D3D9Image * | m_video |
| bool | m_render_valid |
| bool | m_render_reset |
| QMap< MythPlayer *, D3D9Image * > | m_pips |
| QMap< MythPlayer *, bool > | m_pip_ready |
| D3D9Image * | m_pip_active |
| MythD3D9Painter * | m_osd_painter |
| DXVA2Decoder * | m_decoder |
| void * | m_pause_surface |
Definition at line 15 of file videoout_d3d.h.
| VideoOutputD3D::VideoOutputD3D | ( | void | ) |
Definition at line 57 of file videoout_d3d.cpp.
| VideoOutputD3D::~VideoOutputD3D | ( | ) |
Definition at line 71 of file videoout_d3d.cpp.
| 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.
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.
| 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().
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.
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.
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.
| 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.
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().
VideoFrame VideoOutputD3D::m_pauseFrame [private] |
Definition at line 78 of file videoout_d3d.h.
Referenced by CreatePauseFrame(), ProcessFrame(), TearDown(), UpdatePauseFrame(), and VideoOutputD3D().
QMutex VideoOutputD3D::m_lock [private] |
Definition at line 79 of file videoout_d3d.h.
Referenced by CreateDecoder(), DeleteDecoder(), DestroyContext(), Init(), InitBuffers(), InputChanged(), ProcessFrame(), RemovePIP(), SetupContext(), TearDown(), UpdatePauseFrame(), and Zoom().
HWND VideoOutputD3D::m_hWnd [private] |
Definition at line 80 of file videoout_d3d.h.
Referenced by Init(), InputChanged(), and SetupContext().
HWND VideoOutputD3D::m_hEmbedWnd [private] |
Definition at line 81 of file videoout_d3d.h.
Referenced by Show().
MythRenderD3D9* VideoOutputD3D::m_render [private] |
Definition at line 82 of file videoout_d3d.h.
Referenced by CanVisualise(), CreateDecoder(), DestroyContext(), Init(), PrepareFrame(), ProcessFrame(), SetupContext(), SetupVisualisation(), Show(), and ShowPIP().
D3D9Image* VideoOutputD3D::m_video [private] |
Definition at line 83 of file videoout_d3d.h.
Referenced by DestroyContext(), PrepareFrame(), ProcessFrame(), and SetupContext().
bool VideoOutputD3D::m_render_valid [private] |
Definition at line 84 of file videoout_d3d.h.
Referenced by DestroyContext(), PrepareFrame(), ProcessFrame(), SetupContext(), and Show().
bool VideoOutputD3D::m_render_reset [private] |
Definition at line 85 of file videoout_d3d.h.
Referenced by DestroyContext(), PrepareFrame(), ProcessFrame(), and Show().
QMap<MythPlayer*,D3D9Image*> VideoOutputD3D::m_pips [private] |
Definition at line 87 of file videoout_d3d.h.
Referenced by DestroyContext(), PrepareFrame(), RemovePIP(), and ShowPIP().
QMap<MythPlayer*,bool> VideoOutputD3D::m_pip_ready [private] |
Definition at line 88 of file videoout_d3d.h.
Referenced by DestroyContext(), PrepareFrame(), RemovePIP(), and ShowPIP().
D3D9Image* VideoOutputD3D::m_pip_active [private] |
Definition at line 89 of file videoout_d3d.h.
Referenced by PrepareFrame(), and ShowPIP().
MythD3D9Painter* VideoOutputD3D::m_osd_painter [private] |
Definition at line 91 of file videoout_d3d.h.
Referenced by GetOSDPainter(), Init(), PrepareFrame(), and TearDown().
DXVA2Decoder* VideoOutputD3D::m_decoder [private] |
Definition at line 96 of file videoout_d3d.h.
Referenced by CreateDecoder(), DeleteDecoder(), GetDecoderContext(), InitBuffers(), and VideoOutputD3D().
void* VideoOutputD3D::m_pause_surface [private] |
Definition at line 98 of file videoout_d3d.h.
Referenced by ProcessFrame(), UpdatePauseFrame(), and VideoOutputD3D().
1.6.3