Index: jcmarker.c |
diff --git a/jcmarker.c b/jcmarker.c |
index 4fbece4bcd898dc1ba1ba4fab8ba6965bab8af80..463f6659279ee443e7e2f0b5a38e9b86880b61b2 100644 |
--- a/jcmarker.c |
+++ b/jcmarker.c |
@@ -6,7 +6,8 @@ |
* Modified 2003-2010 by Guido Vollbeding. |
* libjpeg-turbo Modifications: |
* Copyright (C) 2010, D. R. Commander. |
- * For conditions of distribution and use, see the accompanying README file. |
+ * For conditions of distribution and use, see the accompanying README.ijg |
+ * file. |
* |
* This file contains routines to write JPEG datastream markers. |
*/ |
@@ -17,7 +18,7 @@ |
#include "jpegcomp.h" |
-typedef enum { /* JPEG marker codes */ |
+typedef enum { /* JPEG marker codes */ |
M_SOF0 = 0xc0, |
M_SOF1 = 0xc1, |
M_SOF2 = 0xc2, |
@@ -93,7 +94,7 @@ typedef struct { |
unsigned int last_restart_interval; /* last DRI value emitted; 0 after SOI */ |
} my_marker_writer; |
-typedef my_marker_writer * my_marker_ptr; |
+typedef my_marker_writer *my_marker_ptr; |
/* |
@@ -112,7 +113,7 @@ LOCAL(void) |
emit_byte (j_compress_ptr cinfo, int val) |
/* Emit a byte */ |
{ |
- struct jpeg_destination_mgr * dest = cinfo->dest; |
+ struct jpeg_destination_mgr *dest = cinfo->dest; |
*(dest->next_output_byte)++ = (JOCTET) val; |
if (--dest->free_in_buffer == 0) { |
@@ -149,7 +150,7 @@ emit_dqt (j_compress_ptr cinfo, int index) |
/* Emit a DQT marker */ |
/* Returns the precision used (0 = 8bits, 1 = 16bits) for baseline checking */ |
{ |
- JQUANT_TBL * qtbl = cinfo->quant_tbl_ptrs[index]; |
+ JQUANT_TBL *qtbl = cinfo->quant_tbl_ptrs[index]; |
int prec; |
int i; |
@@ -173,7 +174,7 @@ emit_dqt (j_compress_ptr cinfo, int index) |
/* The table entries must be emitted in zigzag order. */ |
unsigned int qval = qtbl->quantval[jpeg_natural_order[i]]; |
if (prec) |
- emit_byte(cinfo, (int) (qval >> 8)); |
+ emit_byte(cinfo, (int) (qval >> 8)); |
emit_byte(cinfo, (int) (qval & 0xFF)); |
} |
@@ -188,35 +189,35 @@ LOCAL(void) |
emit_dht (j_compress_ptr cinfo, int index, boolean is_ac) |
/* Emit a DHT marker */ |
{ |
- JHUFF_TBL * htbl; |
+ JHUFF_TBL *htbl; |
int length, i; |
- |
+ |
if (is_ac) { |
htbl = cinfo->ac_huff_tbl_ptrs[index]; |
- index += 0x10; /* output index has AC bit set */ |
+ index += 0x10; /* output index has AC bit set */ |
} else { |
htbl = cinfo->dc_huff_tbl_ptrs[index]; |
} |
if (htbl == NULL) |
ERREXIT1(cinfo, JERR_NO_HUFF_TABLE, index); |
- |
+ |
if (! htbl->sent_table) { |
emit_marker(cinfo, M_DHT); |
- |
+ |
length = 0; |
for (i = 1; i <= 16; i++) |
length += htbl->bits[i]; |
- |
+ |
emit_2bytes(cinfo, length + 2 + 1 + 16); |
emit_byte(cinfo, index); |
- |
+ |
for (i = 1; i <= 16; i++) |
emit_byte(cinfo, htbl->bits[i]); |
- |
+ |
for (i = 0; i < length; i++) |
emit_byte(cinfo, htbl->huffval[i]); |
- |
+ |
htbl->sent_table = TRUE; |
} |
} |
@@ -258,12 +259,12 @@ emit_dac (j_compress_ptr cinfo) |
for (i = 0; i < NUM_ARITH_TBLS; i++) { |
if (dc_in_use[i]) { |
- emit_byte(cinfo, i); |
- emit_byte(cinfo, cinfo->arith_dc_L[i] + (cinfo->arith_dc_U[i]<<4)); |
+ emit_byte(cinfo, i); |
+ emit_byte(cinfo, cinfo->arith_dc_L[i] + (cinfo->arith_dc_U[i]<<4)); |
} |
if (ac_in_use[i]) { |
- emit_byte(cinfo, i + 0x10); |
- emit_byte(cinfo, cinfo->arith_ac_K[i]); |
+ emit_byte(cinfo, i + 0x10); |
+ emit_byte(cinfo, cinfo->arith_ac_K[i]); |
} |
} |
} |
@@ -276,8 +277,8 @@ emit_dri (j_compress_ptr cinfo) |
/* Emit a DRI marker */ |
{ |
emit_marker(cinfo, M_DRI); |
- |
- emit_2bytes(cinfo, 4); /* fixed length */ |
+ |
+ emit_2bytes(cinfo, 4); /* fixed length */ |
emit_2bytes(cinfo, (int) cinfo->restart_interval); |
} |
@@ -289,9 +290,9 @@ emit_sof (j_compress_ptr cinfo, JPEG_MARKER code) |
{ |
int ci; |
jpeg_component_info *compptr; |
- |
+ |
emit_marker(cinfo, code); |
- |
+ |
emit_2bytes(cinfo, 3 * cinfo->num_components + 2 + 5 + 1); /* length */ |
/* Make sure image isn't bigger than SOF field can handle */ |
@@ -320,13 +321,13 @@ emit_sos (j_compress_ptr cinfo) |
{ |
int i, td, ta; |
jpeg_component_info *compptr; |
- |
+ |
emit_marker(cinfo, M_SOS); |
- |
+ |
emit_2bytes(cinfo, 2 * cinfo->comps_in_scan + 2 + 1 + 3); /* length */ |
- |
+ |
emit_byte(cinfo, cinfo->comps_in_scan); |
- |
+ |
for (i = 0; i < cinfo->comps_in_scan; i++) { |
compptr = cinfo->cur_comp_info[i]; |
emit_byte(cinfo, compptr->component_id); |
@@ -354,22 +355,22 @@ emit_jfif_app0 (j_compress_ptr cinfo) |
/* Emit a JFIF-compliant APP0 marker */ |
{ |
/* |
- * Length of APP0 block (2 bytes) |
- * Block ID (4 bytes - ASCII "JFIF") |
- * Zero byte (1 byte to terminate the ID string) |
- * Version Major, Minor (2 bytes - major first) |
- * Units (1 byte - 0x00 = none, 0x01 = inch, 0x02 = cm) |
- * Xdpu (2 bytes - dots per unit horizontal) |
- * Ydpu (2 bytes - dots per unit vertical) |
- * Thumbnail X size (1 byte) |
- * Thumbnail Y size (1 byte) |
+ * Length of APP0 block (2 bytes) |
+ * Block ID (4 bytes - ASCII "JFIF") |
+ * Zero byte (1 byte to terminate the ID string) |
+ * Version Major, Minor (2 bytes - major first) |
+ * Units (1 byte - 0x00 = none, 0x01 = inch, 0x02 = cm) |
+ * Xdpu (2 bytes - dots per unit horizontal) |
+ * Ydpu (2 bytes - dots per unit vertical) |
+ * Thumbnail X size (1 byte) |
+ * Thumbnail Y size (1 byte) |
*/ |
- |
+ |
emit_marker(cinfo, M_APP0); |
- |
+ |
emit_2bytes(cinfo, 2 + 4 + 1 + 2 + 1 + 2 + 2 + 1 + 1); /* length */ |
- emit_byte(cinfo, 0x4A); /* Identifier: ASCII "JFIF" */ |
+ emit_byte(cinfo, 0x4A); /* Identifier: ASCII "JFIF" */ |
emit_byte(cinfo, 0x46); |
emit_byte(cinfo, 0x49); |
emit_byte(cinfo, 0x46); |
@@ -379,7 +380,7 @@ emit_jfif_app0 (j_compress_ptr cinfo) |
emit_byte(cinfo, cinfo->density_unit); /* Pixel size information */ |
emit_2bytes(cinfo, (int) cinfo->X_density); |
emit_2bytes(cinfo, (int) cinfo->Y_density); |
- emit_byte(cinfo, 0); /* No thumbnail image */ |
+ emit_byte(cinfo, 0); /* No thumbnail image */ |
emit_byte(cinfo, 0); |
} |
@@ -389,12 +390,12 @@ emit_adobe_app14 (j_compress_ptr cinfo) |
/* Emit an Adobe APP14 marker */ |
{ |
/* |
- * Length of APP14 block (2 bytes) |
- * Block ID (5 bytes - ASCII "Adobe") |
- * Version Number (2 bytes - currently 100) |
- * Flags0 (2 bytes - currently 0) |
- * Flags1 (2 bytes - currently 0) |
- * Color transform (1 byte) |
+ * Length of APP14 block (2 bytes) |
+ * Block ID (5 bytes - ASCII "Adobe") |
+ * Version Number (2 bytes - currently 100) |
+ * Flags0 (2 bytes - currently 0) |
+ * Flags1 (2 bytes - currently 0) |
+ * Color transform (1 byte) |
* |
* Although Adobe TN 5116 mentions Version = 101, all the Adobe files |
* now in circulation seem to use Version = 100, so that's what we write. |
@@ -403,28 +404,28 @@ emit_adobe_app14 (j_compress_ptr cinfo) |
* YCbCr, 2 if it's YCCK, 0 otherwise. Adobe's definition has to do with |
* whether the encoder performed a transformation, which is pretty useless. |
*/ |
- |
+ |
emit_marker(cinfo, M_APP14); |
- |
+ |
emit_2bytes(cinfo, 2 + 5 + 2 + 2 + 2 + 1); /* length */ |
- emit_byte(cinfo, 0x41); /* Identifier: ASCII "Adobe" */ |
+ emit_byte(cinfo, 0x41); /* Identifier: ASCII "Adobe" */ |
emit_byte(cinfo, 0x64); |
emit_byte(cinfo, 0x6F); |
emit_byte(cinfo, 0x62); |
emit_byte(cinfo, 0x65); |
- emit_2bytes(cinfo, 100); /* Version */ |
- emit_2bytes(cinfo, 0); /* Flags0 */ |
- emit_2bytes(cinfo, 0); /* Flags1 */ |
+ emit_2bytes(cinfo, 100); /* Version */ |
+ emit_2bytes(cinfo, 0); /* Flags0 */ |
+ emit_2bytes(cinfo, 0); /* Flags1 */ |
switch (cinfo->jpeg_color_space) { |
case JCS_YCbCr: |
- emit_byte(cinfo, 1); /* Color transform = 1 */ |
+ emit_byte(cinfo, 1); /* Color transform = 1 */ |
break; |
case JCS_YCCK: |
- emit_byte(cinfo, 2); /* Color transform = 2 */ |
+ emit_byte(cinfo, 2); /* Color transform = 2 */ |
break; |
default: |
- emit_byte(cinfo, 0); /* Color transform = 0 */ |
+ emit_byte(cinfo, 0); /* Color transform = 0 */ |
break; |
} |
} |
@@ -442,12 +443,12 @@ METHODDEF(void) |
write_marker_header (j_compress_ptr cinfo, int marker, unsigned int datalen) |
/* Emit an arbitrary marker header */ |
{ |
- if (datalen > (unsigned int) 65533) /* safety check */ |
+ if (datalen > (unsigned int) 65533) /* safety check */ |
ERREXIT(cinfo, JERR_BAD_LENGTH); |
emit_marker(cinfo, (JPEG_MARKER) marker); |
- emit_2bytes(cinfo, (int) (datalen + 2)); /* total length */ |
+ emit_2bytes(cinfo, (int) (datalen + 2)); /* total length */ |
} |
METHODDEF(void) |
@@ -474,12 +475,12 @@ write_file_header (j_compress_ptr cinfo) |
{ |
my_marker_ptr marker = (my_marker_ptr) cinfo->marker; |
- emit_marker(cinfo, M_SOI); /* first the SOI */ |
+ emit_marker(cinfo, M_SOI); /* first the SOI */ |
/* SOI is defined to reset restart interval to 0 */ |
marker->last_restart_interval = 0; |
- if (cinfo->write_JFIF_header) /* next an optional JFIF APP0 */ |
+ if (cinfo->write_JFIF_header) /* next an optional JFIF APP0 */ |
emit_jfif_app0(cinfo); |
if (cinfo->write_Adobe_marker) /* next an optional Adobe APP14 */ |
emit_adobe_app14(cinfo); |
@@ -500,7 +501,7 @@ write_frame_header (j_compress_ptr cinfo) |
int ci, prec; |
boolean is_baseline; |
jpeg_component_info *compptr; |
- |
+ |
/* Emit DQT for each quantization table. |
* Note that emit_dqt() suppresses any duplicate tables. |
*/ |
@@ -520,9 +521,9 @@ write_frame_header (j_compress_ptr cinfo) |
} else { |
is_baseline = TRUE; |
for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components; |
- ci++, compptr++) { |
+ ci++, compptr++) { |
if (compptr->dc_tbl_no > 1 || compptr->ac_tbl_no > 1) |
- is_baseline = FALSE; |
+ is_baseline = FALSE; |
} |
if (prec && is_baseline) { |
is_baseline = FALSE; |
@@ -539,11 +540,11 @@ write_frame_header (j_compress_ptr cinfo) |
emit_sof(cinfo, M_SOF9); /* SOF code for sequential arithmetic */ |
} else { |
if (cinfo->progressive_mode) |
- emit_sof(cinfo, M_SOF2); /* SOF code for progressive Huffman */ |
+ emit_sof(cinfo, M_SOF2); /* SOF code for progressive Huffman */ |
else if (is_baseline) |
- emit_sof(cinfo, M_SOF0); /* SOF code for baseline implementation */ |
+ emit_sof(cinfo, M_SOF0); /* SOF code for baseline implementation */ |
else |
- emit_sof(cinfo, M_SOF1); /* SOF code for non-baseline Huffman file */ |
+ emit_sof(cinfo, M_SOF1); /* SOF code for non-baseline Huffman file */ |
} |
} |
@@ -575,10 +576,10 @@ write_scan_header (j_compress_ptr cinfo) |
compptr = cinfo->cur_comp_info[i]; |
/* DC needs no table for refinement scan */ |
if (cinfo->Ss == 0 && cinfo->Ah == 0) |
- emit_dht(cinfo, compptr->dc_tbl_no, FALSE); |
+ emit_dht(cinfo, compptr->dc_tbl_no, FALSE); |
/* AC needs no table when not present */ |
if (cinfo->Se) |
- emit_dht(cinfo, compptr->ac_tbl_no, TRUE); |
+ emit_dht(cinfo, compptr->ac_tbl_no, TRUE); |
} |
} |
@@ -627,9 +628,9 @@ write_tables_only (j_compress_ptr cinfo) |
if (! cinfo->arith_code) { |
for (i = 0; i < NUM_HUFF_TBLS; i++) { |
if (cinfo->dc_huff_tbl_ptrs[i] != NULL) |
- emit_dht(cinfo, i, FALSE); |
+ emit_dht(cinfo, i, FALSE); |
if (cinfo->ac_huff_tbl_ptrs[i] != NULL) |
- emit_dht(cinfo, i, TRUE); |
+ emit_dht(cinfo, i, TRUE); |
} |
} |
@@ -649,7 +650,7 @@ jinit_marker_writer (j_compress_ptr cinfo) |
/* Create the subobject */ |
marker = (my_marker_ptr) |
(*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, |
- SIZEOF(my_marker_writer)); |
+ sizeof(my_marker_writer)); |
cinfo->marker = (struct jpeg_marker_writer *) marker; |
/* Initialize method pointers */ |
marker->pub.write_file_header = write_file_header; |