videoio_c.h 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  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. #ifndef OPENCV_VIDEOIO_H
  42. #define OPENCV_VIDEOIO_H
  43. #include "opencv2/core/core_c.h"
  44. #include "opencv2/videoio/legacy/constants_c.h"
  45. #ifdef __cplusplus
  46. extern "C" {
  47. #endif /* __cplusplus */
  48. /**
  49. @addtogroup videoio_c
  50. @{
  51. */
  52. /****************************************************************************************\
  53. * Working with Video Files and Cameras *
  54. \****************************************************************************************/
  55. /** @brief "black box" capture structure
  56. In C++ use cv::VideoCapture
  57. */
  58. typedef struct CvCapture CvCapture;
  59. /** @brief start capturing frames from video file
  60. */
  61. CVAPI(CvCapture*) cvCreateFileCapture( const char* filename );
  62. /** @brief start capturing frames from video file. allows specifying a preferred API to use
  63. */
  64. CVAPI(CvCapture*) cvCreateFileCaptureWithPreference( const char* filename , int apiPreference);
  65. /** @brief start capturing frames from camera: index = camera_index + domain_offset (CV_CAP_*)
  66. */
  67. CVAPI(CvCapture*) cvCreateCameraCapture( int index );
  68. /** @brief grab a frame, return 1 on success, 0 on fail.
  69. this function is thought to be fast
  70. */
  71. CVAPI(int) cvGrabFrame( CvCapture* capture );
  72. /** @brief get the frame grabbed with cvGrabFrame(..)
  73. This function may apply some frame processing like
  74. frame decompression, flipping etc.
  75. @warning !!!DO NOT RELEASE or MODIFY the retrieved frame!!!
  76. */
  77. CVAPI(IplImage*) cvRetrieveFrame( CvCapture* capture, int streamIdx CV_DEFAULT(0) );
  78. /** @brief Just a combination of cvGrabFrame and cvRetrieveFrame
  79. @warning !!!DO NOT RELEASE or MODIFY the retrieved frame!!!
  80. */
  81. CVAPI(IplImage*) cvQueryFrame( CvCapture* capture );
  82. /** @brief stop capturing/reading and free resources
  83. */
  84. CVAPI(void) cvReleaseCapture( CvCapture** capture );
  85. /** @brief retrieve capture properties
  86. */
  87. CVAPI(double) cvGetCaptureProperty( CvCapture* capture, int property_id );
  88. /** @brief set capture properties
  89. */
  90. CVAPI(int) cvSetCaptureProperty( CvCapture* capture, int property_id, double value );
  91. /** @brief Return the type of the capturer (eg, ::CV_CAP_VFW, ::CV_CAP_UNICAP)
  92. It is unknown if created with ::CV_CAP_ANY
  93. */
  94. CVAPI(int) cvGetCaptureDomain( CvCapture* capture);
  95. /** @brief "black box" video file writer structure
  96. In C++ use cv::VideoWriter
  97. */
  98. typedef struct CvVideoWriter CvVideoWriter;
  99. /** @brief initialize video file writer
  100. */
  101. CVAPI(CvVideoWriter*) cvCreateVideoWriter( const char* filename, int fourcc,
  102. double fps, CvSize frame_size,
  103. int is_color CV_DEFAULT(1));
  104. /** @brief write frame to video file
  105. */
  106. CVAPI(int) cvWriteFrame( CvVideoWriter* writer, const IplImage* image );
  107. /** @brief close video file writer
  108. */
  109. CVAPI(void) cvReleaseVideoWriter( CvVideoWriter** writer );
  110. // ***************************************************************************************
  111. //! @name Obsolete functions/synonyms
  112. //! @{
  113. #define cvCaptureFromCAM cvCreateCameraCapture //!< @deprecated use cvCreateCameraCapture() instead
  114. #define cvCaptureFromFile cvCreateFileCapture //!< @deprecated use cvCreateFileCapture() instead
  115. #define cvCaptureFromAVI cvCaptureFromFile //!< @deprecated use cvCreateFileCapture() instead
  116. #define cvCreateAVIWriter cvCreateVideoWriter //!< @deprecated use cvCreateVideoWriter() instead
  117. #define cvWriteToAVI cvWriteFrame //!< @deprecated use cvWriteFrame() instead
  118. //! @} Obsolete...
  119. //! @} videoio_c
  120. #ifdef __cplusplus
  121. }
  122. #endif
  123. #endif //OPENCV_VIDEOIO_H