bayer.h 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. #include <stdint.h>
  2. typedef enum {
  3. DC1394_BAYER_METHOD_NEAREST=0,
  4. DC1394_BAYER_METHOD_SIMPLE,
  5. DC1394_BAYER_METHOD_BILINEAR,
  6. DC1394_BAYER_METHOD_HQLINEAR,
  7. DC1394_BAYER_METHOD_DOWNSAMPLE,
  8. DC1394_BAYER_METHOD_EDGESENSE,
  9. DC1394_BAYER_METHOD_VNG,
  10. DC1394_BAYER_METHOD_AHD
  11. } dc1394bayer_method_t;
  12. typedef enum {
  13. DC1394_COLOR_FILTER_RGGB = 512,
  14. DC1394_COLOR_FILTER_GBRG,
  15. DC1394_COLOR_FILTER_GRBG,
  16. DC1394_COLOR_FILTER_BGGR
  17. } dc1394color_filter_t ;
  18. #define DC1394_COLOR_FILTER_MIN DC1394_COLOR_FILTER_RGGB
  19. #define DC1394_COLOR_FILTER_MAX DC1394_COLOR_FILTER_BGGR
  20. #define DC1394_COLOR_FILTER_NUM (DC1394_COLOR_FILTER_MAX - DC1394_COLOR_FILTER_MIN + 1)
  21. /**
  22. * Error codes returned by most libdc1394 functions.
  23. *
  24. * General rule: 0 is success, negative denotes a problem.
  25. */
  26. typedef enum {
  27. DC1394_SUCCESS = 0,
  28. DC1394_FAILURE = -1,
  29. DC1394_NOT_A_CAMERA = -2,
  30. DC1394_FUNCTION_NOT_SUPPORTED = -3,
  31. DC1394_CAMERA_NOT_INITIALIZED = -4,
  32. DC1394_MEMORY_ALLOCATION_FAILURE = -5,
  33. DC1394_TAGGED_REGISTER_NOT_FOUND = -6,
  34. DC1394_NO_ISO_CHANNEL = -7,
  35. DC1394_NO_BANDWIDTH = -8,
  36. DC1394_IOCTL_FAILURE = -9,
  37. DC1394_CAPTURE_IS_NOT_SET = -10,
  38. DC1394_CAPTURE_IS_RUNNING = -11,
  39. DC1394_RAW1394_FAILURE = -12,
  40. DC1394_FORMAT7_ERROR_FLAG_1 = -13,
  41. DC1394_FORMAT7_ERROR_FLAG_2 = -14,
  42. DC1394_INVALID_ARGUMENT_VALUE = -15,
  43. DC1394_REQ_VALUE_OUTSIDE_RANGE = -16,
  44. DC1394_INVALID_FEATURE = -17,
  45. DC1394_INVALID_VIDEO_FORMAT = -18,
  46. DC1394_INVALID_VIDEO_MODE = -19,
  47. DC1394_INVALID_FRAMERATE = -20,
  48. DC1394_INVALID_TRIGGER_MODE = -21,
  49. DC1394_INVALID_TRIGGER_SOURCE = -22,
  50. DC1394_INVALID_ISO_SPEED = -23,
  51. DC1394_INVALID_IIDC_VERSION = -24,
  52. DC1394_INVALID_COLOR_CODING = -25,
  53. DC1394_INVALID_COLOR_FILTER = -26,
  54. DC1394_INVALID_CAPTURE_POLICY = -27,
  55. DC1394_INVALID_ERROR_CODE = -28,
  56. DC1394_INVALID_BAYER_METHOD = -29,
  57. DC1394_INVALID_VIDEO1394_DEVICE = -30,
  58. DC1394_INVALID_OPERATION_MODE = -31,
  59. DC1394_INVALID_TRIGGER_POLARITY = -32,
  60. DC1394_INVALID_FEATURE_MODE = -33,
  61. DC1394_INVALID_LOG_TYPE = -34,
  62. DC1394_INVALID_BYTE_ORDER = -35,
  63. DC1394_INVALID_STEREO_METHOD = -36,
  64. DC1394_BASLER_NO_MORE_SFF_CHUNKS = -37,
  65. DC1394_BASLER_CORRUPTED_SFF_CHUNK = -38,
  66. DC1394_BASLER_UNKNOWN_SFF_CHUNK = -39
  67. } dc1394error_t;
  68. #define DC1394_ERROR_MIN DC1394_BASLER_UNKNOWN_SFF_CHUNK
  69. #define DC1394_ERROR_MAX DC1394_SUCCESS
  70. #define DC1394_ERROR_NUM (DC1394_ERROR_MAX-DC1394_ERROR_MIN+1)
  71. typedef enum {
  72. DC1394_FALSE= 0,
  73. DC1394_TRUE
  74. } dc1394bool_t;
  75. dc1394error_t
  76. dc1394_bayer_decoding_8bit(const uint8_t * bayer, uint8_t * rgb, uint32_t sx, uint32_t sy, dc1394color_filter_t tile, dc1394bayer_method_t method);
  77. dc1394error_t
  78. dc1394_bayer_decoding_16bit(const uint16_t * bayer, uint16_t * rgb, uint32_t sx, uint32_t sy, dc1394color_filter_t tile, dc1394bayer_method_t method, uint32_t bits);