1 //<MStar Software> 2 //****************************************************************************** 3 // MStar Software 4 // Copyright (c) 2010 - 2012 MStar Semiconductor, Inc. All rights reserved. 5 // All software, firmware and related documentation herein ("MStar Software") are 6 // intellectual property of MStar Semiconductor, Inc. ("MStar") and protected by 7 // law, including, but not limited to, copyright law and international treaties. 8 // Any use, modification, reproduction, retransmission, or republication of all 9 // or part of MStar Software is expressly prohibited, unless prior written 10 // permission has been granted by MStar. 11 // 12 // By accessing, browsing and/or using MStar Software, you acknowledge that you 13 // have read, understood, and agree, to be bound by below terms ("Terms") and to 14 // comply with all applicable laws and regulations: 15 // 16 // 1. MStar shall retain any and all right, ownership and interest to MStar 17 // Software and any modification/derivatives thereof. 18 // No right, ownership, or interest to MStar Software and any 19 // modification/derivatives thereof is transferred to you under Terms. 20 // 21 // 2. You understand that MStar Software might include, incorporate or be 22 // supplied together with third party`s software and the use of MStar 23 // Software may require additional licenses from third parties. 24 // Therefore, you hereby agree it is your sole responsibility to separately 25 // obtain any and all third party right and license necessary for your use of 26 // such third party`s software. 27 // 28 // 3. MStar Software and any modification/derivatives thereof shall be deemed as 29 // MStar`s confidential information and you agree to keep MStar`s 30 // confidential information in strictest confidence and not disclose to any 31 // third party. 32 // 33 // 4. MStar Software is provided on an "AS IS" basis without warranties of any 34 // kind. Any warranties are hereby expressly disclaimed by MStar, including 35 // without limitation, any warranties of merchantability, non-infringement of 36 // intellectual property rights, fitness for a particular purpose, error free 37 // and in conformity with any international standard. You agree to waive any 38 // claim against MStar for any loss, damage, cost or expense that you may 39 // incur related to your use of MStar Software. 40 // In no event shall MStar be liable for any direct, indirect, incidental or 41 // consequential damages, including without limitation, lost of profit or 42 // revenues, lost or damage of data, and unauthorized system use. 43 // You agree that this Section 4 shall still apply without being affected 44 // even if MStar Software has been modified by MStar in accordance with your 45 // request or instruction for your use, except otherwise agreed by both 46 // parties in writing. 47 // 48 // 5. If requested, MStar may from time to time provide technical supports or 49 // services in relation with MStar Software to you for your use of 50 // MStar Software in conjunction with your or your customer`s product 51 // ("Services"). 52 // You understand and agree that, except otherwise agreed by both parties in 53 // writing, Services are provided on an "AS IS" basis and the warranty 54 // disclaimer set forth in Section 4 above shall apply. 55 // 56 // 6. Nothing contained herein shall be construed as by implication, estoppels 57 // or otherwise: 58 // (a) conferring any license or right to use MStar name, trademark, service 59 // mark, symbol or any other identification; 60 // (b) obligating MStar or any of its affiliates to furnish any person, 61 // including without limitation, you and your customers, any assistance 62 // of any kind whatsoever, or any information; or 63 // (c) conferring any license or right under any intellectual property right. 64 // 65 // 7. These terms shall be governed by and construed in accordance with the laws 66 // of Taiwan, R.O.C., excluding its conflict of law rules. 67 // Any and all dispute arising out hereof or related hereto shall be finally 68 // settled by arbitration referred to the Chinese Arbitration Association, 69 // Taipei in accordance with the ROC Arbitration Law and the Arbitration 70 // Rules of the Association by three (3) arbitrators appointed in accordance 71 // with the said Rules. 72 // The place of arbitration shall be in Taipei, Taiwan and the language shall 73 // be English. 74 // The arbitration award shall be final and binding to both parties. 75 // 76 //****************************************************************************** 77 //<MStar Software> 78 /* inftrees.h -- header to use inftrees.c 79 * Copyright (C) 1995-2005 Mark Adler 80 * For conditions of distribution and use, see copyright notice in zlib.h 81 */ 82 83 /* WARNING: this file should *not* be used by applications. It is 84 part of the implementation of the compression library and is 85 subject to change. Applications should only use zlib.h. 86 */ 87 88 /* Structure for decoding tables. Each entry provides either the 89 information needed to do the operation requested by the code that 90 indexed that table entry, or it provides a pointer to another 91 table that indexes more bits of the code. op indicates whether 92 the entry is a pointer to another table, a literal, a length or 93 distance, an end-of-block, or an invalid code. For a table 94 pointer, the low four bits of op is the number of index bits of 95 that table. For a length or distance, the low four bits of op 96 is the number of extra bits to get after the code. bits is 97 the number of bits in this code or part of the code to drop off 98 of the bit buffer. val is the actual byte to output in the case 99 of a literal, the base length or distance, or the offset from 100 the current table to the next table. Each entry is four bytes. */ 101 typedef struct { 102 MS_U8 op; /* operation, extra bits, table bits */ 103 MS_U8 bits; /* bits in this part of the code */ 104 MS_U16 val; /* offset in table or code value */ 105 } code; 106 107 /* op values as set by inflate_table(): 108 00000000 - literal 109 0000tttt - table link, tttt != 0 is the number of table index bits 110 0001eeee - length or distance, eeee is the number of extra bits 111 01100000 - end of block 112 01000000 - invalid code 113 */ 114 115 /* Maximum size of dynamic tree. The maximum found in a long but non- 116 exhaustive search was 1444 code structures (852 for length/literals 117 and 592 for distances, the latter actually the result of an 118 exhaustive search). The true maximum is not known, but the value 119 below is more than safe. */ 120 #define ENOUGH 2048 121 #define MAXD 592 122 123 /* Type of code to build for inftable() */ 124 typedef enum { 125 CODES, 126 LENS, 127 DISTS 128 } codetype; 129 130 extern MS_U32 gpdinflate_table OF((codetype type, MS_U16 FAR *lens, 131 MS_U32 codes, code FAR * FAR *table, 132 MS_U32 FAR *bits, MS_U16 FAR *work)); 133