libgphoto2 photo camera library (libgphoto2) Internals  2.5.26
jpeg.h
Go to the documentation of this file.
1 
24 #ifndef __GPHOTO2_JPEG_H__
25 #define __GPHOTO2_JPEG_H__
26 
27 #include <gphoto2/gphoto2-file.h>
28 
29 typedef enum {
30  JPEG_START=0xD8, JPEG_COMMENT=0xFE, JPEG_APPO=0xE0,
34 
35 typedef struct chunk{
36  int size;
37  unsigned char *data;
39 
40 typedef char jpeg_quantization_table[64];
41 
42 typedef struct jpeg {
43  int count;
44  struct chunk *marker[20]; /* I think this should be big enough */
46 
47 chunk *gpi_jpeg_chunk_new(int length);
48 chunk *gpi_jpeg_chunk_new_filled(int length, char *data);
49 void gpi_jpeg_chunk_destroy(chunk *mychunk);
50 void gpi_jpeg_chunk_print(chunk *mychunk);
51 
52 char gpi_jpeg_findff(int *location, chunk *picture);
53 char gpi_jpeg_findactivemarker(char *id, int *location, chunk *picture);
54 char *gpi_jpeg_markername(unsigned int c);
55 
56 jpeg *gpi_jpeg_new (void);
57 void gpi_jpeg_destroy (jpeg *myjpeg);
58 void gpi_jpeg_add_marker (jpeg *myjpeg, chunk *picture, int start, int end);
59 void gpi_jpeg_add_chunk (jpeg *myjpeg, chunk *source);
60 void gpi_jpeg_parse (jpeg *myjpeg, chunk *picture);
61 void gpi_jpeg_print (jpeg *myjpeg);
62 
64 chunk *gpi_jpeg_make_SOFC (int width, int height,
65  char vh1, char vh2, char vh3,
66  char q1, char q2, char q3);
67 chunk *gpi_jpeg_makeSsSeAhAl (int huffset1, int huffset2, int huffset3);
68 
72 
73 jpeg *gpi_jpeg_header(int width, int height,
74  char vh1, char vh2, char vh3,
75  char q1, char q2, char q3,
76  const jpeg_quantization_table *quant1, const jpeg_quantization_table *quant2,
77  char huffset1, char huffset2, char huffset3,
78  chunk *huff1, chunk *huff2, chunk *huff3, chunk *huff4);
79 
80 char gpi_jpeg_write(CameraFile *file, const char *name, jpeg *myjpeg);
81 #endif
Abstracted gphoto2 file operations.
unsigned char number
Definition: gphoto2-port.c:668
char gpi_jpeg_findactivemarker(char *id, int *location, chunk *picture)
Definition: jpeg.c:119
chunk * gpi_jpeg_chunk_new(int length)
Definition: jpeg.c:55
struct jpeg jpeg
chunk * gpi_jpeg_chunk_new_filled(int length, char *data)
Definition: jpeg.c:70
chunk * gpi_jpeg_make_SOFC(int width, int height, char vh1, char vh2, char vh3, char q1, char q2, char q3)
Definition: jpeg.c:241
struct chunk chunk
char gpi_jpeg_findff(int *location, chunk *picture)
Definition: jpeg.c:101
char jpeg_quantization_table[64]
Definition: jpeg.h:40
chunk * gpi_jpeg_makeSsSeAhAl(int huffset1, int huffset2, int huffset3)
Definition: jpeg.c:265
jpeg * gpi_jpeg_new(void)
Definition: jpeg.c:146
chunk * gpi_jpeg_make_start(void)
Definition: jpeg.c:231
void gpi_jpeg_chunk_destroy(chunk *mychunk)
Definition: jpeg.c:82
void gpi_jpeg_print_quantization_table(jpeg_quantization_table *table)
Definition: jpeg.c:278
char gpi_jpeg_write(CameraFile *file, const char *name, jpeg *myjpeg)
Definition: jpeg.c:365
char * gpi_jpeg_markername(unsigned int c)
Definition: jpeg.c:131
void gpi_jpeg_add_chunk(jpeg *myjpeg, chunk *source)
Definition: jpeg.c:178
void gpi_jpeg_destroy(jpeg *myjpeg)
Definition: jpeg.c:154
void gpi_jpeg_parse(jpeg *myjpeg, chunk *picture)
Definition: jpeg.c:186
chunk * gpi_jpeg_make_quantization(const jpeg_quantization_table *table, char number)
Definition: jpeg.c:294
jpegmarker
Definition: jpeg.h:29
@ JPEG_START
Definition: jpeg.h:30
@ JPEG_EOI
Definition: jpeg.h:32
@ JPEG_APPO
Definition: jpeg.h:30
@ JPEG_SSSEAHAL
Definition: jpeg.h:32
@ JPEG_HUFFMAN
Definition: jpeg.h:31
@ JPEG_COMMENT
Definition: jpeg.h:30
@ JPEG_SOFC0
Definition: jpeg.h:31
@ JPEG_QUANTIZATION
Definition: jpeg.h:31
void gpi_jpeg_chunk_print(chunk *mychunk)
Definition: jpeg.c:91
jpeg_quantization_table * gpi_jpeg_quantization2table(chunk *qmarker)
Definition: jpeg.c:318
void gpi_jpeg_add_marker(jpeg *myjpeg, chunk *picture, int start, int end)
Definition: jpeg.c:163
jpeg * gpi_jpeg_header(int width, int height, char vh1, char vh2, char vh3, char q1, char q2, char q3, const jpeg_quantization_table *quant1, const jpeg_quantization_table *quant2, char huffset1, char huffset2, char huffset3, chunk *huff1, chunk *huff2, chunk *huff3, chunk *huff4)
Definition: jpeg.c:340
void gpi_jpeg_print(jpeg *myjpeg)
Definition: jpeg.c:220
File structure.
Definition: jpeg.h:35
int size
Definition: jpeg.h:36
unsigned char * data
Definition: jpeg.h:37
Definition: jpeg.h:42
struct chunk * marker[20]
Definition: jpeg.h:44
int count
Definition: jpeg.h:43