videoInput関数リスト


  //turns off console messages - default is to print messages
  static void setVerbose(bool _verbose);
  
  //Functions in rough order they should be used.
  static int listDevices(bool silent = false);

  //needs to be called after listDevices - otherwise returns NULL
  static char * getDeviceName(int deviceID);
  
  //choose to use callback based capture - or single threaded
  void setUseCallback(bool useCallback); 
  
  //call before setupDevice
  //directshow will try and get the closest possible framerate to what is requested
  void setIdealFramerate(int deviceID, int idealFramerate);

  //some devices will stop delivering frames after a while - this method gives you the option to try and reconnect
  //to a device if videoInput detects that a device has stopped delivering frames. 
  //you MUST CALL isFrameNew every app loop for this to have any effect
  void setAutoReconnectOnFreeze(int deviceNumber, bool doReconnect, int numMissedFramesBeforeReconnect);
  
  //Choose one of these four to setup your device
  bool setupDevice(int deviceID);
  bool setupDevice(int deviceID, int w, int h);

  //These two are only for capture cards
  //USB and Firewire cameras souldn't specify connection 
  bool setupDevice(int deviceID, int connection); 
  bool setupDevice(int deviceID, int w, int h, int connection); 
  
  //If you need to you can set your NTSC/PAL/SECAM
  //preference here. if it is available it will be used.
  //see #defines above for available formats - eg VI_NTSC_M or VI_PAL_B
  //should be called after setupDevice
  //can be called multiple times
  bool setFormat(int deviceNumber, int format); 
    
  //Tells you when a new frame has arrived - you should call this if you have specified setAutoReconnectOnFreeze to true
  bool isFrameNew(int deviceID); 
  
  bool isDeviceSetup(int deviceID);
      
  //Returns the pixels - flipRedAndBlue toggles RGB/BGR flipping - and you can flip the image too
  unsigned char * getPixels(int deviceID, bool flipRedAndBlue = true, bool flipImage = false);
  
  //Or pass in a buffer for getPixels to fill returns true if successful.
  bool getPixels(int id, unsigned char * pixels, bool flipRedAndBlue = true, bool flipImage = false);
  
  //Launches a pop up settings window
  //For some reason in GLUT you have to call it twice each time. 
  void showSettingsWindow(int deviceID);
  
  //Manual control over settings thanks..... 
  //These are experimental for now.
  bool setVideoSettingFilter(int deviceID, long Property, long lValue, long Flags = NULL, bool useDefaultValue = false);
  bool setVideoSettingFilterPct(int deviceID, long Property, float pctValue, long Flags = NULL);
  bool getVideoSettingFilter(int deviceID, long Property, long &min, long &max, long &SteppingDelta, long ¤tValue, long &flags, long &defaultValue);

  bool setVideoSettingCamera(int deviceID, long Property, long lValue, long Flags = NULL, bool useDefaultValue = false);
  bool setVideoSettingCameraPct(int deviceID, long Property, float pctValue, long Flags = NULL);
  bool getVideoSettingCamera(int deviceID, long Property, long &min, long &max, long &SteppingDelta, long ¤tValue, long &flags, long &defaultValue);

  //bool setVideoSettingCam(int deviceID, long Property, long lValue, long Flags = NULL, bool useDefaultValue = false);

  //get width, height and number of pixels
  int  getWidth(int deviceID);
  int  getHeight(int deviceID);
  int  getSize(int deviceID);
  
  //completely stops and frees a device
  void stopDevice(int deviceID);
  
  //as above but then sets it up with same settings
  bool restartDevice(int deviceID);