Index: third_party/libva/test/decode/tinyjpeg-internal.h |
diff --git a/third_party/libva/test/decode/tinyjpeg-internal.h b/third_party/libva/test/decode/tinyjpeg-internal.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..c54b98e203df777d1c2610afd4042a35858e9517 |
--- /dev/null |
+++ b/third_party/libva/test/decode/tinyjpeg-internal.h |
@@ -0,0 +1,117 @@ |
+/* |
+ * Small jpeg decoder library (Internal header) |
+ * |
+ * Copyright (c) 2006, Luc Saillard <luc@saillard.org> |
+ * Copyright (c) 2012 Intel Corporation. |
+ * All rights reserved. |
+ * Redistribution and use in source and binary forms, with or without |
+ * modification, are permitted provided that the following conditions are met: |
+ * |
+ * - Redistributions of source code must retain the above copyright notice, |
+ * this list of conditions and the following disclaimer. |
+ * |
+ * - Redistributions in binary form must reproduce the above copyright notice, |
+ * this list of conditions and the following disclaimer in the documentation |
+ * and/or other materials provided with the distribution. |
+ * |
+ * - Neither the name of the author nor the names of its contributors may be |
+ * used to endorse or promote products derived from this software without |
+ * specific prior written permission. |
+ * |
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE |
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
+ * POSSIBILITY OF SUCH DAMAGE. |
+ * |
+ */ |
+ |
+ |
+#ifndef __TINYJPEG_INTERNAL_H_ |
+#define __TINYJPEG_INTERNAL_H_ |
+ |
+#include <setjmp.h> |
+ |
+#define SANITY_CHECK 1 |
+ |
+struct jdec_private; |
+ |
+#define HUFFMAN_BITS_SIZE 256 |
+ |
+#define HUFFMAN_TABLES 4 |
+#define COMPONENTS 4 |
+#define JPEG_MAX_WIDTH 2048 |
+#define JPEG_MAX_HEIGHT 2048 |
+ |
+enum std_markers { |
+ DQT = 0xDB, /* Define Quantization Table */ |
+ SOF = 0xC0, /* Start of Frame (size information) */ |
+ DHT = 0xC4, /* Huffman Table */ |
+ SOI = 0xD8, /* Start of Image */ |
+ SOS = 0xDA, /* Start of Scan */ |
+ RST = 0xD0, /* Reset Marker d0 -> .. */ |
+ RST7 = 0xD7, /* Reset Marker .. -> d7 */ |
+ EOI = 0xD9, /* End of Image */ |
+ DRI = 0xDD, /* Define Restart Interval */ |
+ APP0 = 0xE0, |
+}; |
+ |
+ |
+struct huffman_table |
+{ |
+ /*bits and values*/ |
+ unsigned char bits[16]; |
+ unsigned char values[256]; |
+}; |
+ |
+struct component |
+{ |
+ unsigned int Hfactor; |
+ unsigned int Vfactor; |
+ unsigned char quant_table_index; |
+ unsigned int cid; |
+}; |
+ |
+ |
+typedef void (*decode_MCU_fct) (struct jdec_private *priv); |
+typedef void (*convert_colorspace_fct) (struct jdec_private *priv); |
+ |
+struct jpeg_sos |
+{ |
+ unsigned int nr_components; |
+ struct { |
+ unsigned int component_id; |
+ unsigned int dc_selector; |
+ unsigned int ac_selector; |
+ }components[4]; |
+}; |
+ |
+struct jdec_private |
+{ |
+ /* Public variables */ |
+ unsigned int width, height; /* Size of the image */ |
+ |
+ /* Private variables */ |
+ const unsigned char *stream_begin, *stream_end; |
+ unsigned int stream_length; |
+ |
+ const unsigned char *stream; /* Pointer to the current stream */ |
+ |
+ struct component component_infos[COMPONENTS]; |
+ unsigned int nf_components; |
+ unsigned char Q_tables[COMPONENTS][64]; /* quantization tables, zigzag*/ |
+ struct huffman_table HTDC[HUFFMAN_TABLES]; /* DC huffman tables */ |
+ struct huffman_table HTAC[HUFFMAN_TABLES]; /* AC huffman tables */ |
+ struct jpeg_sos cur_sos; /* current sos values*/ |
+ int default_huffman_table_initialized; |
+ int restart_interval; |
+}; |
+ |
+#endif |
+ |