2 +----------------------------------------------------------------------+
3 | Author: yoya@awm.jp |
4 +----------------------------------------------------------------------+
8 #ifndef __JPEG_SEGMENT_H__
9 #define __JPEG_SEGMENT_H__
11 typedef struct jpeg_segment_node_ {
13 unsigned char *data_ref; /* do NOT free! */
14 unsigned long data_len;
15 struct jpeg_segment_node_ *next;
16 } jpeg_segment_node_t;
18 typedef struct jpeg_segment_ {
19 jpeg_segment_node_t *head, *tail;
22 extern jpeg_segment_t *jpeg_segment_create(void);
24 extern void jpeg_segment_append(jpeg_segment_t *jpeg_seg_head,
27 unsigned long data_len);
29 extern jpeg_segment_t *jpeg_segment_parse(unsigned char *data,
30 unsigned long data_len,
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,
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);
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);
45 extern char *jpeg_segment_get_marker_name(int marker);
47 #endif /* __JPEG_SEGMENT_H__ */