{
#endif
- int vision_source_init(vision_source_h *handle);
- int vision_source_exit(vision_source_h handle);
- int vision_source_open_device(vision_source_h handle, int device_index);
- int vision_source_close_device(vision_source_h handle);
- int vision_source_start_stream(vision_source_h handle, stream_cb callback,
- void *user_data);
- int vision_source_stop_stream(vision_source_h handle);
- int vision_source_enumerate_devices(
- vision_source_h handle,
- vision_source_device_info_list_s *info_list);
- int vision_source_set_stream_format(vision_source_h handle,
- vision_source_format_s *format);
- int vision_source_get_capture_frame(vision_source_h handle,
- vision_source_buffer_s *buffer);
- int vision_source_release_capture_frame(vision_source_h handle,
- int buffer_index);
+int vision_source_init(vision_source_h *handle);
+int vision_source_exit(vision_source_h handle);
+int vision_source_open_device(vision_source_h handle, int device_index);
+int vision_source_close_device(vision_source_h handle);
+int vision_source_start_stream(vision_source_h handle, stream_cb callback,
+ void *user_data);
+int vision_source_stop_stream(vision_source_h handle);
+int vision_source_enumerate_devices(
+ vision_source_h handle,
+ vision_source_device_info_list_s *info_list);
+int vision_source_set_stream_format(vision_source_h handle,
+ vision_source_format_s *format);
+int vision_source_get_capture_frame(vision_source_h handle,
+ vision_source_buffer_s *buffer);
+int vision_source_release_capture_frame(vision_source_h handle,
+ int buffer_index);
#ifdef __cplusplus
}
{
#endif
- typedef struct vision_source_resolution
- {
- uint32_t width;
- uint32_t height;
- } vision_source_resolution_s;
-
- typedef enum vision_source_pixel_format
- {
- VISION_SOURCE_PIXEL_FORMAT_RGB24 = 0x0000,
- VISION_SOURCE_PIXEL_FORMAT_MAX
- } vision_source_pixel_format_e;
-
- typedef struct vision_source_pixel_format_list
- {
- uint32_t count;
- vision_source_pixel_format_e
- pixel_formats[VISION_SOURCE_PIXEL_FORMAT_MAX];
- } vision_source_pixel_format_list_s;
-
- typedef struct vision_source_resolution_list
- {
- uint32_t count;
- vision_source_resolution_s resolutions[RESOLUTION_COUNT_MAX];
- } vision_source_resolution_list_s;
-
- typedef struct vision_source_fps_list
- {
- uint32_t count;
- int fps[FPS_COUNT_MAX];
- } vision_source_fps_list_s;
-
- typedef struct vision_source_resolution_match_fps
- {
- vision_source_resolution_s resolution;
- vision_source_fps_list_s fps_list;
- } vision_source_resolution_match_fps_s;
-
- typedef struct vision_source_resolution_match_fps_list
- {
- uint32_t count;
- vision_source_resolution_match_fps_s resolutions[RESOLUTION_COUNT_MAX];
- } vision_source_resolution_match_fps_list_s;
-
- typedef struct vision_source_pixel_match_resolution
- {
- vision_source_pixel_format_e pixel_format;
- vision_source_resolution_match_fps_list_s resolution_list;
- } vision_source_pixel_match_resolution_s;
-
- typedef struct vision_source_pixel_match_resolution_list
- {
- uint32_t count;
- vision_source_pixel_match_resolution_s
- pixels[VISION_SOURCE_PIXEL_FORMAT_MAX];
- } vision_source_pixel_match_resolution_list_s;
-
- typedef struct vision_source_device_info
- {
- uint32_t index;
- char name[DEVICE_NAME_LENGTH_MAX];
- char node_path[DEVICE_NODE_PATH_LENGTH_MAX];
- vision_source_pixel_match_resolution_list_s pixel_list;
- } vision_source_device_info_s;
-
- typedef struct vision_source_device_info_list
- {
- uint32_t count;
- vision_source_device_info_s device_info[DEVICE_COUNT_MAX];
- } vision_source_device_info_list_s;
-
- typedef struct vision_source_plane
- {
- unsigned char *data;
- uint32_t align_width;
- uint32_t align_height;
- uint32_t size;
- uint32_t used_size;
- } vision_source_plane_s;
-
- typedef struct vision_source_format
- {
- vision_source_pixel_format_e pixel_format;
- vision_source_resolution_s resolution;
- uint32_t fps;
- uint32_t quality;
- uint32_t bitrate;
- } vision_source_format_s;
-
- typedef struct vision_source_buffer
- {
- int index;
- vision_source_pixel_format_e pixel_format;
- vision_source_resolution_s resolution;
- uint32_t total_size;
- uint32_t num_planes;
- vision_source_plane_s planes[BUFFER_PLANE_MAX];
- // uint32_t num_bos;
- // void *bos[BUFFER_PLANE_MAX];
- } vision_source_buffer_s;
-
- typedef enum vision_source_error
- {
- VISION_SOURCE_ERROR_NONE = 0,
- VISION_SOURCE_ERROR_INVALID_PARAMETER,
- VISION_SOURCE_ERROR_INTERNAL,
- VISION_SOURCE_ERROR_NOT_IMPLEMENTED,
- VISION_SOURCE_ERROR_UNKNOWN
- } vision_source_error_e;
-
- typedef void *vision_source_h;
-
- typedef int (*stream_cb)(vision_source_buffer_s *buffer, void *user_data);
-
- typedef struct vision_source_func
- {
- int (*init)(vision_source_h *handle);
- int (*exit)(vision_source_h handle);
- int (*open_device)(vision_source_h handle, int device_index);
- int (*close_device)(vision_source_h handle);
-
- int (*enumerate_devices)(vision_source_h handle,
- vision_source_device_info_list_s *info_list);
- int (*set_stream_format)(vision_source_h handle,
- vision_source_format_s *format);
-
- int (*start_stream)(vision_source_h handle, stream_cb callback,
- void *user_data);
- int (*stop_stream)(vision_source_h handle);
-
- int (*get_capture_frame)(vision_source_h handle,
- vision_source_buffer_s *buffer);
- int (*release_capture_frame)(vision_source_h handle, int buffer_index);
- } vision_source_func_s;
-
- void attach_backend(vision_source_func_s *funcp);
+typedef struct vision_source_resolution
+{
+ uint32_t width;
+ uint32_t height;
+} vision_source_resolution_s;
+
+typedef enum vision_source_pixel_format
+{
+ VISION_SOURCE_PIXEL_FORMAT_RGB24 = 0x0000,
+ VISION_SOURCE_PIXEL_FORMAT_GREY,
+ VISION_SOURCE_PIXEL_FORMAT_Y10,
+ VISION_SOURCE_PIXEL_FORMAT_NV12,
+ VISION_SOURCE_PIXEL_FORMAT_NV21,
+ VISION_SOURCE_PIXEL_FORMAT_YVU420, //YV12
+ VISION_SOURCE_PIXEL_FORMAT_YUV420, //I420
+ VISION_SOURCE_PIXEL_FORMAT_MAX
+} vision_source_pixel_format_e;
+
+typedef struct vision_source_pixel_format_list
+{
+ uint32_t count;
+ vision_source_pixel_format_e
+ pixel_formats[VISION_SOURCE_PIXEL_FORMAT_MAX];
+} vision_source_pixel_format_list_s;
+
+typedef struct vision_source_resolution_list
+{
+ uint32_t count;
+ vision_source_resolution_s resolutions[RESOLUTION_COUNT_MAX];
+} vision_source_resolution_list_s;
+
+typedef struct vision_source_fps_list
+{
+ uint32_t count;
+ int fps[FPS_COUNT_MAX];
+} vision_source_fps_list_s;
+
+typedef struct vision_source_resolution_match_fps
+{
+ vision_source_resolution_s resolution;
+ vision_source_fps_list_s fps_list;
+} vision_source_resolution_match_fps_s;
+
+typedef struct vision_source_resolution_match_fps_list
+{
+ uint32_t count;
+ vision_source_resolution_match_fps_s resolutions[RESOLUTION_COUNT_MAX];
+} vision_source_resolution_match_fps_list_s;
+
+typedef struct vision_source_pixel_match_resolution
+{
+ vision_source_pixel_format_e pixel_format;
+ vision_source_resolution_match_fps_list_s resolution_list;
+} vision_source_pixel_match_resolution_s;
+
+typedef struct vision_source_pixel_match_resolution_list
+{
+ uint32_t count;
+ vision_source_pixel_match_resolution_s
+ pixels[VISION_SOURCE_PIXEL_FORMAT_MAX];
+} vision_source_pixel_match_resolution_list_s;
+
+typedef struct vision_source_device_info
+{
+ uint32_t index;
+ char name[DEVICE_NAME_LENGTH_MAX];
+ char node_path[DEVICE_NODE_PATH_LENGTH_MAX];
+ vision_source_pixel_match_resolution_list_s pixel_list;
+} vision_source_device_info_s;
+
+typedef struct vision_source_device_info_list
+{
+ uint32_t count;
+ vision_source_device_info_s device_info[DEVICE_COUNT_MAX];
+} vision_source_device_info_list_s;
+
+typedef struct vision_source_plane
+{
+ unsigned char *data;
+ uint32_t align_width;
+ uint32_t align_height;
+ uint32_t size;
+ uint32_t used_size;
+} vision_source_plane_s;
+
+typedef struct vision_source_format
+{
+ vision_source_pixel_format_e pixel_format;
+ vision_source_resolution_s resolution;
+ uint32_t fps;
+ uint32_t quality;
+ uint32_t bitrate;
+} vision_source_format_s;
+
+typedef struct vision_source_buffer
+{
+ int index;
+ vision_source_pixel_format_e pixel_format;
+ vision_source_resolution_s resolution;
+ uint32_t total_size;
+ uint32_t num_planes;
+ vision_source_plane_s planes[BUFFER_PLANE_MAX];
+ // uint32_t num_bos;
+ // void *bos[BUFFER_PLANE_MAX];
+} vision_source_buffer_s;
+
+typedef enum vision_source_error
+{
+ VISION_SOURCE_ERROR_NONE = 0,
+ VISION_SOURCE_ERROR_INVALID_PARAMETER,
+ VISION_SOURCE_ERROR_INTERNAL,
+ VISION_SOURCE_ERROR_NOT_IMPLEMENTED,
+ VISION_SOURCE_ERROR_UNKNOWN
+} vision_source_error_e;
+
+typedef void *vision_source_h;
+
+typedef int (*stream_cb)(vision_source_buffer_s *buffer, void *user_data);
+
+typedef struct vision_source_func
+{
+ int (*init)(vision_source_h *handle);
+ int (*exit)(vision_source_h handle);
+ int (*open_device)(vision_source_h handle, int device_index);
+ int (*close_device)(vision_source_h handle);
+
+ int (*enumerate_devices)(vision_source_h handle,
+ vision_source_device_info_list_s *info_list);
+ int (*set_stream_format)(vision_source_h handle,
+ vision_source_format_s *format);
+
+ int (*start_stream)(vision_source_h handle, stream_cb callback,
+ void *user_data);
+ int (*stop_stream)(vision_source_h handle);
+
+ int (*get_capture_frame)(vision_source_h handle,
+ vision_source_buffer_s *buffer);
+ int (*release_capture_frame)(vision_source_h handle, int buffer_index);
+} vision_source_func_s;
+
+void attach_backend(vision_source_func_s *funcp);
#ifdef __cplusplus
}