summaryrefslogtreecommitdiff
path: root/libopenjpeg/jpt.c
diff options
context:
space:
mode:
authorAntonin Descampe <antonin@gmail.com>2005-12-02 13:34:15 +0000
committerAntonin Descampe <antonin@gmail.com>2005-12-02 13:34:15 +0000
commitf61cda9b7d83e0202cbaa15bac45d358e9b3652e (patch)
tree2acfa84c798e60d15107f2399a8856be4f5a3806 /libopenjpeg/jpt.c
parent76016d509bf892b555840a1bfa3b62750c878051 (diff)
openjpeg version 1.0 (previous version still available with tag opj0-97)
Diffstat (limited to 'libopenjpeg/jpt.c')
-rw-r--r--libopenjpeg/jpt.c98
1 files changed, 45 insertions, 53 deletions
diff --git a/libopenjpeg/jpt.c b/libopenjpeg/jpt.c
index 1d4713dc..08323e13 100644
--- a/libopenjpeg/jpt.c
+++ b/libopenjpeg/jpt.c
@@ -1,6 +1,7 @@
/*
* Copyright (c) 2004, Yannick Verschueren
- * Copyright (c) 2004, Communications and remote sensing Laboratory, Universite catholique de Louvain, Belgium
+ * Copyright (c) 2005, HervŽ Drolon, FreeImage Team
+ * Copyright (c) 2002-2005, Communications and remote sensing Laboratory, Universite catholique de Louvain, Belgium
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -25,28 +26,22 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "jpt.h"
-#include "j2k.h"
-#include "cio.h"
+#include "opj_includes.h"
/*
* Read the information contains in VBAS [JPP/JPT stream message header]
* Store information (7 bits) in value
*
*/
-unsigned int jpt_read_VBAS_info(unsigned int value)
-{
+unsigned int jpt_read_VBAS_info(opj_cio_t *cio, unsigned int value) {
unsigned char elmt;
- elmt = cio_read(1);
+ elmt = cio_read(cio, 1);
while ((elmt >> 7) == 1) {
value = (value << 7);
value |= (elmt & 0x7f);
- elmt = cio_read(1);
+ elmt = cio_read(cio, 1);
}
value = (value << 7);
value |= (elmt & 0x7f);
@@ -58,15 +53,14 @@ unsigned int jpt_read_VBAS_info(unsigned int value)
* Initialize the value of the message header structure
*
*/
-void jpt_init_Msg_Header(jpt_msg_header_struct_t * header)
-{
- header->Id = 0; /* In-class Identifier */
- header->last_byte = 0; /* Last byte information */
- header->Class_Id = 0; /* Class Identifier */
- header->CSn_Id = 0; /* CSn : index identifier */
- header->Msg_offset = 0; /* Message offset */
- header->Msg_length = 0; /* Message length */
- header->Layer_nb = 0; /* Auxiliary for JPP case */
+void jpt_init_msg_header(opj_jpt_msg_header_t * header) {
+ header->Id = 0; /* In-class Identifier */
+ header->last_byte = 0; /* Last byte information */
+ header->Class_Id = 0; /* Class Identifier */
+ header->CSn_Id = 0; /* CSn : index identifier */
+ header->Msg_offset = 0; /* Message offset */
+ header->Msg_length = 0; /* Message length */
+ header->Layer_nb = 0; /* Auxiliary for JPP case */
}
/*
@@ -75,47 +69,45 @@ void jpt_init_Msg_Header(jpt_msg_header_struct_t * header)
* Only parameters always present in message header
*
*/
-void jpt_reinit_Msg_Header(jpt_msg_header_struct_t * header)
-{
- header->Id = 0; /* In-class Identifier */
- header->last_byte = 0; /* Last byte information */
- header->Msg_offset = 0; /* Message offset */
- header->Msg_length = 0; /* Message length */
+void jpt_reinit_msg_header(opj_jpt_msg_header_t * header) {
+ header->Id = 0; /* In-class Identifier */
+ header->last_byte = 0; /* Last byte information */
+ header->Msg_offset = 0; /* Message offset */
+ header->Msg_length = 0; /* Message length */
}
/*
* Read the message header for a JPP/JPT - stream
*
*/
-void jpt_read_Msg_Header(jpt_msg_header_struct_t * header)
-{
+void jpt_read_msg_header(opj_common_ptr cinfo, opj_cio_t *cio, opj_jpt_msg_header_t *header) {
unsigned char elmt, Class = 0, CSn = 0;
- jpt_reinit_Msg_Header(header);
+ jpt_reinit_msg_header(header);
/* ------------- */
/* VBAS : Bin-ID */
/* ------------- */
- elmt = cio_read(1);
+ elmt = cio_read(cio, 1);
/* See for Class and CSn */
switch ((elmt >> 5) & 0x03) {
- case 0:
- fprintf(stderr, "Forbidden value encounter in message header !!\n");
- break;
- case 1:
- Class = 0;
- CSn = 0;
- break;
- case 2:
- Class = 1;
- CSn = 0;
- break;
- case 3:
- Class = 1;
- CSn = 1;
- break;
- default:
- break;
+ case 0:
+ opg_event_msg(cinfo, EVT_ERROR, "Forbidden value encounter in message header !!\n");
+ break;
+ case 1:
+ Class = 0;
+ CSn = 0;
+ break;
+ case 2:
+ Class = 1;
+ CSn = 0;
+ break;
+ case 3:
+ Class = 1;
+ CSn = 1;
+ break;
+ default:
+ break;
}
/* see information on bits 'c' [p 10 : A.2.1 general, ISO/IEC FCD 15444-9] */
@@ -125,14 +117,14 @@ void jpt_read_Msg_Header(jpt_msg_header_struct_t * header)
/* In-class identifier */
header->Id |= (elmt & 0x0f);
if ((elmt >> 7) == 1)
- header->Id = jpt_read_VBAS_info(header->Id);
+ header->Id = jpt_read_VBAS_info(cio, header->Id);
/* ------------ */
/* VBAS : Class */
/* ------------ */
if (Class == 1) {
header->Class_Id = 0;
- header->Class_Id = jpt_read_VBAS_info(header->Class_Id);
+ header->Class_Id = jpt_read_VBAS_info(cio, header->Class_Id);
}
/* ---------- */
@@ -140,24 +132,24 @@ void jpt_read_Msg_Header(jpt_msg_header_struct_t * header)
/* ---------- */
if (CSn == 1) {
header->CSn_Id = 0;
- header->CSn_Id = jpt_read_VBAS_info(header->CSn_Id);
+ header->CSn_Id = jpt_read_VBAS_info(cio, header->CSn_Id);
}
/* ----------------- */
/* VBAS : Msg_offset */
/* ----------------- */
- header->Msg_offset = jpt_read_VBAS_info(header->Msg_offset);
+ header->Msg_offset = jpt_read_VBAS_info(cio, header->Msg_offset);
/* ----------------- */
/* VBAS : Msg_length */
/* ----------------- */
- header->Msg_length = jpt_read_VBAS_info(header->Msg_length);
+ header->Msg_length = jpt_read_VBAS_info(cio, header->Msg_length);
/* ---------- */
/* VBAS : Aux */
/* ---------- */
if ((header->Class_Id & 0x01) == 1) {
header->Layer_nb = 0;
- header->Layer_nb = jpt_read_VBAS_info(header->Layer_nb);
+ header->Layer_nb = jpt_read_VBAS_info(cio, header->Layer_nb);
}
}