[trunk] WIP: fix some warnings about a static function and j2k_read_unk_v2
This commit is contained in:
parent
a600d8f4e2
commit
b8efd02c7f
1
CHANGES
1
CHANGES
|
@ -6,6 +6,7 @@ What's New for OpenJPEG
|
||||||
+ : added
|
+ : added
|
||||||
|
|
||||||
September 27, 2011
|
September 27, 2011
|
||||||
|
+ (mickael] WIP: fix some warnings about a static function and j2k_read_unk_v2
|
||||||
+ (mickael] WIP: add basis for a new output management of the codestream information and index
|
+ (mickael] WIP: add basis for a new output management of the codestream information and index
|
||||||
* [mickael] WIP: fix some warnings from j2k_dump and index.c
|
* [mickael] WIP: fix some warnings from j2k_dump and index.c
|
||||||
|
|
||||||
|
|
|
@ -686,6 +686,7 @@ static void j2k_add_tlmarker( int tileno, opj_codestream_info_t *cstr_info, unsi
|
||||||
*/
|
*/
|
||||||
static opj_bool j2k_read_unk_v2 ( opj_j2k_v2_t *p_j2k,
|
static opj_bool j2k_read_unk_v2 ( opj_j2k_v2_t *p_j2k,
|
||||||
struct opj_stream_private *p_stream,
|
struct opj_stream_private *p_stream,
|
||||||
|
OPJ_UINT32 *output_marker,
|
||||||
struct opj_event_mgr * p_manager );
|
struct opj_event_mgr * p_manager );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -3928,12 +3929,13 @@ static void j2k_read_unk(opj_j2k_t *j2k) {
|
||||||
*/
|
*/
|
||||||
opj_bool j2k_read_unk_v2 ( opj_j2k_v2_t *p_j2k,
|
opj_bool j2k_read_unk_v2 ( opj_j2k_v2_t *p_j2k,
|
||||||
struct opj_stream_private *p_stream,
|
struct opj_stream_private *p_stream,
|
||||||
|
OPJ_UINT32 *output_marker,
|
||||||
struct opj_event_mgr * p_manager
|
struct opj_event_mgr * p_manager
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
OPJ_BYTE l_data [2];
|
OPJ_UINT32 l_unknown_marker;
|
||||||
OPJ_UINT32 l_unknown_size, l_unknown_marker;
|
const opj_dec_memory_marker_handler_t * l_marker_handler;
|
||||||
const opj_dec_memory_marker_handler_t * l_marker_handler = 00;
|
OPJ_UINT32 l_size_unk = 2;
|
||||||
|
|
||||||
// preconditions
|
// preconditions
|
||||||
assert(p_j2k != 00);
|
assert(p_j2k != 00);
|
||||||
|
@ -3942,22 +3944,6 @@ opj_bool j2k_read_unk_v2 ( opj_j2k_v2_t *p_j2k,
|
||||||
|
|
||||||
opj_event_msg_v2(p_manager, EVT_WARNING, "Unknown marker\n");
|
opj_event_msg_v2(p_manager, EVT_WARNING, "Unknown marker\n");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* if (opj_stream_read_data(p_stream,l_data,2,p_manager) != 2) {
|
|
||||||
opj_event_msg_v2(p_manager, EVT_WARNING, "Unknown marker\n");
|
|
||||||
return OPJ_FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
opj_read_bytes(l_data,&l_unknown_size,2);
|
|
||||||
if (l_unknown_size < 2) {
|
|
||||||
return OPJ_FALSE;
|
|
||||||
}
|
|
||||||
l_unknown_size-=2;
|
|
||||||
|
|
||||||
if (opj_stream_skip(p_stream,l_unknown_size,p_manager) != l_unknown_size) {
|
|
||||||
return OPJ_FALSE;
|
|
||||||
}*/
|
|
||||||
while(1) {
|
while(1) {
|
||||||
// Try to read 2 bytes (the next marker ID) from stream and copy them into the buffer
|
// Try to read 2 bytes (the next marker ID) from stream and copy them into the buffer
|
||||||
if (opj_stream_read_data(p_stream,p_j2k->m_specific_param.m_decoder.m_header_data,2,p_manager) != 2) {
|
if (opj_stream_read_data(p_stream,p_j2k->m_specific_param.m_decoder.m_header_data,2,p_manager) != 2) {
|
||||||
|
@ -3978,12 +3964,22 @@ opj_bool j2k_read_unk_v2 ( opj_j2k_v2_t *p_j2k,
|
||||||
return OPJ_FALSE;
|
return OPJ_FALSE;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (l_marker_handler->id != J2K_MS_UNK)
|
if (l_marker_handler->id != J2K_MS_UNK) {
|
||||||
break; // next marker is known and well located
|
/* Add the marker to the codestream index*/
|
||||||
|
if (l_marker_handler->id != J2K_MS_SOT)
|
||||||
|
j2k_add_mhmarker_v2(p_j2k->cstr_index, J2K_MS_UNK,
|
||||||
|
(OPJ_UINT32) opj_stream_tell(p_stream) - l_size_unk,
|
||||||
|
l_size_unk);
|
||||||
|
break; /* next marker is known and well located */
|
||||||
|
}
|
||||||
|
else
|
||||||
|
l_size_unk += 2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
*output_marker = l_marker_handler->id ;
|
||||||
|
|
||||||
return OPJ_TRUE;
|
return OPJ_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5139,53 +5135,23 @@ opj_bool j2k_read_header_procedure( opj_j2k_v2_t *p_j2k,
|
||||||
/* Get the marker handler from the marker ID */
|
/* Get the marker handler from the marker ID */
|
||||||
l_marker_handler = j2k_get_marker_handler(l_current_marker);
|
l_marker_handler = j2k_get_marker_handler(l_current_marker);
|
||||||
|
|
||||||
/* Check if the marker is known and if it is the right place to find it */
|
|
||||||
if (! (p_j2k->m_specific_param.m_decoder.m_state & l_marker_handler->states) ) {
|
|
||||||
opj_event_msg_v2(p_manager, EVT_ERROR, "Marker is not compliant with its position\n");
|
|
||||||
return OPJ_FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Manage case where marker is unknown */
|
/* Manage case where marker is unknown */
|
||||||
if (l_marker_handler->id == J2K_MS_UNK) {
|
if (l_marker_handler->id == J2K_MS_UNK) {
|
||||||
OPJ_UINT32 l_size_unk = 2;
|
if (! j2k_read_unk_v2(p_j2k, p_stream, &l_current_marker, p_manager)){
|
||||||
opj_event_msg_v2(p_manager, EVT_WARNING, "Unknown marker\n");
|
opj_event_msg_v2(p_manager, EVT_ERROR, "Unknow marker have been detected and generated error.\n");
|
||||||
|
|
||||||
/* Try to detect the next valid marker */
|
|
||||||
while(1) {
|
|
||||||
/* Try to read 2 bytes (the next marker ID) from stream and copy them into the buffer */
|
|
||||||
if (opj_stream_read_data(p_stream,p_j2k->m_specific_param.m_decoder.m_header_data,2,p_manager) != 2) {
|
|
||||||
opj_event_msg_v2(p_manager, EVT_ERROR, "Stream too short\n");
|
|
||||||
return OPJ_FALSE;
|
return OPJ_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Read 2 bytes as the new marker ID */
|
|
||||||
opj_read_bytes(p_j2k->m_specific_param.m_decoder.m_header_data,&l_current_marker,2);
|
|
||||||
|
|
||||||
/* Check if the current marker ID is valid */
|
|
||||||
if ( !(l_current_marker < 0xff00) ) {
|
|
||||||
/* Get the marker handler from the marker ID */
|
|
||||||
l_marker_handler = j2k_get_marker_handler(l_current_marker);
|
|
||||||
|
|
||||||
if ( !(p_j2k->m_specific_param.m_decoder.m_state & l_marker_handler->states) ) {
|
|
||||||
opj_event_msg_v2(p_manager, EVT_ERROR, "Marker is not compliant with its position\n");
|
|
||||||
return OPJ_FALSE;
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
if (l_marker_handler->id != J2K_MS_UNK) {
|
|
||||||
/* Add the marker to the codestream index*/
|
|
||||||
j2k_add_mhmarker_v2(p_j2k->cstr_index, J2K_MS_UNK,
|
|
||||||
(OPJ_UINT32) opj_stream_tell(p_stream) - l_size_unk,
|
|
||||||
l_size_unk);
|
|
||||||
break; /* next marker is known and well located */
|
|
||||||
}
|
|
||||||
else
|
|
||||||
l_size_unk += 2;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (l_current_marker == J2K_MS_SOT)
|
if (l_current_marker == J2K_MS_SOT)
|
||||||
break; /* SOT marker is detected main header is completely read */
|
break; /* SOT marker is detected main header is completely read */
|
||||||
|
else /* Get the marker handler from the marker ID */
|
||||||
|
l_marker_handler = j2k_get_marker_handler(l_current_marker);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Check if the marker is known and if it is the right place to find it */
|
||||||
|
if (! (p_j2k->m_specific_param.m_decoder.m_state & l_marker_handler->states) ) {
|
||||||
|
opj_event_msg_v2(p_manager, EVT_ERROR, "Marker is not compliant with its position\n");
|
||||||
|
return OPJ_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Try to read 2 bytes (the marker size) from stream and copy them into the buffer */
|
/* Try to read 2 bytes (the marker size) from stream and copy them into the buffer */
|
||||||
|
|
|
@ -315,6 +315,21 @@ static void t1_decode_cblk(
|
||||||
int roishift,
|
int roishift,
|
||||||
int cblksty);
|
int cblksty);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Decode 1 code-block
|
||||||
|
@param t1 T1 handle
|
||||||
|
@param cblk Code-block coding parameters
|
||||||
|
@param orient
|
||||||
|
@param roishift Region of interest shifting value
|
||||||
|
@param cblksty Code-block style
|
||||||
|
*/
|
||||||
|
static void t1_decode_cblk_v2(
|
||||||
|
opj_t1_t *t1,
|
||||||
|
opj_tcd_cblk_dec_v2_t* cblk,
|
||||||
|
OPJ_UINT32 orient,
|
||||||
|
OPJ_UINT32 roishift,
|
||||||
|
OPJ_UINT32 cblksty);
|
||||||
|
|
||||||
/*@}*/
|
/*@}*/
|
||||||
|
|
||||||
/*@}*/
|
/*@}*/
|
||||||
|
|
|
@ -146,20 +146,7 @@ void t1_decode_cblks_v2(
|
||||||
opj_tcd_tilecomp_v2_t* tilec,
|
opj_tcd_tilecomp_v2_t* tilec,
|
||||||
opj_tccp_t* tccp);
|
opj_tccp_t* tccp);
|
||||||
|
|
||||||
/**
|
|
||||||
Decode 1 code-block
|
|
||||||
@param t1 T1 handle
|
|
||||||
@param cblk Code-block coding parameters
|
|
||||||
@param orient
|
|
||||||
@param roishift Region of interest shifting value
|
|
||||||
@param cblksty Code-block style
|
|
||||||
*/
|
|
||||||
static void t1_decode_cblk_v2(
|
|
||||||
opj_t1_t *t1,
|
|
||||||
opj_tcd_cblk_dec_v2_t* cblk,
|
|
||||||
OPJ_UINT32 orient,
|
|
||||||
OPJ_UINT32 roishift,
|
|
||||||
OPJ_UINT32 cblksty);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a new Tier 1 handle
|
* Creates a new Tier 1 handle
|
||||||
|
|
Loading…
Reference in New Issue