+#ifndef _DRIVER_H
+#define _DRIVER_H 1
+
+#include <stddef.h>
+#include "idct.h"
+
+struct jpeg_image {
+ unsigned precision;
+ unsigned width, height;
+ unsigned num_components;
+ unsigned hsample[256], vsample[256], qtable[256];
+ unsigned max_hsample, max_vsample;
+ unsigned stride[256];
+ unsigned num_blocks_horizontal, num_blocks_vertical;
+ uint32_t qvalues[256][DCTSIZE2];
+ void* idct_data[256];
+ uint8_t* pixel_data[256];
+ uint8_t* pixel_write_pointer[256];
+};
+
+void read_jpeg(struct jpeg_image* jpeg, FILE *input);
+
+#endif /* !defined(_DRIVER_H) */