⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 videoio.h

📁 mgcp协议源代码。支持多种编码:g711
💻 H
字号:
/* * videoio.h * * Classes to support streaming video input (grabbing) and output. * * Portable Windows Library * * Copyright (c) 1993-2000 Equivalence Pty. Ltd. * * The contents of this file are subject to the Mozilla Public License * Version 1.0 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See * the License for the specific language governing rights and limitations * under the License. * * The Original Code is Portable Windows Library. * * The Initial Developer of the Original Code is Equivalence Pty. Ltd. * * Contributor(s): ______________________________________. * * $Log: videoio.h,v $ * Revision 1.5  2000/07/26 03:50:49  robertj * Added last error variable to video device. * * Revision 1.4  2000/07/26 02:13:46  robertj * Added some more "common" bounds checking to video device. * * Revision 1.3  2000/07/25 13:38:25  robertj * Added frame rate parameter to video frame grabber. * * Revision 1.2  2000/07/25 13:14:05  robertj * Got the video capture stuff going! * * Revision 1.1  2000/07/15 09:47:34  robertj * Added video I/O device classes. * */#define _PVIDEOIO#ifdef __GNUC__#pragma interface#endif/**This class defines a video device.   This class is used to abstract the few parameters that are common to both\   input and output devices. */class PVideoDevice : public PObject{  PCLASSINFO(PVideoDevice, PObject);  public:    enum VideoFormat {      PAL,      NTSC,      SECAM,      Auto,      NumVideoFormats    };    enum ColourFormat {      Grey,      Gray = Grey,      RGB24,      RGB32,      YUV422,      RGB565,      MJPEG,      NumColourFormats    };    enum StandardSizes {      CIF_WIDTH = 352,      CIF_HEIGHT = 288    };    /** Create a new video output device.     */    PVideoDevice(      VideoFormat videoformat = PAL,      unsigned channelNumber = 0,      ColourFormat colourFormat = RGB24    );    /**Open the device given the device name.      */    virtual BOOL Open(      const PString & deviceName,   /// Device name to open      BOOL startImmediate = TRUE    /// Immediately start device    ) = 0;    /**Determine of the device is currently open.      */    virtual BOOL IsOpen() const = 0;    /**Close the device.      */    virtual BOOL Close() = 0;    /**Start the video device I/O capture.      */    virtual BOOL Start() = 0;    /**Stop the video device I/O capture.      */    virtual BOOL Stop() = 0;    /**Determine if the video device I/O capture is in progress.      */    virtual BOOL IsCapturing() = 0;    /**Get the device name of the open device.      */    const PString & GetDeviceName() const      { return deviceName; }    /**Get a list of all of the drivers available.      */    virtual PStringList GetDeviceNames() const = 0;    /**Set the video format to be used.       Default behaviour sets the value of the videoFormat variable and then       returns the IsOpen() status.    */    virtual BOOL SetVideoFormat(      VideoFormat videoFormat   /// New video format    );    /**Get the video format being used.       Default behaviour returns the value of the videoFormat variable.    */    virtual VideoFormat GetVideoFormat() const;    /**Get the number of video channels available on the device.       Default behaviour returns 1.    */    virtual unsigned GetNumChannels() const;    /**Set the video channel to be used on the device.       Default behaviour sets the value of the channelNumber variable and then       returns the IsOpen() status.    */    virtual BOOL SetChannel(      unsigned channelNumber  /// New channel number for device.    );    /**Get the video channel to be used on the device.       Default behaviour returns the value of the channelNumber variable.    */    virtual unsigned GetChannel() const;    /**Set the colour format to be used.       Default behaviour sets the value of the colourFormat variable and then       returns the IsOpen() status.    */    virtual BOOL SetColourFormat(      ColourFormat colourFormat   // New colour format for device.    );    /**Get the colour format to be used.       Default behaviour returns the value of the colourFormat variable.    */    ColourFormat GetColourFormat() const;    /**Set the video frame rate to be used on the device.       Default behaviour sets the value of the frameRate variable and then       returns the IsOpen() status.    */    virtual BOOL SetFrameRate(      unsigned rate  /// Frames per 100 seconds    );    /**Get the video frame rate used on the device.       Default behaviour returns the value of the frameRate variable.    */    virtual unsigned GetFrameRate() const;    /**Get the minimum & maximum size of a frame on the device.       Default behaviour returns the value 1 to UINT_MAX for both and returns       FALSE.    */    virtual BOOL GetFrameSizeLimits(      unsigned & minWidth,   /// Variable to receive minimum width      unsigned & minHeight,  /// Variable to receive minimum height      unsigned & maxWidth,   /// Variable to receive maximum width      unsigned & maxHeight   /// Variable to receive maximum height    ) const;    /**Set the frame size to be used.       Default behaviour sets the frameWidth and frameHeight variables and       returns the IsOpen() status.    */    virtual BOOL SetFrameSize(      unsigned width,   /// New width of frame      unsigned height   /// New height of frame    );    /**Get the frame size being used.       Default behaviour returns the value of the frameWidth and frameHeight       variable and returns the IsOpen() status.    */    virtual BOOL GetFrameSize(      unsigned & width,      unsigned & height    ) const;    /**Get the maximum frame size in bytes.       Note a particular device may be able to provide variable length       frames (eg motion JPEG) so will be the maximum size of all frames.      */    virtual PINDEX GetMaxFrameBytes() = 0;    /**Get the last error code. This is a platform dependent number.      */    int GetLastError() const { return lastError; }  protected:    PString      deviceName;    int          lastError;    VideoFormat  videoFormat;    unsigned     channelNumber;    ColourFormat colourFormat;    unsigned     frameRate;    unsigned     frameWidth;    unsigned     frameHeight;};/**This class defines a video output device. */class PVideoOutputDevice : public PVideoDevice{  PCLASSINFO(PVideoOutputDevice, PVideoDevice);  public:    /** Create a new video output device.     */    PVideoOutputDevice(      VideoFormat videoformat = PAL,      int channelNumber = 0,      ColourFormat colourFormat = RGB24    );};/**This class defines a video input device. */class PVideoInputDevice : public PVideoDevice{  PCLASSINFO(PVideoInputDevice, PVideoDevice);  public:    /** Create a new video input device.     */    PVideoInputDevice(      VideoFormat videoformat = PAL,      unsigned channelNumber = 0,      ColourFormat colourFormat = RGB24    );    /**Close the video input device on destruction.      */    ~PVideoInputDevice() { Close(); }    /**Open the device given the device name.      */    virtual BOOL Open(      const PString & deviceName,   /// Device name to open      BOOL startImmediate = TRUE    /// Immediately start device    );    /**Determine of the device is currently open.      */    virtual BOOL IsOpen() const;    /**Close the device.      */    virtual BOOL Close();    /**Start the video device I/O.      */    virtual BOOL Start();    /**Stop the video device I/O capture.      */    virtual BOOL Stop();    /**Determine if the video device I/O capture is in progress.      */    virtual BOOL IsCapturing();    /**Get a list of all of the drivers available.      */    virtual PStringList GetDeviceNames() const;    /**Get the maximum frame size in bytes.       Note a particular device may be able to provide variable length       frames (eg motion JPEG) so will be the maximum size of all frames.      */    virtual PINDEX GetMaxFrameBytes();    /**Grab a frame.      */    virtual BOOL GetFrame(      PBYTEArray & frame    );    /**Grab a frame.      */    virtual BOOL GetFrameData(      BYTE * buffer,                 /// Buffer to receive frame      PINDEX * bytesReturned = NULL  /// OPtional bytes returned.    );#ifdef DOC_PLUS_PLUS};#endif// Class declaration continued in platform specific header file ///////////////

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -