32 #ifndef PTLIB_PVIDEOIO_H
33 #define PTLIB_PVIDEOIO_H
58 friend ostream &
operator<<(ostream & strm, ResizeMode mode);
286 Types type = EndTypes,
299 virtual void PrintOn(ostream & strm)
const;
334 virtual void PrintOn(ostream & strm)
const;
429 template<
class PV
ideoXxxDevice>
446 const OpenArgs & args,
554 unsigned & minHeight,
648 Attributes & attributes
654 const Attributes & attributes
692 P_REMOVE_VIRTUAL(
int, GetBrightness(), 0);
693 P_REMOVE_VIRTUAL(
PBoolean, SetBrightness(
unsigned),
false);
694 P_REMOVE_VIRTUAL(
int, GetWhiteness(), 0);
695 P_REMOVE_VIRTUAL(
PBoolean, SetWhiteness(
unsigned),
false);
696 P_REMOVE_VIRTUAL(
int, GetColour(), 0);
697 P_REMOVE_VIRTUAL(
PBoolean, SetColour(
unsigned),
false);
698 P_REMOVE_VIRTUAL(
int, GetContrast(), 0);
699 P_REMOVE_VIRTUAL(
PBoolean, SetContrast(
unsigned),
false);
700 P_REMOVE_VIRTUAL(
int, GetHue(), 0);
701 P_REMOVE_VIRTUAL(
PBoolean, SetHue(
unsigned),
false);
702 P_REMOVE_VIRTUAL(
PBoolean, GetParameters(
int *,
int *,
int *,
int *,
int *),
false);
770 const OpenArgs & args,
807 bool & keyFrameNeeded
818 bool & keyFrameNeeded,
922 #ifdef SHOULD_BE_MOVED_TO_PLUGIN
933 PVideoOutputDevicePPM();
959 unsigned frameNumber;
962 #endif // SHOULD_BE_MOVED_TO_PLUGIN
1032 const OpenArgs & args,
1040 virtual void PrintOn(ostream & strm)
const;
1117 PINDEX * bytesReturned,
1123 PINDEX * bytesReturned = NULL
1130 PINDEX * bytesReturned,
1136 PINDEX * bytesReturned = NULL
1188 #define PCREATE_VIDINPUT_PLUGIN_EX(name, extra) \
1189 PCREATE_PLUGIN(name, PVideoInputDevice, PVideoInputDevice_##name, PPlugin_PVideoInputDevice, \
1190 virtual PStringArray GetDeviceNames(P_INT_PTR ) const { return PVideoInputDevice_##name::GetInputDeviceNames(); } \
1191 virtual bool GetDeviceCapabilities(const PString & deviceName, void * caps) const { return PVideoInputDevice_##name::GetDeviceCapabilities(deviceName, (PVideoInputDevice::Capabilities *)caps); } \
1194 #define PCREATE_VIDINPUT_PLUGIN(name) PCREATE_VIDINPUT_PLUGIN_EX(name, )
1197 #define P_FAKE_VIDEO_DRIVER "FakeVideo"
1198 #define P_FAKE_VIDEO_PREFIX "Fake/"
1199 #define P_FAKE_VIDEO_MOVING_BLOCKS P_FAKE_VIDEO_PREFIX"MovingBlocks"
1200 #define P_FAKE_VIDEO_MOVING_LINE P_FAKE_VIDEO_PREFIX"MovingLine"
1201 #define P_FAKE_VIDEO_BOUNCING_BOXES P_FAKE_VIDEO_PREFIX"BouncingBoxes"
1202 #define P_FAKE_VIDEO_SOLID_COLOUR P_FAKE_VIDEO_PREFIX"SolidColour"
1203 #define P_FAKE_VIDEO_TEXT P_FAKE_VIDEO_PREFIX"Text"
1204 #define P_FAKE_VIDEO_NTSC P_FAKE_VIDEO_PREFIX"NTSCTest"
1209 #define P_APPLICATION_VIDEO_DRIVER "Application"
1218 #define P_VIDEO_FILE_DRIVER "VideoFile"
1223 #define P_VIDEO_FOR_WINDOWS_DRIVER "VideoForWindows"
1228 #define P_DIRECT_SHOW_DRIVER "DirectShow"
1232 #if defined(P_MACOSX)
1244 #define PCREATE_VIDOUTPUT_PLUGIN_EX(name, extra) \
1245 PCREATE_PLUGIN(name, PVideoOutputDevice, PVideoOutputDevice_##name, PPlugin_PVideoOutputDevice, \
1246 virtual PStringArray GetDeviceNames(P_INT_PTR ) const { return PVideoOutputDevice_##name::GetOutputDeviceNames(); } \
1249 #define PCREATE_VIDOUTPUT_PLUGIN(name) PCREATE_VIDOUTPUT_PLUGIN_EX(name,)
1251 #define P_NULL_VIDEO_DRIVER "NULLOutput"
1252 #define P_NULL_VIDEO_DEVICE "Null Video Out"
1258 #define P_MSWIN_VIDEO_DRIVER "Window"
1259 #define P_MSWIN_VIDEO_PREFIX "MSWIN"
1260 #define P_MSWIN_VIDEO_DEVICE(x,y,width,height) P_MSWIN_VIDEO_PREFIX " X=" x " Y=" y " WIDTH=" width " HEIGHT=" height
1266 #if defined(P_MACOSX) || defined(P_IOS)
1267 #include <SDL_main.h>
1269 #define P_SDL_VIDEO_DRIVER "SDL"
1270 #define P_SDL_VIDEO_PREFIX "SDL"
1271 #define P_SDL_VIDEO_DEVICE(x,y,width,height) P_SDL_VIDEO_PREFIX " X=" x " Y=" y " WIDTH=" width " HEIGHT=" height
1298 #endif // PTLIB_PVIDEOIO_H