}
}
-ptrdiff_t bio_numbytes(opj_bio_t *bio) {
+ptrdiff_t opj_bio_numbytes(opj_bio_t *bio) {
return (bio->bp - bio->start);
}
-void bio_init_enc(opj_bio_t *bio, unsigned char *bp, int len) {
+void opj_bio_init_enc(opj_bio_t *bio, OPJ_BYTE *bp, OPJ_UINT32 len) {
bio->start = bp;
bio->end = bp + len;
bio->bp = bp;
bio->ct = 8;
}
-void bio_init_dec(opj_bio_t *bio, unsigned char *bp, int len) {
+void opj_bio_init_dec(opj_bio_t *bio, OPJ_BYTE *bp, OPJ_UINT32 len) {
bio->start = bp;
bio->end = bp + len;
bio->bp = bp;
bio->ct = 0;
}
-void bio_write(opj_bio_t *bio, int v, int n) {
- int i;
+void opj_bio_write(opj_bio_t *bio, OPJ_UINT32 v, OPJ_UINT32 n) {
+ OPJ_INT32 i;
for (i = n - 1; i >= 0; i--) {
opj_bio_putbit(bio, (v >> i) & 1);
}
}
-int bio_read(opj_bio_t *bio, int n) {
- int i, v;
+OPJ_UINT32 opj_bio_read(opj_bio_t *bio, OPJ_UINT32 n) {
+ OPJ_INT32 i;
+ OPJ_UINT32 v;
v = 0;
for (i = n - 1; i >= 0; i--) {
v += opj_bio_getbit(bio) << i;
return v;
}
-int bio_flush(opj_bio_t *bio) {
+opj_bool opj_bio_flush(opj_bio_t *bio) {
bio->ct = 0;
if (! opj_bio_byteout(bio)) {
- return 1;
+ return OPJ_FALSE;
}
if (bio->ct == 7) {
bio->ct = 0;
if (! opj_bio_byteout(bio)) {
- return 1;
+ return OPJ_FALSE;
}
}
- return 0;
+ return OPJ_TRUE;
}
-int bio_inalign(opj_bio_t *bio) {
+opj_bool opj_bio_inalign(opj_bio_t *bio) {
bio->ct = 0;
if ((bio->buf & 0xff) == 0xff) {
if (! opj_bio_bytein(bio)) {
- return 1;
+ return OPJ_FALSE;
}
bio->ct = 0;
}
- return 0;
+ return OPJ_TRUE;
}
@param bio BIO handle
@return Returns the number of bytes written
*/
-ptrdiff_t bio_numbytes(opj_bio_t *bio);
+ptrdiff_t opj_bio_numbytes(opj_bio_t *bio);
/**
Init encoder
@param bio BIO handle
@param bp Output buffer
@param len Output buffer length
*/
-void bio_init_enc(opj_bio_t *bio, unsigned char *bp, int len);
+void opj_bio_init_enc(opj_bio_t *bio, OPJ_BYTE *bp, OPJ_UINT32 len);
/**
Init decoder
@param bio BIO handle
@param bp Input buffer
@param len Input buffer length
*/
-void bio_init_dec(opj_bio_t *bio, unsigned char *bp, int len);
+void opj_bio_init_dec(opj_bio_t *bio, OPJ_BYTE *bp, OPJ_UINT32 len);
/**
Write bits
@param bio BIO handle
@param v Value of bits
@param n Number of bits to write
*/
-void bio_write(opj_bio_t *bio, int v, int n);
+void opj_bio_write(opj_bio_t *bio, OPJ_UINT32 v, OPJ_UINT32 n);
/**
Read bits
@param bio BIO handle
@param n Number of bits to read
@return Returns the corresponding read number
*/
-int bio_read(opj_bio_t *bio, int n);
+OPJ_UINT32 opj_bio_read(opj_bio_t *bio, OPJ_UINT32 n);
/**
Flush bits
@param bio BIO handle
-@return Returns 1 if successful, returns 0 otherwise
+@return Returns OPJ_TRUE if successful, returns OPJ_FALSE otherwise
*/
-int bio_flush(opj_bio_t *bio);
+opj_bool opj_bio_flush(opj_bio_t *bio);
/**
Passes the ending bits (coming from flushing)
@param bio BIO handle
-@return Returns 1 if successful, returns 0 otherwise
+@return Returns OPJ_TRUE if successful, returns OPJ_FALSE otherwise
*/
-int bio_inalign(opj_bio_t *bio);
+opj_bool opj_bio_inalign(opj_bio_t *bio);
/* ----------------------------------------------------------------------- */
/*@}*/
/* TODO MSD->LHE */
static void t2_putcommacode(opj_bio_t *bio, int n) {
while (--n >= 0) {
- bio_write(bio, 1, 1);
+ opj_bio_write(bio, 1, 1);
}
- bio_write(bio, 0, 1);
+ opj_bio_write(bio, 0, 1);
}
OPJ_UINT32 opj_t2_getcommacode(opj_bio_t *bio)
{
OPJ_UINT32 n = 0;
- while (bio_read(bio, 1)) {
+ while (opj_bio_read(bio, 1)) {
++n;
}
return n;
void opj_t2_putnumpasses(opj_bio_t *bio, OPJ_UINT32 n) {
if (n == 1) {
- bio_write(bio, 0, 1);
+ opj_bio_write(bio, 0, 1);
} else if (n == 2) {
- bio_write(bio, 2, 2);
+ opj_bio_write(bio, 2, 2);
} else if (n <= 5) {
- bio_write(bio, 0xc | (n - 3), 4);
+ opj_bio_write(bio, 0xc | (n - 3), 4);
} else if (n <= 36) {
- bio_write(bio, 0x1e0 | (n - 6), 9);
+ opj_bio_write(bio, 0x1e0 | (n - 6), 9);
} else if (n <= 164) {
- bio_write(bio, 0xff80 | (n - 37), 16);
+ opj_bio_write(bio, 0xff80 | (n - 37), 16);
}
}
OPJ_UINT32 opj_t2_getnumpasses(opj_bio_t *bio) {
OPJ_UINT32 n;
- if (!bio_read(bio, 1))
+ if (!opj_bio_read(bio, 1))
return 1;
- if (!bio_read(bio, 1))
+ if (!opj_bio_read(bio, 1))
return 2;
- if ((n = bio_read(bio, 2)) != 3)
+ if ((n = opj_bio_read(bio, 2)) != 3)
return (3 + n);
- if ((n = bio_read(bio, 5)) != 31)
+ if ((n = opj_bio_read(bio, 5)) != 31)
return (6 + n);
- return (37 + bio_read(bio, 7));
+ return (37 + opj_bio_read(bio, 7));
}
/* ----------------------------------------------------------------------- */
}
bio = opj_bio_create();
- bio_init_enc(bio, c, length);
- bio_write(bio, 1, 1); /* Empty header bit */
+ opj_bio_init_enc(bio, c, length);
+ opj_bio_write(bio, 1, 1); /* Empty header bit */
/* Writing Packet header */
band = res->bands;
if (!cblk->numpasses) {
tgt_encode(bio, prc->incltree, cblkno, layno + 1);
} else {
- bio_write(bio, layer->numpasses != 0, 1);
+ opj_bio_write(bio, layer->numpasses != 0, 1);
}
/* if cblk not included, go to the next cblk */
len += pass->len;
if (pass->term || passno == (cblk->numpasses + layer->numpasses) - 1) {
- bio_write(bio, len, cblk->numlenbits + int_floorlog2(nump));
+ opj_bio_write(bio, len, cblk->numlenbits + int_floorlog2(nump));
len = 0;
nump = 0;
}
++band;
}
- if (bio_flush(bio)) {
+ if (!opj_bio_flush(bio)) {
opj_bio_destroy(bio);
return OPJ_FALSE; /* modified to eliminate longjmp !! */
}
- l_nb_bytes = bio_numbytes(bio);
+ l_nb_bytes = opj_bio_numbytes(bio);
c += l_nb_bytes;
length -= l_nb_bytes;
l_modified_length_ptr = &(l_remaining_length);
}
- bio_init_dec(l_bio, l_header_data,*l_modified_length_ptr);
+ opj_bio_init_dec(l_bio, l_header_data,*l_modified_length_ptr);
- l_present = bio_read(l_bio, 1);
+ l_present = opj_bio_read(l_bio, 1);
if (!l_present) {
- bio_inalign(l_bio);
- l_header_data += bio_numbytes(l_bio);
+ /* TODO MSD: no test to control the output of this function*/
+ opj_bio_inalign(l_bio);
+ l_header_data += opj_bio_numbytes(l_bio);
opj_bio_destroy(l_bio);
/* EPH markers */
/* else one bit */
}
else {
- l_included = bio_read(l_bio, 1);
+ l_included = opj_bio_read(l_bio, 1);
}
/* if cblk not included */
do {
l_cblk->segs[l_segno].numnewpasses = int_min(l_cblk->segs[l_segno].maxpasses - l_cblk->segs[l_segno].numpasses, n);
- l_cblk->segs[l_segno].newlen = bio_read(l_bio, l_cblk->numlenbits + uint_floorlog2(l_cblk->segs[l_segno].numnewpasses));
+ l_cblk->segs[l_segno].newlen = opj_bio_read(l_bio, l_cblk->numlenbits + uint_floorlog2(l_cblk->segs[l_segno].numnewpasses));
n -= l_cblk->segs[l_segno].numnewpasses;
if (n > 0) {
++l_band;
}
- if (bio_inalign(l_bio)) {
+ if (!opj_bio_inalign(l_bio)) {
opj_bio_destroy(l_bio);
return OPJ_FALSE;
}
- l_header_data += bio_numbytes(l_bio);
+ l_header_data += opj_bio_numbytes(l_bio);
opj_bio_destroy(l_bio);
/* EPH markers */