stf_v4l2.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. // SPDX-License-Identifier: GPL-2.0
  2. /*
  3. * Copyright (C) 2021 StarFive Technology Co., Ltd.
  4. */
  5. #ifndef __STF_V4L2_H__
  6. #define __STF_V4L2_H__
  7. #include "common.h"
  8. // reference to enum v4l2_memory
  9. typedef struct V4l2Param_t {
  10. char *device_name;// = "/dev/video0";
  11. int fd;
  12. IOMethod io_mthd; // IO_METHOD_MMAP
  13. enum v4l2_memory mem_type;
  14. // int dmabuf_fd; // for IO_METHOD_DMABUF
  15. struct buffer *pBuffers;
  16. uint32_t n_buffers;
  17. uint32_t image_size;
  18. uint32_t format; // = V4L2_PIX_FMT_RGB565
  19. uint32_t width; // = 1920;
  20. uint32_t height; // = 1080;
  21. uint32_t fps; // = 30;
  22. int crop_flag;
  23. struct v4l2_rect crop_info;
  24. } V4l2Param_t;
  25. extern int xioctl(int fd, int request, void* argp);
  26. extern void sensor_image_size_info(V4l2Param_t *param);
  27. extern void loadfw_start(char *filename, V4l2Param_t *param);
  28. extern void stf_v4l2_open(V4l2Param_t *param, char *device_name);
  29. extern void stf_v4l2_close(V4l2Param_t *param);
  30. extern void stf_v4l2_init(V4l2Param_t *param);
  31. extern void stf_v4l2_uninit(V4l2Param_t *param);
  32. extern void sft_v4l2_prepare_capturing(V4l2Param_t *param, int *dmabufs, int count);
  33. extern void sft_v4l2_start_capturing(V4l2Param_t *param);
  34. extern void stf_v4l2_stop_capturing(V4l2Param_t *param);
  35. extern void stf_v4l2_queue_buffer(V4l2Param_t *param, int index);
  36. extern int stf_v4l2_dequeue_buffer(V4l2Param_t *param, struct v4l2_buffer *buf);
  37. #endif // __STF_V4L2_H__