bzr branch
http://suren.me/webbzr/alps/ufodecode
9
by Matthias Vogelgesang
Rename to `ufodecode` |
1 |
#ifndef LIB_UFODECODE_H
|
2 |
#define LIB_UFODECODE_H
|
|
4
by Matthias Vogelgesang
Make ipedec a lib and executable |
3 |
|
4 |
#include <inttypes.h> |
|
5 |
||
32
by Matthias Vogelgesang
Commit version 0.2 of libufodecode |
6 |
typedef struct _UfoDecoder UfoDecoder; |
7 |
||
8 |
typedef struct { |
|
33
by Matthias Vogelgesang
Fix bit order |
9 |
unsigned data_lock:16; |
10 |
unsigned control_lock:1; |
|
11 |
unsigned pixel_full:1; |
|
12 |
unsigned fsm_daq:4; |
|
13 |
unsigned dummy2:4; |
|
14 |
unsigned fsm_master_readout:4; |
|
32
by Matthias Vogelgesang
Commit version 0.2 of libufodecode |
15 |
unsigned dummy1:2; |
16 |
} UfoDecoderStatus1; |
|
17 |
||
18 |
typedef struct { |
|
33
by Matthias Vogelgesang
Fix bit order |
19 |
unsigned ddr_fifo_empty:1; |
20 |
unsigned ddr_fifo_full:1; |
|
21 |
unsigned ddr_fifo_write_count:8; |
|
22 |
unsigned dummy:2; |
|
23 |
unsigned data_fifo_empty:1; |
|
24 |
unsigned data_fifo_full:1; |
|
25 |
unsigned data_fifo_read_count:10; |
|
26 |
unsigned error_status:4; /* What the heck? */ |
|
27 |
unsigned busy_interl:1; |
|
28 |
unsigned busy_ddr:1; |
|
29 |
unsigned busy_or:1; |
|
32
by Matthias Vogelgesang
Commit version 0.2 of libufodecode |
30 |
unsigned end_of_frames:1; |
31 |
} UfoDecoderStatus2; |
|
32 |
||
33 |
typedef struct { |
|
33
by Matthias Vogelgesang
Fix bit order |
34 |
unsigned ddr_arbiter:4; |
35 |
unsigned ddr_write:4; |
|
32
by Matthias Vogelgesang
Commit version 0.2 of libufodecode |
36 |
unsigned ddr_read:4; |
33
by Matthias Vogelgesang
Fix bit order |
37 |
unsigned pixel_counter:7; |
38 |
unsigned row_counter:11; |
|
39 |
unsigned dummy:2; |
|
32
by Matthias Vogelgesang
Commit version 0.2 of libufodecode |
40 |
} UfoDecoderStatus3; |
41 |
||
42 |
typedef struct { |
|
43 |
uint32_t frame_number; |
|
44 |
uint32_t time_stamp; |
|
45 |
uint32_t n_rows; |
|
46 |
uint8_t n_skipped_rows; |
|
47 |
uint16_t cmosis_start_address; |
|
40
by Suren A. Chilingaryan
Read output_mode and adc_resolution from frame header |
48 |
uint8_t output_mode; |
49 |
uint8_t adc_resolution; |
|
50 |
||
32
by Matthias Vogelgesang
Commit version 0.2 of libufodecode |
51 |
union { |
52 |
uint32_t bits; |
|
53 |
UfoDecoderStatus1 desc; |
|
54 |
} status1; |
|
55 |
union { |
|
56 |
uint32_t bits; |
|
57 |
UfoDecoderStatus2 desc; |
|
58 |
} status2; |
|
59 |
union { |
|
60 |
uint32_t bits; |
|
61 |
UfoDecoderStatus3 desc; |
|
62 |
} status3; |
|
63 |
} UfoDecoderMeta; |
|
4
by Matthias Vogelgesang
Make ipedec a lib and executable |
64 |
|
65 |
#ifdef __cplusplus
|
|
66 |
extern "C" { |
|
67 |
#endif
|
|
68 |
||
32
by Matthias Vogelgesang
Commit version 0.2 of libufodecode |
69 |
UfoDecoder *ufo_decoder_new (int32_t height, |
28
by Matthias Vogelgesang
Add verbosity flag to output frequency and frame |
70 |
uint32_t width, |
71 |
uint32_t *raw, |
|
72 |
size_t num_bytes); |
|
32
by Matthias Vogelgesang
Commit version 0.2 of libufodecode |
73 |
void ufo_decoder_free (UfoDecoder *decoder); |
74 |
size_t ufo_decoder_decode_frame (UfoDecoder *decoder, |
|
28
by Matthias Vogelgesang
Add verbosity flag to output frequency and frame |
75 |
uint32_t *raw, |
76 |
size_t num_bytes, |
|
77 |
uint16_t *pixels, |
|
32
by Matthias Vogelgesang
Commit version 0.2 of libufodecode |
78 |
UfoDecoderMeta *meta); |
79 |
void ufo_decoder_set_raw_data (UfoDecoder *decoder, |
|
28
by Matthias Vogelgesang
Add verbosity flag to output frequency and frame |
80 |
uint32_t *raw, |
81 |
size_t num_bytes); |
|
32
by Matthias Vogelgesang
Commit version 0.2 of libufodecode |
82 |
int ufo_decoder_get_next_frame (UfoDecoder *decoder, |
28
by Matthias Vogelgesang
Add verbosity flag to output frequency and frame |
83 |
uint16_t **pixels, |
32
by Matthias Vogelgesang
Commit version 0.2 of libufodecode |
84 |
UfoDecoderMeta *meta_data); |
28
by Matthias Vogelgesang
Add verbosity flag to output frequency and frame |
85 |
void ufo_deinterlace_interpolate (const uint16_t *frame_in, |
86 |
uint16_t *frame_out, |
|
87 |
int width, |
|
88 |
int height); |
|
89 |
void ufo_deinterlace_weave (const uint16_t *in1, |
|
90 |
const uint16_t *in2, |
|
91 |
uint16_t *out, |
|
92 |
int width, |
|
93 |
int height); |
|
4
by Matthias Vogelgesang
Make ipedec a lib and executable |
94 |
|
95 |
#ifdef __cplusplus
|
|
96 |
}
|
|
97 |
#endif
|
|
98 |
||
99 |
#endif
|
|
100 |