github.com/kaydxh/golang@v0.0.131/pkg/gocv/cgo/third_path/opencv4/include/opencv2/videoio/videoio_c.h (about)

     1  /*M///////////////////////////////////////////////////////////////////////////////////////
     2  //
     3  //  IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
     4  //
     5  //  By downloading, copying, installing or using the software you agree to this license.
     6  //  If you do not agree to this license, do not download, install,
     7  //  copy or use the software.
     8  //
     9  //
    10  //                        Intel License Agreement
    11  //                For Open Source Computer Vision Library
    12  //
    13  // Copyright (C) 2000, Intel Corporation, all rights reserved.
    14  // Third party copyrights are property of their respective owners.
    15  //
    16  // Redistribution and use in source and binary forms, with or without modification,
    17  // are permitted provided that the following conditions are met:
    18  //
    19  //   * Redistribution's of source code must retain the above copyright notice,
    20  //     this list of conditions and the following disclaimer.
    21  //
    22  //   * Redistribution's in binary form must reproduce the above copyright notice,
    23  //     this list of conditions and the following disclaimer in the documentation
    24  //     and/or other materials provided with the distribution.
    25  //
    26  //   * The name of Intel Corporation may not be used to endorse or promote products
    27  //     derived from this software without specific prior written permission.
    28  //
    29  // This software is provided by the copyright holders and contributors "as is" and
    30  // any express or implied warranties, including, but not limited to, the implied
    31  // warranties of merchantability and fitness for a particular purpose are disclaimed.
    32  // In no event shall the Intel Corporation or contributors be liable for any direct,
    33  // indirect, incidental, special, exemplary, or consequential damages
    34  // (including, but not limited to, procurement of substitute goods or services;
    35  // loss of use, data, or profits; or business interruption) however caused
    36  // and on any theory of liability, whether in contract, strict liability,
    37  // or tort (including negligence or otherwise) arising in any way out of
    38  // the use of this software, even if advised of the possibility of such damage.
    39  //
    40  //M*/
    41  
    42  #ifndef OPENCV_VIDEOIO_H
    43  #define OPENCV_VIDEOIO_H
    44  
    45  #include "opencv2/core/core_c.h"
    46  
    47  #include "opencv2/videoio/legacy/constants_c.h"
    48  
    49  #ifdef __cplusplus
    50  extern "C" {
    51  #endif /* __cplusplus */
    52  
    53  /**
    54    @addtogroup videoio_c
    55    @{
    56  */
    57  
    58  /****************************************************************************************\
    59  *                         Working with Video Files and Cameras                           *
    60  \****************************************************************************************/
    61  
    62  /** @brief "black box" capture structure
    63  
    64  In C++ use cv::VideoCapture
    65  */
    66  typedef struct CvCapture CvCapture;
    67  
    68  /** @brief start capturing frames from video file
    69  */
    70  CVAPI(CvCapture*) cvCreateFileCapture( const char* filename );
    71  
    72  /** @brief start capturing frames from video file. allows specifying a preferred API to use
    73  */
    74  CVAPI(CvCapture*) cvCreateFileCaptureWithPreference( const char* filename , int apiPreference);
    75  
    76  /** @brief start capturing frames from camera: index = camera_index + domain_offset (CV_CAP_*)
    77  */
    78  CVAPI(CvCapture*) cvCreateCameraCapture( int index );
    79  
    80  /** @brief grab a frame, return 1 on success, 0 on fail.
    81  
    82    this function is thought to be fast
    83  */
    84  CVAPI(int) cvGrabFrame( CvCapture* capture );
    85  
    86  /** @brief get the frame grabbed with cvGrabFrame(..)
    87  
    88    This function may apply some frame processing like
    89    frame decompression, flipping etc.
    90    @warning !!!DO NOT RELEASE or MODIFY the retrieved frame!!!
    91  */
    92  CVAPI(IplImage*) cvRetrieveFrame( CvCapture* capture, int streamIdx CV_DEFAULT(0) );
    93  
    94  /** @brief Just a combination of cvGrabFrame and cvRetrieveFrame
    95  
    96    @warning !!!DO NOT RELEASE or MODIFY the retrieved frame!!!
    97  */
    98  CVAPI(IplImage*) cvQueryFrame( CvCapture* capture );
    99  
   100  /** @brief stop capturing/reading and free resources
   101  */
   102  CVAPI(void) cvReleaseCapture( CvCapture** capture );
   103  
   104  /** @brief retrieve capture properties
   105  */
   106  CVAPI(double) cvGetCaptureProperty( CvCapture* capture, int property_id );
   107  /** @brief set capture properties
   108  */
   109  CVAPI(int)    cvSetCaptureProperty( CvCapture* capture, int property_id, double value );
   110  
   111  /** @brief Return the type of the capturer (eg, ::CV_CAP_VFW, ::CV_CAP_UNICAP)
   112  
   113  It is unknown if created with ::CV_CAP_ANY
   114  */
   115  CVAPI(int)    cvGetCaptureDomain( CvCapture* capture);
   116  
   117  /** @brief "black box" video file writer structure
   118  
   119  In C++ use cv::VideoWriter
   120  */
   121  typedef struct CvVideoWriter CvVideoWriter;
   122  
   123  /** @brief initialize video file writer
   124  */
   125  CVAPI(CvVideoWriter*) cvCreateVideoWriter( const char* filename, int fourcc,
   126                                             double fps, CvSize frame_size,
   127                                             int is_color CV_DEFAULT(1));
   128  
   129  /** @brief write frame to video file
   130  */
   131  CVAPI(int) cvWriteFrame( CvVideoWriter* writer, const IplImage* image );
   132  
   133  /** @brief close video file writer
   134  */
   135  CVAPI(void) cvReleaseVideoWriter( CvVideoWriter** writer );
   136  
   137  // ***************************************************************************************
   138  //! @name Obsolete functions/synonyms
   139  //! @{
   140  #define cvCaptureFromCAM cvCreateCameraCapture //!< @deprecated use cvCreateCameraCapture() instead
   141  #define cvCaptureFromFile cvCreateFileCapture  //!< @deprecated use cvCreateFileCapture() instead
   142  #define cvCaptureFromAVI cvCaptureFromFile     //!< @deprecated use cvCreateFileCapture() instead
   143  #define cvCreateAVIWriter cvCreateVideoWriter  //!< @deprecated use cvCreateVideoWriter() instead
   144  #define cvWriteToAVI cvWriteFrame              //!< @deprecated use cvWriteFrame() instead
   145  //!  @} Obsolete...
   146  
   147  //! @} videoio_c
   148  
   149  #ifdef __cplusplus
   150  }
   151  #endif
   152  
   153  #endif //OPENCV_VIDEOIO_H