about summary refs log tree commit diff
path: root/converter/other/jpeg2000/libjasper/jpc/jpc_tagtree.c
diff options
context:
space:
mode:
Diffstat (limited to 'converter/other/jpeg2000/libjasper/jpc/jpc_tagtree.c')
-rw-r--r--converter/other/jpeg2000/libjasper/jpc/jpc_tagtree.c466
1 files changed, 233 insertions, 233 deletions
diff --git a/converter/other/jpeg2000/libjasper/jpc/jpc_tagtree.c b/converter/other/jpeg2000/libjasper/jpc/jpc_tagtree.c
index 2b13fcf1..1d026b85 100644
--- a/converter/other/jpeg2000/libjasper/jpc/jpc_tagtree.c
+++ b/converter/other/jpeg2000/libjasper/jpc/jpc_tagtree.c
@@ -6,14 +6,14 @@
  */
 
 /* __START_OF_JASPER_LICENSE__
- * 
+ *
  * JasPer Software License
- * 
+ *
  * IMAGE POWER JPEG-2000 PUBLIC LICENSE
  * ************************************
- * 
+ *
  * GRANT:
- * 
+ *
  * Permission is hereby granted, free of charge, to any person (the "User")
  * obtaining a copy of this software and associated documentation, to deal
  * in the JasPer Software without restriction, including without limitation
@@ -21,22 +21,22 @@
  * and/or sell copies of the JasPer Software (in source and binary forms),
  * and to permit persons to whom the JasPer Software is furnished to do so,
  * provided further that the License Conditions below are met.
- * 
+ *
  * License Conditions
  * ******************
- * 
+ *
  * A.  Redistributions of source code must retain the above copyright notice,
  * and this list of conditions, and the following disclaimer.
- * 
+ *
  * B.  Redistributions in binary form must reproduce the above copyright
  * notice, and this list of conditions, and the following disclaimer in
  * the documentation and/or other materials provided with the distribution.
- * 
+ *
  * C.  Neither the name of Image Power, Inc. nor any other contributor
  * (including, but not limited to, the University of British Columbia and
  * Michael David Adams) may be used to endorse or promote products derived
  * from this software without specific prior written permission.
- * 
+ *
  * D.  User agrees that it shall not commence any action against Image Power,
  * Inc., the University of British Columbia, Michael David Adams, or any
  * other contributors (collectively "Licensors") for infringement of any
@@ -56,17 +56,17 @@
  * trade dress, or service mark rights); and (v) divisions, continuations,
  * renewals, reissues and extensions of the foregoing (as and to the extent
  * applicable) now existing, hereafter filed, issued or acquired.
- * 
+ *
  * E.  If User commences an infringement action against any Licensor(s) then
  * such Licensor(s) shall have the right to terminate User's license and
  * all sublicenses that have been granted hereunder by User to other parties.
- * 
+ *
  * F.  This software is for use only in hardware or software products that
  * are compliant with ISO/IEC 15444-1 (i.e., JPEG-2000 Part 1).  No license
  * or right to this Software is granted for products that do not comply
  * with ISO/IEC 15444-1.  The JPEG-2000 Part 1 standard can be purchased
  * from the ISO.
- * 
+ *
  * THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE.
  * NO USE OF THE JASPER SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER
  * THIS DISCLAIMER.  THE JASPER SOFTWARE IS PROVIDED BY THE LICENSORS AND
@@ -106,7 +106,7 @@
  * TECHNOLOGY OR PRODUCTS FOR HIGH RISK ACTIVITIES AND WILL ENSURE THAT ITS
  * CUSTOMERS AND END-USERS OF ITS PRODUCTS ARE PROVIDED WITH A COPY OF THE
  * NOTICE SPECIFIED IN THIS SECTION.
- * 
+ *
  * __END_OF_JASPER_LICENSE__
  */
 
@@ -135,101 +135,101 @@
 
 static jpc_tagtree_t *jpc_tagtree_alloc(void)
 {
-	jpc_tagtree_t *tree;
+        jpc_tagtree_t *tree;
 
-	if (!(tree = jas_malloc(sizeof(jpc_tagtree_t)))) {
-		return 0;
-	}
-	tree->numleafsh_ = 0;
-	tree->numleafsv_ = 0;
-	tree->numnodes_ = 0;
-	tree->nodes_ = 0;
+        if (!(tree = jas_malloc(sizeof(jpc_tagtree_t)))) {
+                return 0;
+        }
+        tree->numleafsh_ = 0;
+        tree->numleafsv_ = 0;
+        tree->numnodes_ = 0;
+        tree->nodes_ = 0;
 
-	return tree;
+        return tree;
 }
 
 /* Create a tag tree. */
 
 jpc_tagtree_t *jpc_tagtree_create(int numleafsh, int numleafsv)
 {
-	int nplh[JPC_TAGTREE_MAXDEPTH];
-	int nplv[JPC_TAGTREE_MAXDEPTH];
-	jpc_tagtreenode_t *node;
-	jpc_tagtreenode_t *parentnode;
-	jpc_tagtreenode_t *parentnode0;
-	jpc_tagtree_t *tree;
-	int i;
-	int j;
-	int k;
-	int numlvls;
-	int n;
-
-	assert(numleafsh > 0 && numleafsv > 0);
-
-	if (!(tree = jpc_tagtree_alloc())) {
-		return 0;
-	}
-	tree->numleafsh_ = numleafsh;
-	tree->numleafsv_ = numleafsv;
-
-	numlvls = 0;
-	nplh[0] = numleafsh;
-	nplv[0] = numleafsv;
-	do {
-		n = nplh[numlvls] * nplv[numlvls];
-		nplh[numlvls + 1] = (nplh[numlvls] + 1) / 2;
-		nplv[numlvls + 1] = (nplv[numlvls] + 1) / 2;
-		tree->numnodes_ += n;
-		++numlvls;
-	} while (n > 1);
-
-	if (!(tree->nodes_ = jas_malloc(tree->numnodes_ * sizeof(jpc_tagtreenode_t)))) {
-		return 0;
-	}
-
-	/* Initialize the parent links for all nodes in the tree. */
-
-	node = tree->nodes_;
-	parentnode = &tree->nodes_[tree->numleafsh_ * tree->numleafsv_];
-	parentnode0 = parentnode;
-
-	for (i = 0; i < numlvls - 1; ++i) {
-		for (j = 0; j < nplv[i]; ++j) {
-			k = nplh[i];
-			while (--k >= 0) {
-				node->parent_ = parentnode;
-				++node;
-				if (--k >= 0) {
-					node->parent_ = parentnode;
-					++node;
-				}
-				++parentnode;
-			}
-			if ((j & 1) || j == nplv[i] - 1) {
-				parentnode0 = parentnode;
-			} else {
-				parentnode = parentnode0;
-				parentnode0 += nplh[i];
-			}
-		}
-	}
-	node->parent_ = 0;
-
-	/* Initialize the data values to something sane. */
-
-	jpc_tagtree_reset(tree);
-
-	return tree;
+        int nplh[JPC_TAGTREE_MAXDEPTH];
+        int nplv[JPC_TAGTREE_MAXDEPTH];
+        jpc_tagtreenode_t *node;
+        jpc_tagtreenode_t *parentnode;
+        jpc_tagtreenode_t *parentnode0;
+        jpc_tagtree_t *tree;
+        int i;
+        int j;
+        int k;
+        int numlvls;
+        int n;
+
+        assert(numleafsh > 0 && numleafsv > 0);
+
+        if (!(tree = jpc_tagtree_alloc())) {
+                return 0;
+        }
+        tree->numleafsh_ = numleafsh;
+        tree->numleafsv_ = numleafsv;
+
+        numlvls = 0;
+        nplh[0] = numleafsh;
+        nplv[0] = numleafsv;
+        do {
+                n = nplh[numlvls] * nplv[numlvls];
+                nplh[numlvls + 1] = (nplh[numlvls] + 1) / 2;
+                nplv[numlvls + 1] = (nplv[numlvls] + 1) / 2;
+                tree->numnodes_ += n;
+                ++numlvls;
+        } while (n > 1);
+
+        if (!(tree->nodes_ = jas_malloc(tree->numnodes_ * sizeof(jpc_tagtreenode_t)))) {
+                return 0;
+        }
+
+        /* Initialize the parent links for all nodes in the tree. */
+
+        node = tree->nodes_;
+        parentnode = &tree->nodes_[tree->numleafsh_ * tree->numleafsv_];
+        parentnode0 = parentnode;
+
+        for (i = 0; i < numlvls - 1; ++i) {
+                for (j = 0; j < nplv[i]; ++j) {
+                        k = nplh[i];
+                        while (--k >= 0) {
+                                node->parent_ = parentnode;
+                                ++node;
+                                if (--k >= 0) {
+                                        node->parent_ = parentnode;
+                                        ++node;
+                                }
+                                ++parentnode;
+                        }
+                        if ((j & 1) || j == nplv[i] - 1) {
+                                parentnode0 = parentnode;
+                        } else {
+                                parentnode = parentnode0;
+                                parentnode0 += nplh[i];
+                        }
+                }
+        }
+        node->parent_ = 0;
+
+        /* Initialize the data values to something sane. */
+
+        jpc_tagtree_reset(tree);
+
+        return tree;
 }
 
 /* Destroy a tag tree. */
 
 void jpc_tagtree_destroy(jpc_tagtree_t *tree)
 {
-	if (tree->nodes_) {
-		jas_free(tree->nodes_);
-	}
-	jas_free(tree);
+        if (tree->nodes_) {
+                jas_free(tree->nodes_);
+        }
+        jas_free(tree);
 }
 
 /******************************************************************************\
@@ -240,42 +240,42 @@ void jpc_tagtree_destroy(jpc_tagtree_t *tree)
 
 void jpc_tagtree_copy(jpc_tagtree_t *dsttree, jpc_tagtree_t *srctree)
 {
-	int n;
-	jpc_tagtreenode_t *srcnode;
-	jpc_tagtreenode_t *dstnode;
-
-	/* The two tag trees must have similar sizes. */
-	assert(srctree->numleafsh_ == dsttree->numleafsh_ &&
-	  srctree->numleafsv_ == dsttree->numleafsv_);
-
-	n = srctree->numnodes_;
-	srcnode = srctree->nodes_;
-	dstnode = dsttree->nodes_;
-	while (--n >= 0) {
-		dstnode->value_ = srcnode->value_;
-		dstnode->low_ = srcnode->low_;
-		dstnode->known_ = srcnode->known_;
-		++dstnode;
-		++srcnode;
-	}
+        int n;
+        jpc_tagtreenode_t *srcnode;
+        jpc_tagtreenode_t *dstnode;
+
+        /* The two tag trees must have similar sizes. */
+        assert(srctree->numleafsh_ == dsttree->numleafsh_ &&
+          srctree->numleafsv_ == dsttree->numleafsv_);
+
+        n = srctree->numnodes_;
+        srcnode = srctree->nodes_;
+        dstnode = dsttree->nodes_;
+        while (--n >= 0) {
+                dstnode->value_ = srcnode->value_;
+                dstnode->low_ = srcnode->low_;
+                dstnode->known_ = srcnode->known_;
+                ++dstnode;
+                ++srcnode;
+        }
 }
 
 /* Reset all of the state information associated with a tag tree. */
 
 void jpc_tagtree_reset(jpc_tagtree_t *tree)
 {
-	int n;
-	jpc_tagtreenode_t *node;
-
-	n = tree->numnodes_;
-	node = tree->nodes_;
-
-	while (--n >= 0) {
-		node->value_ = INT_MAX;
-		node->low_ = 0;
-		node->known_ = 0;
-		++node;
-	}
+        int n;
+        jpc_tagtreenode_t *node;
+
+        n = tree->numnodes_;
+        node = tree->nodes_;
+
+        while (--n >= 0) {
+                node->value_ = INT_MAX;
+                node->low_ = 0;
+                node->known_ = 0;
+                ++node;
+        }
 }
 
 /* Set the value associated with the specified leaf node, updating
@@ -283,22 +283,22 @@ the other nodes as necessary. */
 
 void jpc_tagtree_setvalue(jpc_tagtree_t *tree, jpc_tagtreenode_t *leaf, int value)
 {
-	jpc_tagtreenode_t *node;
+        jpc_tagtreenode_t *node;
 
-	assert(value >= 0);
+        assert(value >= 0);
 
-	node = leaf;
-	while (node && node->value_ > value) {
-		node->value_ = value;
-		node = node->parent_;
-	}
+        node = leaf;
+        while (node && node->value_ > value) {
+                node->value_ = value;
+                node = node->parent_;
+        }
 }
 
 /* Get a particular leaf node. */
 
 jpc_tagtreenode_t *jpc_tagtree_getleaf(jpc_tagtree_t *tree, int n)
 {
-	return &tree->nodes_[n];
+        return &tree->nodes_[n];
 }
 
 /* Invoke the tag tree encoding procedure. */
@@ -306,55 +306,55 @@ jpc_tagtreenode_t *jpc_tagtree_getleaf(jpc_tagtree_t *tree, int n)
 int jpc_tagtree_encode(jpc_tagtree_t *tree, jpc_tagtreenode_t *leaf, int threshold,
   jpc_bitstream_t *out)
 {
-	jpc_tagtreenode_t *stk[JPC_TAGTREE_MAXDEPTH - 1];
-	jpc_tagtreenode_t **stkptr;
-	jpc_tagtreenode_t *node;
-	int low;
-
-	assert(leaf);
-	assert(threshold >= 0);
-
-	/* Traverse to the root of the tree, recording the path taken. */
-	stkptr = stk;
-	node = leaf;
-	while (node->parent_) {
-		*stkptr++ = node;
-		node = node->parent_;
-	}
-
-	low = 0;
-	for (;;) {
-		if (low > node->low_) {
-			/* Deferred propagation of the lower bound downward in
-			  the tree. */
-			node->low_ = low;
-		} else {
-			low = node->low_;
-		}
-
-		while (low < threshold) {
-			if (low >= node->value_) {
-				if (!node->known_) {
-					if (jpc_bitstream_putbit(out, 1) == EOF) {
-						return -1;
-					}
-					node->known_ = 1;
-				}
-				break;
-			}
-			if (jpc_bitstream_putbit(out, 0) == EOF) {
-				return -1;
-			}
-			++low;
-		}
-		node->low_ = low;
-		if (stkptr == stk) {
-			break;
-		}
-		node = *--stkptr;
-
-	}
-	return (leaf->low_ < threshold) ? 1 : 0;
+        jpc_tagtreenode_t *stk[JPC_TAGTREE_MAXDEPTH - 1];
+        jpc_tagtreenode_t **stkptr;
+        jpc_tagtreenode_t *node;
+        int low;
+
+        assert(leaf);
+        assert(threshold >= 0);
+
+        /* Traverse to the root of the tree, recording the path taken. */
+        stkptr = stk;
+        node = leaf;
+        while (node->parent_) {
+                *stkptr++ = node;
+                node = node->parent_;
+        }
+
+        low = 0;
+        for (;;) {
+                if (low > node->low_) {
+                        /* Deferred propagation of the lower bound downward in
+                          the tree. */
+                        node->low_ = low;
+                } else {
+                        low = node->low_;
+                }
+
+                while (low < threshold) {
+                        if (low >= node->value_) {
+                                if (!node->known_) {
+                                        if (jpc_bitstream_putbit(out, 1) == EOF) {
+                                                return -1;
+                                        }
+                                        node->known_ = 1;
+                                }
+                                break;
+                        }
+                        if (jpc_bitstream_putbit(out, 0) == EOF) {
+                                return -1;
+                        }
+                        ++low;
+                }
+                node->low_ = low;
+                if (stkptr == stk) {
+                        break;
+                }
+                node = *--stkptr;
+
+        }
+        return (leaf->low_ < threshold) ? 1 : 0;
 
 }
 
@@ -363,47 +363,47 @@ int jpc_tagtree_encode(jpc_tagtree_t *tree, jpc_tagtreenode_t *leaf, int thresho
 int jpc_tagtree_decode(jpc_tagtree_t *tree, jpc_tagtreenode_t *leaf, int threshold,
   jpc_bitstream_t *in)
 {
-	jpc_tagtreenode_t *stk[JPC_TAGTREE_MAXDEPTH - 1];
-	jpc_tagtreenode_t **stkptr;
-	jpc_tagtreenode_t *node;
-	int low;
-	int ret;
-
-	assert(threshold >= 0);
-
-	/* Traverse to the root of the tree, recording the path taken. */
-	stkptr = stk;
-	node = leaf;
-	while (node->parent_) {
-		*stkptr++ = node;
-		node = node->parent_;
-	}
-
-	low = 0;
-	for (;;) {
-		if (low > node->low_) {
-			node->low_ = low;
-		} else {
-			low = node->low_;
-		}
-		while (low < threshold && low < node->value_) {
-			if ((ret = jpc_bitstream_getbit(in)) < 0) {
-				return -1;
-			}
-			if (ret) {
-				node->value_ = low;
-			} else {
-				++low;
-			}
-		}
-		node->low_ = low;
-		if (stkptr == stk) {
-			break;
-		}
-		node = *--stkptr;
-	}
-
-	return (node->value_ < threshold) ? 1 : 0;
+        jpc_tagtreenode_t *stk[JPC_TAGTREE_MAXDEPTH - 1];
+        jpc_tagtreenode_t **stkptr;
+        jpc_tagtreenode_t *node;
+        int low;
+        int ret;
+
+        assert(threshold >= 0);
+
+        /* Traverse to the root of the tree, recording the path taken. */
+        stkptr = stk;
+        node = leaf;
+        while (node->parent_) {
+                *stkptr++ = node;
+                node = node->parent_;
+        }
+
+        low = 0;
+        for (;;) {
+                if (low > node->low_) {
+                        node->low_ = low;
+                } else {
+                        low = node->low_;
+                }
+                while (low < threshold && low < node->value_) {
+                        if ((ret = jpc_bitstream_getbit(in)) < 0) {
+                                return -1;
+                        }
+                        if (ret) {
+                                node->value_ = low;
+                        } else {
+                                ++low;
+                        }
+                }
+                node->low_ = low;
+                if (stkptr == stk) {
+                        break;
+                }
+                node = *--stkptr;
+        }
+
+        return (node->value_ < threshold) ? 1 : 0;
 }
 
 /******************************************************************************\
@@ -412,15 +412,15 @@ int jpc_tagtree_decode(jpc_tagtree_t *tree, jpc_tagtreenode_t *leaf, int thresho
 
 void jpc_tagtree_dump(jpc_tagtree_t *tree, FILE *out)
 {
-	jpc_tagtreenode_t *node;
-	int n;
-
-	node = tree->nodes_;
-	n = tree->numnodes_;
-	while (--n >= 0) {
-		fprintf(out, "node %p, parent %p, value %d, lower %d, known %d\n",
-		  (void *) node, (void *) node->parent_, node->value_, node->low_,
-		  node->known_);
-		++node;
-	}
+        jpc_tagtreenode_t *node;
+        int n;
+
+        node = tree->nodes_;
+        n = tree->numnodes_;
+        while (--n >= 0) {
+                fprintf(out, "node %p, parent %p, value %d, lower %d, known %d\n",
+                  (void *) node, (void *) node->parent_, node->value_, node->low_,
+                  node->known_);
+                ++node;
+        }
 }