home *** CD-ROM | disk | FTP | other *** search
/ Dream 44 / Amiga_Dream_44.iso / Linux / Apps / xanim.tgz / xanim / xanim27064 / xa_jpg.h < prev    next >
C/C++ Source or Header  |  1997-01-26  |  3KB  |  112 lines

  1.  
  2. /*
  3.  * xa_jpg.h
  4.  *
  5.  * Copyright (C) 1995,1996,1997 by Mark Podlipec.
  6.  * All rights reserved.
  7.  *
  8.  * This software may be freely copied, modified and redistributed without
  9.  * fee for non-commerical purposes provided that this copyright notice is
  10.  * preserved intact on all copies and modified copies.
  11.  *
  12.  * There is no warranty or other guarantee of fitness of this software.
  13.  * It is provided solely "as is". The author(s) disclaim(s) all
  14.  * responsibility and liability with respect to this software's usage
  15.  * or its effect upon hardware or computer systems.
  16.  *
  17.  */
  18.  
  19. #include "xanim.h"
  20.  
  21. #define MAXJSAMPLE 255
  22. #define CENTERJSAMPLE 128
  23. #define RANGE_MASK  (MAXJSAMPLE * 4 + 3) /* 2 bits wider than legal samples */
  24.  
  25. #define JJ_NUM_HUFF_TBLS  4
  26. #define JJ_NUM_QUANT_TBLS 4
  27.  
  28. #define HUFF_LOOKAHEAD 8
  29.  
  30. typedef struct HUFFMAN_STRUCT
  31. {
  32.   xaLONG  mincode[17];
  33.   xaLONG  maxcode[18];
  34.   xaLONG  valptr[17];
  35.   xaUSHORT cache[256];
  36.   xaUBYTE  vals[256];
  37.   xaUBYTE  bits[17];
  38. } JJ_HUFF_TBL;
  39.  
  40. typedef struct COMPONENT_STRUCT
  41. {
  42.   xaULONG hvsample;
  43.   xaULONG ac_htbl_num;
  44.   xaULONG dc_htbl_num;
  45.   xaULONG qtbl_num;
  46.   xaUBYTE id;
  47.   xaLONG  dc;
  48. } COMPONENT_HDR;
  49.  
  50. #define DCTSIZE 8
  51. #define DCTSIZE2 64
  52.  
  53. typedef int ISLOW_MULT_TYPE;
  54.  
  55.  
  56. /* JPEG MARKERS */
  57. #define   M_SOF0    0xc0
  58. #define   M_SOF1    0xc1
  59. #define   M_SOF2    0xc2
  60. #define   M_SOF3    0xc3
  61. #define   M_SOF5    0xc5
  62. #define   M_SOF6    0xc6
  63. #define   M_SOF7    0xc7
  64. #define   M_JPG     0xc8
  65. #define   M_SOF9    0xc9
  66. #define   M_SOF10   0xca
  67. #define   M_SOF11   0xcb
  68. #define   M_SOF13   0xcd
  69. #define   M_SOF14   0xce
  70. #define   M_SOF15   0xcf
  71. #define   M_DHT     0xc4
  72. #define   M_DAC     0xcc
  73. #define   M_RST0    0xd0
  74. #define   M_RST1    0xd1
  75. #define   M_RST2    0xd2
  76. #define   M_RST3    0xd3
  77. #define   M_RST4    0xd4
  78. #define   M_RST5    0xd5
  79. #define   M_RST6    0xd6
  80. #define   M_RST7    0xd7
  81. #define   M_SOI     0xd8
  82. #define   M_EOI     0xd9
  83. #define   M_SOS     0xda
  84. #define   M_DQT     0xdb
  85. #define   M_DNL     0xdc
  86. #define   M_DRI     0xdd
  87. #define   M_DHP     0xde
  88. #define   M_EXP     0xdf
  89. #define   M_APP0    0xe0
  90. #define   M_APP1    0xe1
  91. #define   M_APP2    0xe2
  92. #define   M_APP3    0xe3
  93. #define   M_APP4    0xe4
  94. #define   M_APP5    0xe5
  95. #define   M_APP6    0xe6
  96. #define   M_APP7    0xe7
  97. #define   M_APP8    0xe8
  98. #define   M_APP9    0xe9
  99. #define   M_APP10   0xea
  100. #define   M_APP11   0xeb
  101. #define   M_APP12   0xec
  102. #define   M_APP13   0xed
  103. #define   M_APP14   0xee
  104. #define   M_APP15   0xef
  105. #define   M_JPG0    0xf0
  106. #define   M_JPG13   0xfd
  107. #define   M_COM     0xfe
  108. #define   M_TEM     0x01
  109. #define   M_ERROR   0x100
  110.  
  111.  
  112.