00001
00002
00003
00004 #ifndef VIDEOOUT_DVDV_H_
00005 #define VIDEOOUT_DVDV_H_
00006
00007 #include "frame.h"
00008
00009 class QSize;
00010 class AVCodecContext;
00011 struct DVDV_Private;
00012 struct AVCodecContext;
00013
00020 #ifndef USING_DVDV
00021
00022
00023 class DVDV
00024 {
00025 public:
00026 DVDV() {;}
00027 ~DVDV() {;}
00028
00029 void Reset(void) {;}
00030 bool SetVideoSize(const QSize&) { return false; }
00031 bool PreProcessFrame(AVCodecContext*) { return false; }
00032 void PostProcessFrame(AVCodecContext*, VideoFrame*, int, bool) {}
00033 };
00034
00035 #else // if !USING_DVDV
00036
00037 #include "dvdv.h"
00038
00039 class DVDV
00040 {
00041 public:
00042 DVDV();
00043 ~DVDV();
00044
00046 bool SetVideoSize(const QSize &video_dim);
00047
00051 void Teardown(void);
00052
00054 void Reset(void);
00055
00057 bool PreProcessFrame(AVCodecContext *context);
00058
00060 void PostProcessFrame(AVCodecContext *context,
00061 VideoFrame *pic, int pict_type, bool gotpicture);
00062
00064 void MoveResize(int imgx, int imgy, int imgw, int imgh,
00065 int dispxoff, int dispyoff, int dispwoff, int disphoff);
00066
00068 void DrawOSD(unsigned char *y, unsigned char *u, unsigned char *v,
00069 unsigned char *alpha);
00070
00072 void DecodeFrame(VideoFrame *pic);
00073
00075 void ShowFrame();
00076
00077 protected:
00078 struct DVDV_Private *d;
00079 };
00080
00081 #endif // !USING_DVDV
00082 #endif // VIDEOOUT_DVDV_H_