OSDN Git Service

add bitmap_id parameter into apply factor method.
[swfed/swfed.git] / src / jpeg_segment.h
1 /*
2   +----------------------------------------------------------------------+
3   | Author: yoya@awm.jp                                                  |
4   +----------------------------------------------------------------------+
5 */
6
7
8 #ifndef __JPEG_SEGMENT_H__
9 #define __JPEG_SEGMENT_H__
10
11 typedef struct jpeg_segment_node_ {
12     int marker;
13     unsigned char *data_ref; /* do NOT free! */
14     unsigned long data_len;
15     struct jpeg_segment_node_ *next;
16 } jpeg_segment_node_t;
17
18 typedef struct jpeg_segment_ {
19     jpeg_segment_node_t *head, *tail;
20 } jpeg_segment_t;
21
22 extern jpeg_segment_t *jpeg_segment_create(void);
23
24 extern void jpeg_segment_append(jpeg_segment_t *jpeg_seg_head,
25                                 int marker,
26                                 unsigned char *data,
27                                 unsigned long data_len);
28
29 extern jpeg_segment_t *jpeg_segment_parse(unsigned char *data,
30                                           unsigned long data_len,
31                                           int rst_scan);
32
33 extern int jpeg_segment_contain(jpeg_segment_t *jpeg_seg, int marker);
34 extern unsigned char *jpeg_segment_steal_node(jpeg_segment_t *jpeg_seg,
35                                               int marker,
36                                               unsigned long *length);
37 extern int jpeg_segment_delete_node(jpeg_segment_t *jpeg_seg, int marker);
38 extern int jpeg_segment_peek_marker(jpeg_segment_t *jpeg_seg);
39
40 extern void jpeg_segment_print(jpeg_segment_t *jpeg_seg);
41 extern unsigned char *jpeg_segment_output(jpeg_segment_t *jpeg_seg,
42                                           unsigned long *length);
43 extern void jpeg_segment_destroy(jpeg_segment_t *jpeg_seg);
44
45 extern char *jpeg_segment_get_marker_name(int marker);
46
47 #endif /* __JPEG_SEGMENT_H__ */