1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
#include <stdint.h>
typedef enum {
PIXFORMAT_INVALID = 0,
PIXFORMAT_BINARY, // 1BPP/BINARY
PIXFORMAT_GRAYSCALE, // 1BPP/GRAYSCALE
PIXFORMAT_RGB565, // 2BPP/RGB565
PIXFORMAT_YUV422, // 2BPP/YUV422
PIXFORMAT_BAYER, // 1BPP/RAW
PIXFORMAT_JPEG, // JPEG/COMPRESSED
} pixformat_t;
typedef enum {
FRAMESIZE_INVALID = 0,
// C/SIF Resolutions
FRAMESIZE_QQCIF, // 88x72
FRAMESIZE_QCIF, // 176x144
FRAMESIZE_CIF, // 352x288
FRAMESIZE_QQSIF, // 88x60
FRAMESIZE_QSIF, // 176x120
FRAMESIZE_SIF, // 352x240
// VGA Resolutions
FRAMESIZE_QQQQVGA, // 40x30
FRAMESIZE_QQQVGA, // 80x60
FRAMESIZE_QQVGA, // 160x120
FRAMESIZE_QVGA, // 320x240
FRAMESIZE_VGA, // 640x480
FRAMESIZE_HQQQVGA, // 60x40
FRAMESIZE_HQQVGA, // 120x80
FRAMESIZE_HQVGA, // 240x160
// FFT Resolutions
FRAMESIZE_64X32, // 64x32
FRAMESIZE_64X64, // 64x64
FRAMESIZE_128X64, // 128x64
FRAMESIZE_128X128, // 128x128
FRAMESIZE_320X320, // 320x320
// Other
FRAMESIZE_LCD, // 128x160
FRAMESIZE_QQVGA2, // 128x160
FRAMESIZE_WVGA, // 720x480
FRAMESIZE_WVGA2, // 752x480
FRAMESIZE_SVGA, // 800x600
FRAMESIZE_XGA, // 1024x768
FRAMESIZE_SXGA, // 1280x1024
FRAMESIZE_UXGA, // 1600x1200
FRAMESIZE_HD, // 1280x720
FRAMESIZE_FHD, // 1920x1080
FRAMESIZE_QHD, // 2560x1440
FRAMESIZE_QXGA, // 2048x1536
FRAMESIZE_WQXGA, // 2560x1600
FRAMESIZE_WQXGA2, // 2592x1944
} framesize_t;
typedef enum {
GAINCEILING_2X,
GAINCEILING_4X,
GAINCEILING_8X,
GAINCEILING_16X,
GAINCEILING_32X,
GAINCEILING_64X,
GAINCEILING_128X,
} gainceiling_t;
typedef enum {
SDE_NORMAL,
SDE_NEGATIVE,
} sde_t;
extern const int _eos_cam_resolution[][2];
#define IM_LOG2_2(x) (((x) & 0x2ULL) ? ( 2 ) : 1) // NO ({ ... }) !
#define IM_LOG2_4(x) (((x) & 0xCULL) ? ( 2 + IM_LOG2_2((x) >> 2)) : IM_LOG2_2(x)) // NO ({ ... }) !
#define IM_LOG2_8(x) (((x) & 0xF0ULL) ? ( 4 + IM_LOG2_4((x) >> 4)) : IM_LOG2_4(x)) // NO ({ ... }) !
#define IM_LOG2_16(x) (((x) & 0xFF00ULL) ? ( 8 + IM_LOG2_8((x) >> 8)) : IM_LOG2_8(x)) // NO ({ ... }) !
#define IM_LOG2_32(x) (((x) & 0xFFFF0000ULL) ? (16 + IM_LOG2_16((x) >> 16)) : IM_LOG2_16(x)) // NO ({ ... }) !
#define IM_LOG2(x) (((x) & 0xFFFFFFFF00000000ULL) ? (32 + IM_LOG2_32((x) >> 32)) : IM_LOG2_32(x)) // NO ({ ... }) !
#define IM_MAX(a,b) ({ __typeof__ (a) _a = (a); __typeof__ (b) _b = (b); _a > _b ? _a : _b; })
#define IM_MIN(a,b) ({ __typeof__ (a) _a = (a); __typeof__ (b) _b = (b); _a < _b ? _a : _b; })
#define IM_DIV(a,b) ({ __typeof__ (a) _a = (a); __typeof__ (b) _b = (b); _b ? (_a / _b) : 0; })
#define IM_MOD(a,b) ({ __typeof__ (a) _a = (a); __typeof__ (b) _b = (b); _b ? (_a % _b) : 0; })
void eos_cam_capture(void);
int eos_cam_capture_done(void);
void eos_cam_capture_wait(void);
uint32_t eos_cam_fbuf_size(void);
void eos_cam_fbuf_read(uint8_t *buffer, uint16_t sz, int first);
void eos_cam_fbuf_done(void);
|