Checkin of validated codec used during development
[opal.git] / plugins / video / H.261-vic / vic / grabber.h
blob42b2ce62c2a64b7dc341e7c0391613ed6ddccc78
1 /*-
2 * Copyright (c) 1993-1994 The Regents of the University of California.
3 * All rights reserved.
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution.
13 * 3. All advertising materials mentioning features or use of this software
14 * must display the following acknowledgement:
15 * This product includes software developed by the University of
16 * California, Berkeley and the Network Research Group at
17 * Lawrence Berkeley Laboratory.
18 * 4. Neither the name of the University nor of the Laboratory may be used
19 * to endorse or promote products derived from this software without
20 * specific prior written permission.
22 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
23 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
25 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
26 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
28 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
29 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
31 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32 * SUCH DAMAGE.
35 /************ Change log
37 * $Log$
38 * Revision 1.2 2006/07/31 09:09:22 csoutheren
39 * Checkin of validated codec used during development
41 * Revision 1.1.2.1 2006/04/06 01:17:17 csoutheren
42 * Initial version of H.261 video codec plugin for OPAL
44 * Revision 2.1 2003/03/15 23:42:59 robertj
45 * Update to OpenH323 v1.11.7
47 * Revision 1.12 2003/01/06 22:18:01 rogerh
48 * Add NetBSD grabber code. Submitted by Andreas Wrede.
50 * Revision 1.11 2001/05/10 05:25:44 robertj
51 * Removed need for VIC code to use ptlib.
53 * Revision 1.10 2000/12/19 22:22:34 dereks
54 * Remove connection to grabber-OS.cxx files. grabber-OS.cxx files no longer used.
55 * Video data is now read from a video channel, using the pwlib classes.
57 * Revision 1.9 2000/09/22 02:40:13 dereks
58 * Tidied code for generating test images.
59 * Added mechanism to ensure the entire frame is sent on startup.
61 * Revision 1.8 2000/09/08 06:41:38 craigs
62 * Added ability to set video device
63 * Added ability to select test input frames
65 * Revision 1.7 2000/09/08 03:42:04 dereks
66 * Add function to report to user the failed opening of the video device.
68 * Revision 1.6 2000/08/25 03:18:50 dereks
69 * Add change log facility (Thanks Robert for the info on implementation)
73 ********/
76 #ifndef grabber_h
77 #define grabber_h
78 #include "videoframe.h"
80 #define CIF_WIDTH 352
81 #define CIF_HEIGHT 288
83 #if 0
84 class Grabber {
85 public:
86 Grabber();
87 virtual ~Grabber();
88 virtual void Start();
89 virtual void Stop();
90 virtual void Grab(VideoFrame *vf);
91 virtual void SetSize(int _width,int _height);
92 void FailedToOpen(char *videoDeviceName);
93 void GrabMovingBlocksTestFrame(void);
94 void GrabMovingLineTestFrame(void);
96 u_int framesize; //bytes in frame, w*h
97 u_char* frame; //pointer to memory holding image obtained by grabber.
98 protected:
99 int running;
100 int width;
101 int height;
102 int operational; //boolean indicating if grabber is working.
103 char *mem; //Memory mapped to output of the driver for video grabbing.
104 int grab_count; //count of frames grabbed by grabber.
105 int port_; // video input or test image to use
108 #if P_LINUX
109 #include "grabber-linux.h"
110 #elif _WIN32
111 #include "grabber-windows.h"
112 #elif P_FREEBSD
113 #include "grabber-bsd.h"
114 #elif P_OPENBSD
115 #include "grabber-bsd.h"
116 #elif P_NETBSD
117 #include "grabber-bsd.h"
118 #else
119 #include "grabber-generic.h"
120 #endif
122 #endif //ifdef GRABBER_H
125 #endif