| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 | 
							- /**
 
-  * 版权声明
 
-  */
 
- #ifndef __MV_GMSL_CAMERA_H__
 
- #define __MV_GMSL_CAMERA_H__
 
- #include <cstdint>
 
- #ifdef MIIVII_NO_OPENCV
 
- #else
 
- #include <opencv2/opencv.hpp>
 
- #endif
 
- #include "MvGmslCameraVersion.h"
 
- #define CAMERA_NUM 8
 
- struct sync_out_a_cfg_client_t
 
- {
 
-     uint8_t  sync_camera_num;       //sync access camera num
 
-     uint8_t  sync_freq;             //sync camera frequency
 
-     uint8_t  sync_camera_bit_draw;  //assign camera to sync
 
-     uint8_t  async_camera_num;      //async access camera num
 
-     uint8_t  async_freq;                //async camera frequency
 
-     uint8_t  async_camera_bit_draw;     //assign camera to async
 
-     uint8_t  async_camera_pos[CAMERA_NUM];
 
- };
 
- typedef struct {
 
-     std::string dev_node;
 
-     std::string camera_fmt_str;
 
-     std::string output_fmt_str;
 
-     uint cam_w;
 
-     uint cam_h;
 
-     uint out_w;
 
-     uint out_h;
 
- } camera_context_t;
 
- namespace miivii {
 
-     class MvGmslCamera {
 
-     public:
 
-         /**
 
-         * Init GMSL camera with input patameters.
 
-         *
 
-         *
 
-         * @param[in] &devName Camera's device node name.
 
-         * @param[in] camCount Number of cameras plugged into the device node.
 
-         * @param[in] camWidth Single camera output width.
 
-         * @param[in] camHeight Single camera output height.
 
-         * @param[in] fps Frame rate(expressed in frames per second or FPS) .
 
-         * @param[in] imgWidth Output image width.
 
-         * @param[in] imgHeight Output image height.
 
-         * @param[in] format Image format.
 
-         *
 
-         * The SDK makes it easy to convert the camera output resolution to customize output image resolution you want.
 
-         * It uses the VIC(Video Image Compositor) for conversion, Therefore faster and more power-efficient.
 
-         *
 
-         * The GMSL-SDK supports following image format.
 
-         * UYVY, VYUY, YUYV, YUV420M,
 
-         * ABGR32, XBGR32, ARGB32.
 
-         * The code bellow demonstrate how set the SDK for ABGR32 format image:
 
-         * MvGmslCamera(_devName, 4, 1280, 720, 25, 1024, 576, string("ABGR32") );
 
-         *
 
-         */
 
-         MvGmslCamera(struct sync_out_a_cfg_client_t camera_cfg);
 
-         MvGmslCamera(camera_context_t *cam_ctx, uint32_t camCount, struct sync_out_a_cfg_client_t camera_cfg);
 
-         /**
 
-          * Terminate camera call.
 
-          * */
 
-         ~MvGmslCamera();
 
-         /**
 
-         * Get output RAW image.
 
-         *
 
-         * @param[in] *ppdata[] A pointer to get the image memory.
 
-         * @param[out] timestamp[] The exact time when this photo exposured.
 
-         *
 
-         *
 
-         * */
 
-         bool GetImagePtr(uint8_t *ppdata[], uint64_t *timestamp,uint8_t camera_no);
 
- #ifdef MIIVII_NO_OPENCV
 
- #else
 
-         /**
 
-         * Get cv::Mat type output image.
 
-         *
 
-         * @param[in] outMat[] A mat array whose size corresponding to camera count.
 
-         * @param[out] timestamp[] The exact time when the photos exposured.
 
-         *
 
-         * */
 
-         bool GetImageCvMat(cv::Mat out_mat[], uint64_t *timestamp,uint8_t camera_no);
 
- #endif
 
-         /**
 
-         * Get output RAW image.
 
-         *
 
-         * @param[in] *ppdata[] A pointer to get the image memory.
 
-         * @param[out] timestamp The exact time when this photo exposured.
 
-         *
 
-         *
 
-         * */
 
-         bool GetImagePtr(uint8_t *ppdata[], uint64_t ×tamp,uint8_t camera_no,std::string camera_dev);
 
- #ifdef MIIVII_NO_OPENCV
 
- #else
 
-         /**
 
-         * Get cv::Mat type output image.
 
-         *
 
-         * @param[in] outMat[] A mat array whose size corresponding to camera count.
 
-         * @param[out] timestamp The exact time when the photos exposured.
 
-         *
 
-         * */
 
-         bool GetImageCvMat(cv::Mat out_mat[], uint64_t ×tamp,uint8_t camera_no,std::string camera_dev);
 
- #endif
 
-         /**
 
-         * Get cv::Mat type output image.
 
-         *
 
-         * @param[in] CameraNum Camera namber.example:/dev/video1 CameraNum = 1
 
-         * @param[out] ×tamp The exact time when the photos exposured.
 
-         * The demo is in the cameras_opencv_demo.cpp
 
-         * Getting the timestamp needs to be called after getting the image.
 
-         * */
 
-         bool GetGmslTimeStamp(const uint8_t CameraNum,uint64_t ×tamp);
 
-         MvGmslCamera() = delete;
 
-         MvGmslCamera(const MvGmslCamera &) = delete;
 
-         MvGmslCamera &operator=(const MvGmslCamera &) = delete;
 
-     private:
 
-         void *handle_;
 
-     };
 
- }
 
- #endif //__MV_GMSL_CAMERA_H__
 
 
  |