00001 #ifndef VIDEOOUT_QUARTZ_H_
00002 #define VIDEOOUT_QUARTZ_H_
00003
00004 class DVDV;
00005 struct QuartzData;
00006
00007 #include "videooutbase.h"
00008
00009 class VideoOutputQuartz : public VideoOutput
00010 {
00011 public:
00012 VideoOutputQuartz(MythCodecID av_codec_id, void *codec_priv);
00013 ~VideoOutputQuartz();
00014
00015 bool Init(int width, int height, float aspect, WId winid,
00016 int winx, int winy, int winw, int winh, WId embedid = 0);
00017 void SetVideoFrameRate(float playback_fps);
00018 void PrepareFrame(VideoFrame *buffer, FrameScanType t);
00019 void Show(FrameScanType);
00020
00021 bool InputChanged(const QSize &input_size,
00022 float aspect,
00023 MythCodecID av_codec_id,
00024 void *codec_private);
00025 void VideoAspectRatioChanged(float aspect);
00026 void MoveResize(void);
00027 void Zoom(ZoomDirection direction);
00028
00029 void EmbedInWidget(WId wid, int x, int y, int w, int h);
00030 void StopEmbedding(void);
00031
00032 int GetRefreshRate(void);
00033
00034 void DrawUnusedRects(bool sync = true);
00035
00036 void UpdatePauseFrame(void);
00037 void ProcessFrame(VideoFrame *frame, OSD *osd,
00038 FilterChain *filterList,
00039 NuppelVideoPlayer *pipPlayer);
00040
00041 void SetDVDVDecoder(DVDV *dvdvdec);
00042
00043 static QStringList GetAllowedRenderers(MythCodecID myth_codec_id,
00044 const QSize &video_dim);
00045
00046 static MythCodecID GetBestSupportedCodec(
00047 uint width, uint height,
00048 uint osd_width, uint osd_height,
00049 uint stream_type, uint fourcc);
00050
00051 private:
00052 void Exit(void);
00053 bool CreateQuartzBuffers(void);
00054 void DeleteQuartzBuffers(void);
00055
00056 bool Started;
00057 QuartzData *data;
00058 VideoFrame pauseFrame;
00059 MythCodecID myth_codec_id;
00060 };
00061
00062 #endif