4 * Classes to support streaming video input (grabbing) and output.
6 * Portable Windows Library
8 * Copyright (c) 1993-2001 Equivalence Pty. Ltd.
10 * The contents of this file are subject to the Mozilla Public License
11 * Version 1.0 (the "License"); you may not use this file except in
12 * compliance with the License. You may obtain a copy of the License at
13 * http://www.mozilla.org/MPL/
15 * Software distributed under the License is distributed on an "AS IS"
16 * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
17 * the License for the specific language governing rights and limitations
20 * The Original Code is Portable Windows Library.
22 * The Initial Developer of the Original Code is Equivalence Pty. Ltd.
24 * Contributor(s): Roger Hardiman <roger@freebsd.org>
27 * Revision 1.8 2004/01/02 23:30:18 rjongbloed
28 * Removed extraneous static function for getting input device names that has been deprecated during the plug ins addition.
30 * Revision 1.7 2002/04/10 08:40:36 rogerh
31 * Simplify the SetVideoChannelFormat() code. Use the implementation in the
34 * Revision 1.6 2002/04/05 06:41:54 rogerh
35 * Apply video changes from Damien Sandras <dsandras@seconix.com>.
36 * The Video Channel and Format are no longer set in Open(). Instead
37 * call the new SetVideoChannelFormat() method. This makes video capture
38 * and GnomeMeeting more stable with certain Linux video capture devices.
40 * Revision 1.5 2002/01/14 11:52:44 rogerh
43 * Revision 1.4 2001/12/05 08:34:41 rogerh
44 * Add more dummy functions
46 * Revision 1.3 2001/09/24 09:11:07 rogerh
47 * Add dummy methods, submitted by Andreas Wrede <awrede@mac.com>
49 * Revision 1.2 2001/06/27 17:43:32 rogerh
50 * MakeOpen to return FALSE. Also change every things else to return failure.
52 * Revision 1.1 2001/06/27 17:27:23 rogerh
53 * Dummy video allows code dependent on PVideoInputDevice to compile and link.
54 * It has no functionality.
58 #pragma implementation "videoio.h"
61 #include <ptlib/videoio.h>
62 #include <ptlib/vfakeio.h>
63 #include <ptlib/vconvert.h>
65 ///////////////////////////////////////////////////////////////////////////////
68 PVideoInputDevice::PVideoInputDevice()
73 BOOL
PVideoInputDevice::Open(const PString
& devName
, BOOL startImmediate
)
79 BOOL
PVideoInputDevice::IsOpen()
85 BOOL
PVideoInputDevice::Close()
91 BOOL
PVideoInputDevice::Start()
97 BOOL
PVideoInputDevice::Stop()
103 BOOL
PVideoInputDevice::IsCapturing()
109 BOOL
PVideoInputDevice::SetVideoFormat(VideoFormat newFormat
)
115 int PVideoInputDevice::GetBrightness()
121 BOOL
PVideoInputDevice::SetBrightness(unsigned newBrightness
)
127 int PVideoInputDevice::GetHue()
133 BOOL
PVideoInputDevice::SetHue(unsigned newHue
)
139 int PVideoInputDevice::GetContrast()
145 BOOL
PVideoInputDevice::SetContrast(unsigned newContrast
)
151 BOOL
PVideoInputDevice::GetParameters (int *whiteness
, int *brightness
,
152 int *colour
, int *contrast
, int *hue
)
158 int PVideoInputDevice::GetNumChannels()
164 BOOL
PVideoInputDevice::SetChannel(int newChannel
)
170 BOOL
PVideoInputDevice::SetColourFormat(const PString
& newFormat
)
176 BOOL
PVideoInputDevice::SetFrameRate(unsigned rate
)
182 BOOL
PVideoInputDevice::GetFrameSizeLimits(unsigned & minWidth
,
183 unsigned & minHeight
,
185 unsigned & maxHeight
)
191 BOOL
PVideoInputDevice::SetFrameSize(unsigned width
, unsigned height
)
197 PINDEX
PVideoInputDevice::GetMaxFrameBytes()
204 BOOL
PVideoInputDevice::GetFrameData(BYTE
* buffer
, PINDEX
* bytesReturned
)
210 BOOL
PVideoInputDevice::GetFrameDataNoDelay(BYTE
* buffer
, PINDEX
* bytesReturned
)
216 void PVideoInputDevice::ClearMapping()
220 BOOL
PVideoInputDevice::VerifyHardwareFrameSize(unsigned width
,
223 // Assume the size is valid
227 BOOL
PVideoInputDevice::TestAllFormats()
232 // End Of File ///////////////////////////////////////////////////////////////