00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef _QVIDEOSTREAM_H
00027 #define _QVIDEOSTREAM_H
00028
00029
00030 #include <qwidget.h>
00031
00032 class QVideoStreamPrivate;
00033
00034 #define QVIDEO_METHOD_NONE 0
00035 #define QVIDEO_METHOD_XSHM 1
00036 #define QVIDEO_METHOD_XV 2
00037 #define QVIDEO_METHOD_XVSHM 4
00038 #define QVIDEO_METHOD_X11 8
00039 #define QVIDEO_METHOD_DGA 16
00040 #define QVIDEO_METHOD_GL 32
00041 #define QVIDEO_METHOD_SDL 64
00042
00043
00044 #define QVIDEO_FORMAT_NONE 0
00045 #define QVIDEO_FORMAT_YUV2 1
00046 #define QVIDEO_FORMAT_YV12 2
00047 #define QVIDEO_FORMAT_I420 3
00048 #define QVIDEO_FORMAT_UYVY 4
00049 #define QVIDEO_FORMAT_GREY 5
00050 #define QVIDEO_FORMAT_HI240 6
00051 #define QVIDEO_FORMAT_RGB565 7
00052 #define QVIDEO_FORMAT_RGB24 8
00053 #define QVIDEO_FORMAT_RGB32 9
00054 #define QVIDEO_FORMAT_RGB555 10
00055 #define QVIDEO_FORMAT_YUYV 11
00056
00057
00063 class QVideoStream : public QObject
00064 {
00065 Q_OBJECT
00066
00067 public:
00068 QVideoStream(QWidget *widget, const char* name = 0);
00069 ~QVideoStream();
00070
00071 bool scaling() const;
00072 void setScaling(bool scale);
00073
00074
00075 bool haveMethod(int method) const;
00076 int method() const;
00077 int setMethod(int method);
00078
00079
00080 QSize maxSize() const;
00081 int maxWidth() const;
00082 int maxHeight() const;
00083
00084
00085 QSize size() const;
00086 int width() const;
00087 int height() const;
00088
00089 QSize setSize(const QSize& sz);
00090 int setWidth(int width);
00091 int setHeight(int height);
00092
00093
00094 QSize inputSize() const;
00095 int inputWidth() const;
00096 int inputHeight() const;
00097
00098 QSize setInputSize(const QSize& sz);
00099 int setInputWidth(int width);
00100 int setInputHeight(int height);
00101
00102
00103 int format() const;
00104 int setFormat(int format);
00105
00106 QVideoStream& operator<<(const unsigned char *const img);
00107
00108 public slots:
00109 int displayFrame(const unsigned char *const img);
00110
00111 private:
00112 QVideoStreamPrivate *d;
00113 QWidget *_w;
00114 bool _scale;
00115 int _methods;
00116 int _method;
00117 QSize _size;
00118 QSize _inputSize;
00119 bool _init;
00120
00121 void deInit();
00122 void init();
00123 };
00124
00125 #endif
00126