00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef _KVDR_XV_H
00020 #define _KVDR_XV_H
00021 #include <string.h>
00022 #include <sys/ipc.h>
00023 #include <sys/shm.h>
00024 #include <X11/Xlib.h>
00025 #include <X11/extensions/XShm.h>
00026 #include <X11/extensions/Xvlib.h>
00027 #define uint unsigned int
00028
00029 class XvDisplayer
00030 {
00031 private:
00032 bool gotPort;
00033 int grabbedPort;
00034 int img_width,img_height;
00035 QWidget *q;
00036 Window window;
00037 GC gc;
00038 XGCValues values;
00039 XvImage *xvImage;
00040 unsigned int port;
00041 XShmSegmentInfo shmInfo;
00042 Display *disp;
00043 int lb,rb,tb,bb;
00044 public:
00045 XvDisplayer( QWidget *q, uint _lb, uint _rb, uint _tb, uint _bb, unsigned long freq );
00046 ~XvDisplayer();
00047 bool usable();
00048 QSize size();
00049 void RecreateXImage(int width, int height);
00050 void put_shm(char *data);
00051 void put_di_shm(char *data);
00052 void put_di_field1(char *data);
00053 private:
00054 void put_video();
00055 void xv_setfreq(unsigned long freq);
00056 void xv_setfilterquality(unsigned long quality);
00057 };
00058
00059 #endif