summaryrefslogtreecommitdiffstats
path: root/src/ufodecode.h
blob: bce17ec5a9859e0b01e1e8f5cb4f38867eef775b (plain)
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
#ifndef LIB_UFODECODE_H
#define LIB_UFODECODE_H

#include <inttypes.h>

typedef struct ufo_decoder_t *ufo_decoder;

#ifdef __cplusplus
extern "C" {
#endif

ufo_decoder ufo_decoder_new             (int32_t         height, 
                                         uint32_t        width, 
                                         uint32_t       *raw, 
                                         size_t          num_bytes);
void        ufo_decoder_free            (ufo_decoder     decoder);
size_t      ufo_decoder_decode_frame    (ufo_decoder     decoder, 
                                         uint32_t       *raw, 
                                         size_t          num_bytes, 
                                         uint16_t       *pixels, 
                                         uint32_t       *num_rows, 
                                         uint32_t       *frame_number, 
                                         uint32_t       *time_stamp, 
                                         uint16_t       *cmask);
void        ufo_decoder_set_raw_data    (ufo_decoder     decoder,
                                         uint32_t       *raw,
                                         size_t          num_bytes);
int         ufo_decoder_get_next_frame  (ufo_decoder     decoder, 
                                         uint16_t      **pixels, 
                                         uint32_t       *num_rows, 
                                         uint32_t       *frame_number, 
                                         uint32_t       *time_stamp, 
                                         uint16_t       *cmask);
void        ufo_deinterlace_interpolate (const uint16_t *frame_in, 
                                         uint16_t       *frame_out, 
                                         int             width, 
                                         int             height);
void        ufo_deinterlace_weave       (const uint16_t *in1,
                                         const uint16_t *in2,
                                         uint16_t       *out, 
                                         int             width, 
                                         int             height);

#ifdef __cplusplus
}
#endif

#endif