diff options
| author | Mathieu Malaterre <mathieu.malaterre@gmail.com> | 2012-10-25 07:39:59 +0000 |
|---|---|---|
| committer | Mathieu Malaterre <mathieu.malaterre@gmail.com> | 2012-10-25 07:39:59 +0000 |
| commit | f3d7d2f7b1b0cf41c10c48eaecdab6707780e7f1 (patch) | |
| tree | 8549b6bde309d055f69ae05f79903159d8196a96 /src/lib | |
| parent | 0358983ee649c8ff8cdf690ec6724559bb8f2b00 (diff) | |
[trunk] Rework r2077
r2077 did expose too much of the detail implementation of OpenJPEG. Rework dependencies in between JPIP file level details and JPIP client/server arch.
Move JPIP file level functionalities back into OpenJP2 as was the case in openjpeg 1.5.x. Use new cio func.
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/openjp2/CMakeLists.txt | 12 | ||||
| -rw-r--r-- | src/lib/openjp2/cidx_manager.c (renamed from src/lib/openjpip/cidx_manager.c) | 0 | ||||
| -rw-r--r-- | src/lib/openjp2/cidx_manager.h (renamed from src/lib/openjpip/cidx_manager.h) | 0 | ||||
| -rw-r--r-- | src/lib/openjp2/cio.c | 50 | ||||
| -rw-r--r-- | src/lib/openjp2/cio.h | 28 | ||||
| -rw-r--r-- | src/lib/openjp2/event.c | 4 | ||||
| -rw-r--r-- | src/lib/openjp2/event.h | 4 | ||||
| -rw-r--r-- | src/lib/openjp2/function_list.c | 8 | ||||
| -rw-r--r-- | src/lib/openjp2/function_list.h | 10 | ||||
| -rw-r--r-- | src/lib/openjp2/indexbox_manager.h (renamed from src/lib/openjpip/indexbox_manager.h) | 0 | ||||
| -rw-r--r-- | src/lib/openjp2/j2k.c | 4 | ||||
| -rw-r--r-- | src/lib/openjp2/j2k.h | 4 | ||||
| -rw-r--r-- | src/lib/openjp2/jp2.c | 14 | ||||
| -rw-r--r-- | src/lib/openjp2/jp2.h | 14 | ||||
| -rw-r--r-- | src/lib/openjp2/openjpeg.h | 8 | ||||
| -rw-r--r-- | src/lib/openjp2/phix_manager.c (renamed from src/lib/openjpip/phix_manager.c) | 0 | ||||
| -rw-r--r-- | src/lib/openjp2/ppix_manager.c (renamed from src/lib/openjpip/ppix_manager.c) | 0 | ||||
| -rw-r--r-- | src/lib/openjp2/thix_manager.c (renamed from src/lib/openjpip/thix_manager.c) | 0 | ||||
| -rw-r--r-- | src/lib/openjp2/tpix_manager.c (renamed from src/lib/openjpip/tpix_manager.c) | 0 | ||||
| -rw-r--r-- | src/lib/openjpip/CMakeLists.txt | 5 | ||||
| -rw-r--r-- | src/lib/openjpip/openjpip.c | 756 | ||||
| -rw-r--r-- | src/lib/openjpip/openjpip.h | 28 |
22 files changed, 111 insertions, 838 deletions
diff --git a/src/lib/openjp2/CMakeLists.txt b/src/lib/openjp2/CMakeLists.txt index ed8f681c..d1e08cf6 100644 --- a/src/lib/openjp2/CMakeLists.txt +++ b/src/lib/openjp2/CMakeLists.txt @@ -7,7 +7,6 @@ install( FILES ${CMAKE_CURRENT_BINARY_DIR}/opj_config.h include_directories( ${OPENJPEG_BINARY_DIR}/src/lib/openjp2 # opj_config.h ) - # Defines the source code for the library set(OPENJPEG_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/bio.c @@ -31,6 +30,17 @@ set(OPENJPEG_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/tgt.c ${CMAKE_CURRENT_SOURCE_DIR}/function_list.c ) +if(BUILD_JPIP) + add_definitions(-DUSE_JPIP) + set(OPENJPEG_SRCS + ${OPENJPEG_SRCS} + ${CMAKE_CURRENT_SOURCE_DIR}/cidx_manager.c + ${CMAKE_CURRENT_SOURCE_DIR}/phix_manager.c + ${CMAKE_CURRENT_SOURCE_DIR}/ppix_manager.c + ${CMAKE_CURRENT_SOURCE_DIR}/thix_manager.c + ${CMAKE_CURRENT_SOURCE_DIR}/tpix_manager.c + ) +endif() # Build the library if(WIN32) diff --git a/src/lib/openjpip/cidx_manager.c b/src/lib/openjp2/cidx_manager.c index 0c6c669e..0c6c669e 100644 --- a/src/lib/openjpip/cidx_manager.c +++ b/src/lib/openjp2/cidx_manager.c diff --git a/src/lib/openjpip/cidx_manager.h b/src/lib/openjp2/cidx_manager.h index 17925505..17925505 100644 --- a/src/lib/openjpip/cidx_manager.h +++ b/src/lib/openjp2/cidx_manager.h diff --git a/src/lib/openjp2/cio.c b/src/lib/openjp2/cio.c index 5b2edd49..553809cc 100644 --- a/src/lib/openjp2/cio.c +++ b/src/lib/openjp2/cio.c @@ -33,7 +33,7 @@ /* ----------------------------------------------------------------------- */ -opj_cio_t* OPJ_CALLCONV opj_cio_open(opj_common_ptr cinfo, unsigned char *buffer, int length) { +opj_cio_t* opj_cio_open(opj_common_ptr cinfo, unsigned char *buffer, int length) { opj_cp_t *cp = NULL; opj_cio_t *cio = (opj_cio_t*)opj_malloc(sizeof(opj_cio_t)); if(!cio) return NULL; @@ -80,7 +80,7 @@ opj_cio_t* OPJ_CALLCONV opj_cio_open(opj_common_ptr cinfo, unsigned char *buffer return cio; } -void OPJ_CALLCONV opj_cio_close(opj_cio_t *cio) { +void opj_cio_close(opj_cio_t *cio) { if(cio) { if(cio->openmode == OPJ_STREAM_WRITE) { /* destroy the allocated buffer */ @@ -96,7 +96,7 @@ void OPJ_CALLCONV opj_cio_close(opj_cio_t *cio) { /* * Get position in byte stream. */ -OPJ_OFF_T OPJ_CALLCONV cio_tell(opj_cio_t *cio) { +OPJ_OFF_T cio_tell(opj_cio_t *cio) { return cio->bp - cio->start; } @@ -105,7 +105,7 @@ OPJ_OFF_T OPJ_CALLCONV cio_tell(opj_cio_t *cio) { * * pos : position, in number of bytes, from the beginning of the stream */ -void OPJ_CALLCONV cio_seek(opj_cio_t *cio, int pos) { +void cio_seek(opj_cio_t *cio, int pos) { cio->bp = cio->start + pos; } @@ -154,7 +154,7 @@ unsigned char cio_bytein(opj_cio_t *cio) { * v : value to write * n : number of bytes to write */ -unsigned int OPJ_CALLCONV cio_write(opj_cio_t *cio, unsigned long long int v, int n) { +unsigned int cio_write(opj_cio_t *cio, unsigned long long int v, int n) { int i; for (i = n - 1; i >= 0; i--) { if( !cio_byteout(cio, (unsigned char) ((v >> (i << 3)) & 0xff)) ) @@ -171,7 +171,7 @@ unsigned int OPJ_CALLCONV cio_write(opj_cio_t *cio, unsigned long long int v, in * * return : value of the n bytes read */ -unsigned int OPJ_CALLCONV cio_read(opj_cio_t *cio, int n) { +unsigned int cio_read(opj_cio_t *cio, int n) { int i; unsigned int v = 0; for (i = n - 1; i >= 0; i--) { @@ -186,13 +186,13 @@ unsigned int OPJ_CALLCONV cio_read(opj_cio_t *cio, int n) { * * n : number of bytes to skip */ -void OPJ_CALLCONV cio_skip(opj_cio_t *cio, int n) { +void cio_skip(opj_cio_t *cio, int n) { cio->bp += n; } /* ----------------------------------------------------------------------- */ -void OPJ_CALLCONV opj_write_bytes_BE (OPJ_BYTE * p_buffer, OPJ_UINT32 p_value, OPJ_UINT32 p_nb_bytes) +void opj_write_bytes_BE (OPJ_BYTE * p_buffer, OPJ_UINT32 p_value, OPJ_UINT32 p_nb_bytes) { const OPJ_BYTE * l_data_ptr = ((const OPJ_BYTE *) &p_value) + p_nb_bytes; @@ -201,7 +201,7 @@ void OPJ_CALLCONV opj_write_bytes_BE (OPJ_BYTE * p_buffer, OPJ_UINT32 p_value, O memcpy(p_buffer,l_data_ptr,p_nb_bytes); } -void OPJ_CALLCONV opj_write_bytes_LE (OPJ_BYTE * p_buffer, OPJ_UINT32 p_value, OPJ_UINT32 p_nb_bytes) +void opj_write_bytes_LE (OPJ_BYTE * p_buffer, OPJ_UINT32 p_value, OPJ_UINT32 p_nb_bytes) { const OPJ_BYTE * l_data_ptr = ((const OPJ_BYTE *) &p_value) + p_nb_bytes - 1; OPJ_UINT32 i; @@ -213,7 +213,7 @@ void OPJ_CALLCONV opj_write_bytes_LE (OPJ_BYTE * p_buffer, OPJ_UINT32 p_value, O } } -void OPJ_CALLCONV opj_read_bytes_BE(const OPJ_BYTE * p_buffer, OPJ_UINT32 * p_value, OPJ_UINT32 p_nb_bytes) +void opj_read_bytes_BE(const OPJ_BYTE * p_buffer, OPJ_UINT32 * p_value, OPJ_UINT32 p_nb_bytes) { OPJ_BYTE * l_data_ptr = ((OPJ_BYTE *) p_value); @@ -223,7 +223,7 @@ void OPJ_CALLCONV opj_read_bytes_BE(const OPJ_BYTE * p_buffer, OPJ_UINT32 * p_va memcpy(l_data_ptr+4-p_nb_bytes,p_buffer,p_nb_bytes); } -void OPJ_CALLCONV opj_read_bytes_LE(const OPJ_BYTE * p_buffer, OPJ_UINT32 * p_value, OPJ_UINT32 p_nb_bytes) +void opj_read_bytes_LE(const OPJ_BYTE * p_buffer, OPJ_UINT32 * p_value, OPJ_UINT32 p_nb_bytes) { OPJ_BYTE * l_data_ptr = ((OPJ_BYTE *) p_value) + p_nb_bytes-1; OPJ_UINT32 i; @@ -242,7 +242,7 @@ void opj_write_double_BE(OPJ_BYTE * p_buffer, OPJ_FLOAT64 p_value) memcpy(p_buffer,l_data_ptr,sizeof(OPJ_FLOAT64)); } -void OPJ_CALLCONV opj_write_double_LE(OPJ_BYTE * p_buffer, OPJ_FLOAT64 p_value) +void opj_write_double_LE(OPJ_BYTE * p_buffer, OPJ_FLOAT64 p_value) { const OPJ_BYTE * l_data_ptr = ((const OPJ_BYTE *) &p_value) + sizeof(OPJ_FLOAT64) - 1; OPJ_UINT32 i; @@ -338,7 +338,7 @@ opj_stream_t* OPJ_CALLCONV opj_stream_default_create(opj_bool l_is_input) return opj_stream_create(J2K_STREAM_CHUNK_SIZE,l_is_input); } -OPJ_API void OPJ_CALLCONV opj_stream_destroy(opj_stream_t* p_stream) +void OPJ_CALLCONV opj_stream_destroy(opj_stream_t* p_stream) { opj_stream_private_t* l_stream = (opj_stream_private_t*) p_stream; @@ -349,7 +349,7 @@ OPJ_API void OPJ_CALLCONV opj_stream_destroy(opj_stream_t* p_stream) } } -OPJ_API void OPJ_CALLCONV opj_stream_set_read_function(opj_stream_t* p_stream, opj_stream_read_fn p_function) +void OPJ_CALLCONV opj_stream_set_read_function(opj_stream_t* p_stream, opj_stream_read_fn p_function) { opj_stream_private_t* l_stream = (opj_stream_private_t*) p_stream; @@ -360,7 +360,7 @@ OPJ_API void OPJ_CALLCONV opj_stream_set_read_function(opj_stream_t* p_stream, o l_stream->m_read_fn = p_function; } -OPJ_API void OPJ_CALLCONV opj_stream_set_seek_function(opj_stream_t* p_stream, opj_stream_seek_fn p_function) +void OPJ_CALLCONV opj_stream_set_seek_function(opj_stream_t* p_stream, opj_stream_seek_fn p_function) { opj_stream_private_t* l_stream = (opj_stream_private_t*) p_stream; @@ -370,7 +370,7 @@ OPJ_API void OPJ_CALLCONV opj_stream_set_seek_function(opj_stream_t* p_stream, o l_stream->m_seek_fn = p_function; } -OPJ_API void OPJ_CALLCONV opj_stream_set_write_function(opj_stream_t* p_stream, opj_stream_write_fn p_function) +void OPJ_CALLCONV opj_stream_set_write_function(opj_stream_t* p_stream, opj_stream_write_fn p_function) { opj_stream_private_t* l_stream = (opj_stream_private_t*) p_stream; @@ -381,7 +381,7 @@ OPJ_API void OPJ_CALLCONV opj_stream_set_write_function(opj_stream_t* p_stream, l_stream->m_write_fn = p_function; } -OPJ_API void OPJ_CALLCONV opj_stream_set_skip_function(opj_stream_t* p_stream, opj_stream_skip_fn p_function) +void OPJ_CALLCONV opj_stream_set_skip_function(opj_stream_t* p_stream, opj_stream_skip_fn p_function) { opj_stream_private_t* l_stream = (opj_stream_private_t*) p_stream; @@ -392,19 +392,19 @@ OPJ_API void OPJ_CALLCONV opj_stream_set_skip_function(opj_stream_t* p_stream, o l_stream->m_skip_fn = p_function; } -OPJ_API void OPJ_CALLCONV opj_stream_set_user_data(opj_stream_t* p_stream, void * p_data) +void OPJ_CALLCONV opj_stream_set_user_data(opj_stream_t* p_stream, void * p_data) { opj_stream_private_t* l_stream = (opj_stream_private_t*) p_stream; l_stream->m_user_data = p_data; } -OPJ_API void OPJ_CALLCONV opj_stream_set_user_data_length(opj_stream_t* p_stream, OPJ_UINT64 data_length) +void OPJ_CALLCONV opj_stream_set_user_data_length(opj_stream_t* p_stream, OPJ_UINT64 data_length) { opj_stream_private_t* l_stream = (opj_stream_private_t*) p_stream; l_stream->m_user_data_length = data_length; } -OPJ_SIZE_T OPJ_CALLCONV opj_stream_read_data (opj_stream_private_t * p_stream,OPJ_BYTE * p_buffer, OPJ_SIZE_T p_size, opj_event_mgr_t * p_event_mgr) +OPJ_SIZE_T opj_stream_read_data (opj_stream_private_t * p_stream,OPJ_BYTE * p_buffer, OPJ_SIZE_T p_size, opj_event_mgr_t * p_event_mgr) { OPJ_SIZE_T l_read_nb_bytes = 0; if (p_stream->m_bytes_in_buffer >= p_size) { @@ -511,7 +511,7 @@ OPJ_SIZE_T OPJ_CALLCONV opj_stream_read_data (opj_stream_private_t * p_stream,OP } } -OPJ_SIZE_T OPJ_CALLCONV opj_stream_write_data (opj_stream_private_t * p_stream, +OPJ_SIZE_T opj_stream_write_data (opj_stream_private_t * p_stream, const OPJ_BYTE * p_buffer, OPJ_SIZE_T p_size, opj_event_mgr_t * p_event_mgr) @@ -683,7 +683,7 @@ OPJ_OFF_T opj_stream_write_skip (opj_stream_private_t * p_stream, OPJ_OFF_T p_si return l_skip_nb_bytes; } -OPJ_OFF_T OPJ_CALLCONV opj_stream_tell (const opj_stream_private_t * p_stream) +OPJ_OFF_T opj_stream_tell (const opj_stream_private_t * p_stream) { return p_stream->m_byte_offset; } @@ -697,7 +697,7 @@ OPJ_OFF_T opj_stream_get_number_byte_left (const opj_stream_private_t * p_stream 0; } -OPJ_OFF_T OPJ_CALLCONV opj_stream_skip (opj_stream_private_t * p_stream, OPJ_OFF_T p_size, opj_event_mgr_t * p_event_mgr) +OPJ_OFF_T opj_stream_skip (opj_stream_private_t * p_stream, OPJ_OFF_T p_size, opj_event_mgr_t * p_event_mgr) { assert(p_size >= 0); return p_stream->m_opj_skip(p_stream,p_size,p_event_mgr); @@ -744,13 +744,13 @@ opj_bool opj_stream_write_seek (opj_stream_private_t * p_stream, OPJ_OFF_T p_siz return OPJ_TRUE; } -opj_bool OPJ_CALLCONV opj_stream_seek (opj_stream_private_t * p_stream, OPJ_OFF_T p_size, struct opj_event_mgr * p_event_mgr) +opj_bool opj_stream_seek (opj_stream_private_t * p_stream, OPJ_OFF_T p_size, struct opj_event_mgr * p_event_mgr) { assert(p_size >= 0); return p_stream->m_opj_seek(p_stream,p_size,p_event_mgr); } -opj_bool OPJ_CALLCONV opj_stream_has_seek (const opj_stream_private_t * p_stream) +opj_bool opj_stream_has_seek (const opj_stream_private_t * p_stream) { return p_stream->m_seek_fn != opj_stream_default_seek; } diff --git a/src/lib/openjp2/cio.h b/src/lib/openjp2/cio.h index 08063d1d..f5c4a862 100644 --- a/src/lib/openjp2/cio.h +++ b/src/lib/openjp2/cio.h @@ -71,20 +71,20 @@ Write some bytes @param n Number of bytes to write @return Returns the number of bytes written or 0 if an error occured */ -OPJ_API unsigned int OPJ_CALLCONV cio_write(opj_cio_t *cio, unsigned long long int v, int n); +unsigned int cio_write(opj_cio_t *cio, unsigned long long int v, int n); /** Read some bytes @param cio CIO handle @param n Number of bytes to read @return Returns the value of the n bytes read */ -OPJ_API unsigned int OPJ_CALLCONV cio_read(opj_cio_t *cio, int n); +unsigned int cio_read(opj_cio_t *cio, int n); /** Skip some bytes @param cio CIO handle @param n Number of bytes to skip */ -OPJ_API void OPJ_CALLCONV cio_skip(opj_cio_t *cio, int n); +void cio_skip(opj_cio_t *cio, int n); /* ----------------------------------------------------------------------- */ /*@}*/ @@ -206,7 +206,7 @@ opj_stream_private_t; * @param p_value the value to write * @param p_nb_bytes the number of bytes to write */ -OPJ_API void OPJ_CALLCONV opj_write_bytes_BE (OPJ_BYTE * p_buffer, OPJ_UINT32 p_value, OPJ_UINT32 p_nb_bytes); +void opj_write_bytes_BE (OPJ_BYTE * p_buffer, OPJ_UINT32 p_value, OPJ_UINT32 p_nb_bytes); /** * Reads some bytes from the given data buffer, this function is used in Big Endian cpus. @@ -215,7 +215,7 @@ OPJ_API void OPJ_CALLCONV opj_write_bytes_BE (OPJ_BYTE * p_buffer, OPJ_UINT32 p_ * @param p_nb_bytes the nb bytes to read. * @return the number of bytes read or -1 if an error occured. */ -OPJ_API void OPJ_CALLCONV opj_read_bytes_BE(const OPJ_BYTE * p_buffer, OPJ_UINT32 * p_value, OPJ_UINT32 p_nb_bytes); +void opj_read_bytes_BE(const OPJ_BYTE * p_buffer, OPJ_UINT32 * p_value, OPJ_UINT32 p_nb_bytes); /** * Write some bytes to the given data buffer, this function is used in Little Endian cpus. @@ -224,7 +224,7 @@ OPJ_API void OPJ_CALLCONV opj_read_bytes_BE(const OPJ_BYTE * p_buffer, OPJ_UINT3 * @param p_nb_bytes the number of bytes to write * @return the number of bytes written or -1 if an error occured */ -OPJ_API void OPJ_CALLCONV opj_write_bytes_LE (OPJ_BYTE * p_buffer, OPJ_UINT32 p_value, OPJ_UINT32 p_nb_bytes); +void opj_write_bytes_LE (OPJ_BYTE * p_buffer, OPJ_UINT32 p_value, OPJ_UINT32 p_nb_bytes); /** * Reads some bytes from the given data buffer, this function is used in Little Endian cpus. @@ -233,7 +233,7 @@ OPJ_API void OPJ_CALLCONV opj_write_bytes_LE (OPJ_BYTE * p_buffer, OPJ_UINT32 p_ * @param p_nb_bytes the nb bytes to read. * @return the number of bytes read or -1 if an error occured. */ -OPJ_API void OPJ_CALLCONV opj_read_bytes_LE(const OPJ_BYTE * p_buffer, OPJ_UINT32 * p_value, OPJ_UINT32 p_nb_bytes); +void opj_read_bytes_LE(const OPJ_BYTE * p_buffer, OPJ_UINT32 * p_value, OPJ_UINT32 p_nb_bytes); /** @@ -241,7 +241,7 @@ OPJ_API void OPJ_CALLCONV opj_read_bytes_LE(const OPJ_BYTE * p_buffer, OPJ_UINT3 * @param p_buffer pointer the data buffer to write data to. * @param p_value the value to write */ -OPJ_API void OPJ_CALLCONV opj_write_double_LE(OPJ_BYTE * p_buffer, OPJ_FLOAT64 p_value); +void opj_write_double_LE(OPJ_BYTE * p_buffer, OPJ_FLOAT64 p_value); /*** * Write some bytes to the given data buffer, this function is used in Big Endian cpus. @@ -300,7 +300,7 @@ void opj_write_float_BE(OPJ_BYTE * p_buffer, OPJ_FLOAT32 p_value); * @param p_event_mgr the user event manager to be notified of special events. * @return the number of bytes read, or -1 if an error occured or if the stream is at the end. */ -OPJ_API OPJ_SIZE_T OPJ_CALLCONV opj_stream_read_data (opj_stream_private_t * p_stream,OPJ_BYTE * p_buffer, OPJ_SIZE_T p_size, struct opj_event_mgr * p_event_mgr); +OPJ_SIZE_T opj_stream_read_data (opj_stream_private_t * p_stream,OPJ_BYTE * p_buffer, OPJ_SIZE_T p_size, struct opj_event_mgr * p_event_mgr); /** * Writes some bytes to the stream. @@ -310,7 +310,7 @@ OPJ_API OPJ_SIZE_T OPJ_CALLCONV opj_stream_read_data (opj_stream_private_t * p_s * @param p_event_mgr the user event manager to be notified of special events. * @return the number of bytes writtent, or -1 if an error occured. */ -OPJ_API OPJ_SIZE_T OPJ_CALLCONV opj_stream_write_data (opj_stream_private_t * p_stream,const OPJ_BYTE * p_buffer, OPJ_SIZE_T p_size, struct opj_event_mgr * p_event_mgr); +OPJ_SIZE_T opj_stream_write_data (opj_stream_private_t * p_stream,const OPJ_BYTE * p_buffer, OPJ_SIZE_T p_size, struct opj_event_mgr * p_event_mgr); /** * Writes the content of the stream buffer to the stream. @@ -327,7 +327,7 @@ opj_bool opj_stream_flush (opj_stream_private_t * p_stream, struct opj_event_mgr * @param p_event_mgr the user event manager to be notified of special events. * @return the number of bytes skipped, or -1 if an error occured. */ -OPJ_API OPJ_OFF_T OPJ_CALLCONV opj_stream_skip (opj_stream_private_t * p_stream,OPJ_OFF_T p_size, struct opj_event_mgr * p_event_mgr); +OPJ_OFF_T opj_stream_skip (opj_stream_private_t * p_stream,OPJ_OFF_T p_size, struct opj_event_mgr * p_event_mgr); /** * Tells the byte offset on the stream (similar to ftell). @@ -336,7 +336,7 @@ OPJ_API OPJ_OFF_T OPJ_CALLCONV opj_stream_skip (opj_stream_private_t * p_stream, * * @return the current position o fthe stream. */ -OPJ_API OPJ_OFF_T OPJ_CALLCONV opj_stream_tell (const opj_stream_private_t * p_stream); +OPJ_OFF_T opj_stream_tell (const opj_stream_private_t * p_stream); /** @@ -391,12 +391,12 @@ opj_bool opj_stream_write_seek (opj_stream_private_t * p_stream, OPJ_OFF_T p_siz * @param p_event_mgr the user event manager to be notified of special events. * @return true if the stream is seekable. */ -OPJ_API opj_bool OPJ_CALLCONV opj_stream_seek (opj_stream_private_t * p_stream, OPJ_OFF_T p_size, struct opj_event_mgr * p_event_mgr); +opj_bool opj_stream_seek (opj_stream_private_t * p_stream, OPJ_OFF_T p_size, struct opj_event_mgr * p_event_mgr); /** * Tells if the given stream is seekable. */ -OPJ_API opj_bool OPJ_CALLCONV opj_stream_has_seek (const opj_stream_private_t * p_stream); +opj_bool opj_stream_has_seek (const opj_stream_private_t * p_stream); OPJ_SIZE_T opj_stream_default_read (void * p_buffer, OPJ_SIZE_T p_nb_bytes, void * p_user_data); OPJ_SIZE_T opj_stream_default_write (void * p_buffer, OPJ_SIZE_T p_nb_bytes, void * p_user_data); diff --git a/src/lib/openjp2/event.c b/src/lib/openjp2/event.c index cfc68c19..fa505619 100644 --- a/src/lib/openjp2/event.c +++ b/src/lib/openjp2/event.c @@ -117,7 +117,7 @@ opj_bool opj_event_msg(opj_common_ptr cinfo, int event_type, const char *fmt, .. } /* ----------------------------------------------------------------------- */ -opj_bool OPJ_CALLCONV opj_event_msg_v2(opj_event_mgr_t* p_event_mgr, int event_type, const char *fmt, ...) { +opj_bool opj_event_msg_v2(opj_event_mgr_t* p_event_mgr, int event_type, const char *fmt, ...) { #define MSG_SIZE 512 /* 512 bytes should be more than enough for a short message */ opj_msg_callback msg_handler = 00; void * l_data = 00; @@ -167,7 +167,7 @@ opj_bool OPJ_CALLCONV opj_event_msg_v2(opj_event_mgr_t* p_event_mgr, int event_t return OPJ_TRUE; } -void OPJ_CALLCONV opj_set_default_event_handler(opj_event_mgr_t * p_manager) +void opj_set_default_event_handler(opj_event_mgr_t * p_manager) { p_manager->m_error_data = 00; p_manager->m_warning_data = 00; diff --git a/src/lib/openjp2/event.h b/src/lib/openjp2/event.h index 98543b5d..111cea9f 100644 --- a/src/lib/openjp2/event.h +++ b/src/lib/openjp2/event.h @@ -89,13 +89,13 @@ opj_bool opj_event_msg(opj_common_ptr cinfo, int event_type, const char *fmt, .. * * @return Returns true if successful, returns false otherwise */ -OPJ_API opj_bool OPJ_CALLCONV opj_event_msg_v2(opj_event_mgr_t* event_mgr, int event_type, const char *fmt, ...); +opj_bool opj_event_msg_v2(opj_event_mgr_t* event_mgr, int event_type, const char *fmt, ...); /* ----------------------------------------------------------------------- */ /** * Set the event manager with the default callback function for the 3 levels. */ -OPJ_API void OPJ_CALLCONV opj_set_default_event_handler(opj_event_mgr_t * p_manager); +void opj_set_default_event_handler(opj_event_mgr_t * p_manager); /*@}*/ diff --git a/src/lib/openjp2/function_list.c b/src/lib/openjp2/function_list.c index 4b4b0a83..183525af 100644 --- a/src/lib/openjp2/function_list.c +++ b/src/lib/openjp2/function_list.c @@ -67,7 +67,7 @@ void opj_procedure_list_destroy(opj_procedure_list_t * p_list) opj_free(p_list); } -opj_bool OPJ_CALLCONV opj_procedure_list_add_procedure (opj_procedure_list_t * p_validation_list, opj_procedure p_procedure) +opj_bool opj_procedure_list_add_procedure (opj_procedure_list_t * p_validation_list, opj_procedure p_procedure) { if (p_validation_list->m_nb_max_procedures == p_validation_list->m_nb_procedures) { @@ -98,17 +98,17 @@ opj_bool OPJ_CALLCONV opj_procedure_list_add_procedure (opj_procedure_list_t * p return OPJ_TRUE; } -OPJ_UINT32 OPJ_CALLCONV opj_procedure_list_get_nb_procedures (opj_procedure_list_t * p_validation_list) +OPJ_UINT32 opj_procedure_list_get_nb_procedures (opj_procedure_list_t * p_validation_list) { return p_validation_list->m_nb_procedures; } -opj_procedure* OPJ_CALLCONV opj_procedure_list_get_first_procedure (opj_procedure_list_t * p_validation_list) +opj_procedure* opj_procedure_list_get_first_procedure (opj_procedure_list_t * p_validation_list) { return p_validation_list->m_procedures; } -void OPJ_CALLCONV opj_procedure_list_clear (opj_procedure_list_t * p_validation_list) +void opj_procedure_list_clear (opj_procedure_list_t * p_validation_list) { p_validation_list->m_nb_procedures = 0; } diff --git a/src/lib/openjp2/function_list.h b/src/lib/openjp2/function_list.h index 17a50051..1c0553d6 100644 --- a/src/lib/openjp2/function_list.h +++ b/src/lib/openjp2/function_list.h @@ -88,9 +88,9 @@ void opj_procedure_list_destroy(opj_procedure_list_t * p_list); * @param p_validation_list the list of procedure to modify. * @param p_procedure the procedure to add. * - * @return OPJ_FALSE if the procedure could ne added. + * @return OPJ_TRUE if the procedure could be added. */ -OPJ_API opj_bool OPJ_CALLCONV opj_procedure_list_add_procedure (opj_procedure_list_t * p_validation_list, opj_procedure p_procedure); +opj_bool opj_procedure_list_add_procedure (opj_procedure_list_t * p_validation_list, opj_procedure p_procedure); /** * Gets the number of validation procedures. @@ -99,7 +99,7 @@ OPJ_API opj_bool OPJ_CALLCONV opj_procedure_list_add_procedure (opj_procedure_li * * @return the number of validation procedures. */ -OPJ_API OPJ_UINT32 OPJ_CALLCONV opj_procedure_list_get_nb_procedures (opj_procedure_list_t * p_validation_list); +OPJ_UINT32 opj_procedure_list_get_nb_procedures (opj_procedure_list_t * p_validation_list); /** * Gets the pointer on the first validation procedure. This function is similar to the C++ @@ -110,7 +110,7 @@ OPJ_API OPJ_UINT32 OPJ_CALLCONV opj_procedure_list_get_nb_procedures (opj_proced * * @return a pointer to the first procedure. */ -OPJ_API opj_procedure* OPJ_CALLCONV opj_procedure_list_get_first_procedure (opj_procedure_list_t * p_validation_list); +opj_procedure* opj_procedure_list_get_first_procedure (opj_procedure_list_t * p_validation_list); /** @@ -119,7 +119,7 @@ OPJ_API opj_procedure* OPJ_CALLCONV opj_procedure_list_get_first_procedure (opj_ * @param p_validation_list the list of procedure to clear. * */ -OPJ_API void OPJ_CALLCONV opj_procedure_list_clear (opj_procedure_list_t * p_validation_list); +void opj_procedure_list_clear (opj_procedure_list_t * p_validation_list); /*@}*/ #endif /* __FUNCTION_LIST_H */ diff --git a/src/lib/openjpip/indexbox_manager.h b/src/lib/openjp2/indexbox_manager.h index d468e72f..d468e72f 100644 --- a/src/lib/openjpip/indexbox_manager.h +++ b/src/lib/openjp2/indexbox_manager.h diff --git a/src/lib/openjp2/j2k.c b/src/lib/openjp2/j2k.c index 82bc0627..5d4cd2e8 100644 --- a/src/lib/openjp2/j2k.c +++ b/src/lib/openjp2/j2k.c @@ -9056,7 +9056,7 @@ opj_bool opj_j2k_encode_v2( opj_j2k_v2_t * p_j2k, return OPJ_TRUE; } -opj_bool OPJ_CALLCONV opj_j2k_end_compress( opj_j2k_v2_t *p_j2k, +opj_bool opj_j2k_end_compress( opj_j2k_v2_t *p_j2k, opj_stream_private_t *p_stream, opj_event_mgr_t * p_manager) { @@ -9071,7 +9071,7 @@ opj_bool OPJ_CALLCONV opj_j2k_end_compress( opj_j2k_v2_t *p_j2k, return OPJ_TRUE; } -OPJ_API opj_bool OPJ_CALLCONV opj_j2k_start_compress(opj_j2k_v2_t *p_j2k, +opj_bool opj_j2k_start_compress(opj_j2k_v2_t *p_j2k, opj_stream_private_t *p_stream, opj_image_t * p_image, opj_event_mgr_t * p_manager) diff --git a/src/lib/openjp2/j2k.h b/src/lib/openjp2/j2k.h index 7353071c..2782a096 100644 --- a/src/lib/openjp2/j2k.h +++ b/src/lib/openjp2/j2k.h @@ -1024,7 +1024,7 @@ opj_bool opj_j2k_encode_v2( opj_j2k_v2_t * p_j2k, * * @return true if the codec is valid. */ -OPJ_API opj_bool OPJ_CALLCONV opj_j2k_start_compress(opj_j2k_v2_t *p_j2k, +opj_bool opj_j2k_start_compress(opj_j2k_v2_t *p_j2k, opj_stream_private_t *p_stream, opj_image_t * p_image, opj_event_mgr_t * p_manager); @@ -1033,7 +1033,7 @@ OPJ_API opj_bool OPJ_CALLCONV opj_j2k_start_compress(opj_j2k_v2_t *p_j2k, * Ends the compression procedures and possibiliy add data to be read after the * codestream. */ -OPJ_API opj_bool OPJ_CALLCONV opj_j2k_end_compress( opj_j2k_v2_t *p_j2k, +opj_bool opj_j2k_end_compress( opj_j2k_v2_t *p_j2k, opj_stream_private_t *cio, opj_event_mgr_t * p_manager); diff --git a/src/lib/openjp2/jp2.c b/src/lib/openjp2/jp2.c index be66c295..0f31d383 100644 --- a/src/lib/openjp2/jp2.c +++ b/src/lib/openjp2/jp2.c @@ -1103,7 +1103,7 @@ opj_bool opj_jp2_decode(opj_jp2_v2_t *jp2, return OPJ_TRUE; } -opj_bool OPJ_CALLCONV opj_jp2_write_jp2h(opj_jp2_v2_t *jp2, +opj_bool opj_jp2_write_jp2h(opj_jp2_v2_t *jp2, opj_stream_private_t *stream, opj_event_mgr_t * p_manager ) @@ -1334,7 +1334,7 @@ void opj_jp2_setup_decoder(opj_jp2_v2_t *jp2, opj_dparameters_t *parameters) /* JP2 encoder interface */ /* ----------------------------------------------------------------------- */ -void OPJ_CALLCONV opj_jp2_setup_encoder( opj_jp2_v2_t *jp2, +void opj_jp2_setup_encoder( opj_jp2_v2_t *jp2, opj_cparameters_t *parameters, opj_image_t *image, opj_event_mgr_t * p_manager) @@ -1412,7 +1412,7 @@ void OPJ_CALLCONV opj_jp2_setup_encoder( opj_jp2_v2_t *jp2, jp2->approx = 0; /* APPROX */ } -opj_bool OPJ_CALLCONV opj_jp2_encode(opj_jp2_v2_t *jp2, +opj_bool opj_jp2_encode(opj_jp2_v2_t *jp2, opj_stream_private_t *stream, opj_event_mgr_t * p_manager) { @@ -2087,7 +2087,7 @@ opj_bool opj_jp2_read_tile_header ( opj_jp2_v2_t * p_jp2, p_manager); } -opj_bool OPJ_CALLCONV opj_jp2_write_tile ( opj_jp2_v2_t *p_jp2, +opj_bool opj_jp2_write_tile ( opj_jp2_v2_t *p_jp2, OPJ_UINT32 p_tile_index, OPJ_BYTE * p_data, OPJ_UINT32 p_data_size, @@ -2110,7 +2110,7 @@ opj_bool opj_jp2_decode_tile ( opj_jp2_v2_t * p_jp2, return opj_j2k_decode_tile (p_jp2->j2k,p_tile_index,p_data,p_data_size,p_stream,p_manager); } -void OPJ_CALLCONV opj_jp2_destroy(opj_jp2_v2_t *jp2) +void opj_jp2_destroy(opj_jp2_v2_t *jp2) { if (jp2) { /* destroy the J2K codec */ @@ -2241,7 +2241,7 @@ opj_bool opj_jp2_get_tile( opj_jp2_v2_t *p_jp2, /* JP2 encoder interface */ /* ----------------------------------------------------------------------- */ -opj_jp2_v2_t* OPJ_CALLCONV opj_jp2_create(opj_bool p_is_decoder) +opj_jp2_v2_t* opj_jp2_create(opj_bool p_is_decoder) { opj_jp2_v2_t *jp2 = (opj_jp2_v2_t*)opj_malloc(sizeof(opj_jp2_v2_t)); if (jp2) { @@ -2300,7 +2300,7 @@ opj_codestream_index_t* jp2_get_cstr_index(opj_jp2_v2_t* p_jp2) return j2k_get_cstr_index(p_jp2->j2k); } -opj_codestream_info_v2_t* OPJ_CALLCONV jp2_get_cstr_info(opj_jp2_v2_t* p_jp2) +opj_codestream_info_v2_t* jp2_get_cstr_info(opj_jp2_v2_t* p_jp2) { return j2k_get_cstr_info(p_jp2->j2k); } diff --git a/src/lib/openjp2/jp2.h b/src/lib/openjp2/jp2.h index 24670173..006c4e6d 100644 --- a/src/lib/openjp2/jp2.h +++ b/src/lib/openjp2/jp2.h @@ -265,7 +265,7 @@ opj_jp2_img_header_writer_handler_t; * * @return true if writing was successful. */ -OPJ_API opj_bool OPJ_CALLCONV opj_jp2_write_jp2h(opj_jp2_v2_t *jp2, +opj_bool opj_jp2_write_jp2h(opj_jp2_v2_t *jp2, opj_stream_private_t *stream, opj_event_mgr_t * p_manager ); @@ -300,7 +300,7 @@ opj_bool opj_jp2_decode(opj_jp2_v2_t *jp2, * @param image input filled image * @param p_manager FIXME DOC */ -OPJ_API void OPJ_CALLCONV opj_jp2_setup_encoder( opj_jp2_v2_t *jp2, +void opj_jp2_setup_encoder( opj_jp2_v2_t *jp2, opj_cparameters_t *parameters, opj_image_t *image, opj_event_mgr_t * p_manager); @@ -312,7 +312,7 @@ Encode an image into a JPEG-2000 file stream @param p_manager event manager @return Returns true if successful, returns false otherwise */ -OPJ_API opj_bool OPJ_CALLCONV opj_jp2_encode( opj_jp2_v2_t *jp2, +opj_bool opj_jp2_encode( opj_jp2_v2_t *jp2, opj_stream_private_t *stream, opj_event_mgr_t * p_manager); @@ -402,7 +402,7 @@ opj_bool opj_jp2_read_tile_header ( opj_jp2_v2_t * p_jp2, * @param p_stream the stream to write data to. * @param p_manager the user event manager. */ -OPJ_API opj_bool OPJ_CALLCONV opj_jp2_write_tile ( opj_jp2_v2_t *p_jp2, +opj_bool opj_jp2_write_tile ( opj_jp2_v2_t *p_jp2, OPJ_UINT32 p_tile_index, OPJ_BYTE * p_data, OPJ_UINT32 p_data_size, @@ -432,13 +432,13 @@ opj_bool opj_jp2_decode_tile ( opj_jp2_v2_t * p_jp2, * * @return an empty jpeg2000 file codec. */ -OPJ_API opj_jp2_v2_t* OPJ_CALLCONV opj_jp2_create (opj_bool p_is_decoder); +opj_jp2_v2_t* opj_jp2_create (opj_bool p_is_decoder); /** Destroy a JP2 decompressor handle @param jp2 JP2 decompressor handle to destroy */ -OPJ_API void OPJ_CALLCONV opj_jp2_destroy(opj_jp2_v2_t *jp2); +void opj_jp2_destroy(opj_jp2_v2_t *jp2); /** @@ -496,7 +496,7 @@ void jp2_dump (opj_jp2_v2_t* p_jp2, OPJ_INT32 flag, FILE* out_stream); * *@return the codestream information extract from the jpg2000 codec */ -OPJ_API opj_codestream_info_v2_t* OPJ_CALLCONV jp2_get_cstr_info(opj_jp2_v2_t* p_jp2); +opj_codestream_info_v2_t* jp2_get_cstr_info(opj_jp2_v2_t* p_jp2); /** * Get the codestream index from a JPEG2000 codec. diff --git a/src/lib/openjp2/openjpeg.h b/src/lib/openjp2/openjpeg.h index c9788204..581f4bfc 100644 --- a/src/lib/openjp2/openjpeg.h +++ b/src/lib/openjp2/openjpeg.h @@ -1082,26 +1082,26 @@ to contain encoded data. @param length Reading: buffer length. Writing: 0 @return Returns a CIO handle if successful, returns NULL otherwise */ -OPJ_API opj_cio_t* OPJ_CALLCONV opj_cio_open(opj_common_ptr cinfo, unsigned char *buffer, int length); +opj_cio_t* opj_cio_open(opj_common_ptr cinfo, unsigned char *buffer, int length); /** Close and free a CIO handle @param cio CIO handle to free */ -OPJ_API void OPJ_CALLCONV opj_cio_close(opj_cio_t *cio); +void opj_cio_close(opj_cio_t *cio); /** Get position in byte stream @param cio CIO handle @return Returns the position in bytes */ -OPJ_API OPJ_OFF_T OPJ_CALLCONV cio_tell(opj_cio_t *cio); +OPJ_OFF_T cio_tell(opj_cio_t *cio); /** Set position in byte stream @param cio CIO handle @param pos Position, in number of bytes, from the beginning of the stream */ -OPJ_API void OPJ_CALLCONV cio_seek(opj_cio_t *cio, int pos); +void cio_seek(opj_cio_t *cio, int pos); /* <----------- */ /* V2 framework */ diff --git a/src/lib/openjpip/phix_manager.c b/src/lib/openjp2/phix_manager.c index bb15ed37..bb15ed37 100644 --- a/src/lib/openjpip/phix_manager.c +++ b/src/lib/openjp2/phix_manager.c diff --git a/src/lib/openjpip/ppix_manager.c b/src/lib/openjp2/ppix_manager.c index ad1d934b..ad1d934b 100644 --- a/src/lib/openjpip/ppix_manager.c +++ b/src/lib/openjp2/ppix_manager.c diff --git a/src/lib/openjpip/thix_manager.c b/src/lib/openjp2/thix_manager.c index fe584cbc..fe584cbc 100644 --- a/src/lib/openjpip/thix_manager.c +++ b/src/lib/openjp2/thix_manager.c diff --git a/src/lib/openjpip/tpix_manager.c b/src/lib/openjp2/tpix_manager.c index 0c58a329..0c58a329 100644 --- a/src/lib/openjpip/tpix_manager.c +++ b/src/lib/openjp2/tpix_manager.c diff --git a/src/lib/openjpip/CMakeLists.txt b/src/lib/openjpip/CMakeLists.txt index 814d2931..c149ef3f 100644 --- a/src/lib/openjpip/CMakeLists.txt +++ b/src/lib/openjpip/CMakeLists.txt @@ -36,11 +36,6 @@ set(OPENJPIP_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/session_manager.c ${CMAKE_CURRENT_SOURCE_DIR}/jpip_parser.c ${CMAKE_CURRENT_SOURCE_DIR}/sock_manager.c - ${CMAKE_CURRENT_SOURCE_DIR}/cidx_manager.c - ${CMAKE_CURRENT_SOURCE_DIR}/phix_manager.c - ${CMAKE_CURRENT_SOURCE_DIR}/ppix_manager.c - ${CMAKE_CURRENT_SOURCE_DIR}/thix_manager.c - ${CMAKE_CURRENT_SOURCE_DIR}/tpix_manager.c ) set(SERVER_SRCS diff --git a/src/lib/openjpip/openjpip.c b/src/lib/openjpip/openjpip.c index 7682de1a..8308f3e3 100644 --- a/src/lib/openjpip/openjpip.c +++ b/src/lib/openjpip/openjpip.c @@ -209,7 +209,7 @@ void local_log( bool query, bool messages, bool sessions, bool targets, QR_t *qr #ifndef SERVER -dec_server_record_t * OPJ_CALLCONV init_dec_server( int port) +dec_server_record_t * init_dec_server( int port) { dec_server_record_t *record = (dec_server_record_t *)opj_malloc( sizeof(dec_server_record_t)); @@ -222,7 +222,7 @@ dec_server_record_t * OPJ_CALLCONV init_dec_server( int port) return record; } -void OPJ_CALLCONV terminate_dec_server( dec_server_record_t **rec) +void terminate_dec_server( dec_server_record_t **rec) { delete_cachelist( &(*rec)->cachelist); opj_free( (*rec)->jpipstream); @@ -236,7 +236,7 @@ void OPJ_CALLCONV terminate_dec_server( dec_server_record_t **rec) opj_free( *rec); } -client_t OPJ_CALLCONV accept_connection( dec_server_record_t *rec) +client_t accept_connection( dec_server_record_t *rec) { client_t client; @@ -247,7 +247,7 @@ client_t OPJ_CALLCONV accept_connection( dec_server_record_t *rec) return client; } -bool OPJ_CALLCONV handle_clientreq( client_t client, dec_server_record_t *rec) +bool handle_clientreq( client_t client, dec_server_record_t *rec) { bool quit = false; msgtype_t msgtype = identify_clientmsg( client); @@ -306,7 +306,7 @@ bool OPJ_CALLCONV handle_clientreq( client_t client, dec_server_record_t *rec) } -jpip_dec_param_t * OPJ_CALLCONV init_jpipdecoder( bool jp2) +jpip_dec_param_t * init_jpipdecoder( bool jp2) { jpip_dec_param_t *dec; @@ -321,7 +321,7 @@ jpip_dec_param_t * OPJ_CALLCONV init_jpipdecoder( bool jp2) } -bool OPJ_CALLCONV fread_jpip( const char fname[], jpip_dec_param_t *dec) +bool fread_jpip( const char fname[], jpip_dec_param_t *dec) { int infd; @@ -346,7 +346,7 @@ bool OPJ_CALLCONV fread_jpip( const char fname[], jpip_dec_param_t *dec) return true; } -void OPJ_CALLCONV decode_jpip( jpip_dec_param_t *dec) +void decode_jpip( jpip_dec_param_t *dec) { parse_JPIPstream( dec->jpipstream, dec->jpiplen, 0, dec->msgqueue); @@ -361,7 +361,7 @@ void OPJ_CALLCONV decode_jpip( jpip_dec_param_t *dec) dec->jp2kstream = recons_j2k( dec->msgqueue, dec->jpipstream, dec->msgqueue->first->csn, 0, 0, &dec->jp2klen); } -bool OPJ_CALLCONV fwrite_jp2k( const char fname[], jpip_dec_param_t *dec) +bool fwrite_jp2k( const char fname[], jpip_dec_param_t *dec) { int outfd; @@ -382,7 +382,7 @@ bool OPJ_CALLCONV fwrite_jp2k( const char fname[], jpip_dec_param_t *dec) return true; } -void OPJ_CALLCONV output_log( bool messages, bool metadata, bool ihdrbox, jpip_dec_param_t *dec) +void output_log( bool messages, bool metadata, bool ihdrbox, jpip_dec_param_t *dec) { if( messages) print_msgqueue( dec->msgqueue); @@ -396,7 +396,7 @@ void OPJ_CALLCONV output_log( bool messages, bool metadata, bool ihdrbox, jpip_d } } -void OPJ_CALLCONV destroy_jpipdecoder( jpip_dec_param_t **dec) +void destroy_jpipdecoder( jpip_dec_param_t **dec) { opj_free( (*dec)->jpipstream); delete_msgqueue( &(*dec)->msgqueue); @@ -409,7 +409,7 @@ void OPJ_CALLCONV destroy_jpipdecoder( jpip_dec_param_t **dec) opj_free( *dec); } -index_t * OPJ_CALLCONV get_index_from_JP2file( int fd) +index_t * get_index_from_JP2file( int fd) { char *data; @@ -437,744 +437,14 @@ index_t * OPJ_CALLCONV get_index_from_JP2file( int fd) return parse_jp2file( fd); } -void OPJ_CALLCONV destroy_index( index_t **idx) +void destroy_index( index_t **idx) { delete_index( idx); } -void OPJ_CALLCONV output_index( index_t *index) +void output_index( index_t *index) { print_index( *index); } -/* ---------------------------------------------------------------------- */ -/* COMPRESSION FUNCTIONS*/ -typedef struct opj_decompression -{ - /** Main header reading function handler*/ - opj_bool (*opj_read_header) ( struct opj_stream_private * cio, - void * p_codec, - opj_image_t **p_image, - struct opj_event_mgr * p_manager); - /** Decoding function */ - opj_bool (*opj_decode) ( void * p_codec, - struct opj_stream_private *p_cio, - opj_image_t *p_image, - struct opj_event_mgr * p_manager); - /** FIXME DOC */ - opj_bool (*opj_read_tile_header)( void * p_codec, - OPJ_UINT32 * p_tile_index, - OPJ_UINT32* p_data_size, - OPJ_INT32 * p_tile_x0, OPJ_INT32 * p_tile_y0, - OPJ_INT32 * p_tile_x1, OPJ_INT32 * p_tile_y1, - OPJ_UINT32 * p_nb_comps, - opj_bool * p_should_go_on, - struct opj_stream_private *p_cio, - struct opj_event_mgr * p_manager); - /** FIXME DOC */ - opj_bool (*opj_decode_tile_data)( void * p_codec, - OPJ_UINT32 p_tile_index, - OPJ_BYTE * p_data, - OPJ_UINT32 p_data_size, - struct opj_stream_private *p_cio, - struct opj_event_mgr * p_manager); - /** Reading function used after codestream if necessary */ - opj_bool (* opj_end_decompress) ( void *p_codec, - struct opj_stream_private *cio, - struct opj_event_mgr * p_manager); - /** Codec destroy function handler*/ - void (*opj_destroy) (void * p_codec); - /** Setup decoder function handler */ - void (*opj_setup_decoder) (void * p_codec, opj_dparameters_t * p_param); - /** Set decode area function handler */ - opj_bool (*opj_set_decode_area) ( void * p_codec, - opj_image_t* p_image, - OPJ_INT32 p_start_x, OPJ_INT32 p_end_x, - OPJ_INT32 p_start_y, OPJ_INT32 p_end_y, - struct opj_event_mgr * p_manager); - - /** Get tile function */ - opj_bool (*opj_get_decoded_tile) ( void *p_codec, - opj_stream_private_t *p_cio, - opj_image_t *p_image, - struct opj_event_mgr * p_manager, - OPJ_UINT32 tile_index); - - /** Set the decoded resolution factor */ - opj_bool (*opj_set_decoded_resolution_factor) ( void * p_codec, - OPJ_UINT32 res_factor, - opj_event_mgr_t * p_manager); - -}opj_decompression_t; - -typedef struct opj_compression -{ - opj_bool (* opj_start_compress) ( void *p_codec, - struct opj_stream_private *cio, - struct opj_image * p_image, - struct opj_event_mgr * p_manager); - - opj_bool (* opj_encode) ( void * p_codec, - struct opj_stream_private *p_cio, - struct opj_event_mgr * p_manager); - - opj_bool (* opj_write_tile) ( void * p_codec, - OPJ_UINT32 p_tile_index, - OPJ_BYTE * p_data, - OPJ_UINT32 p_data_size, - struct opj_stream_private * p_cio, - struct opj_event_mgr * p_manager); - - opj_bool (* opj_end_compress) ( void * p_codec, - struct opj_stream_private *p_cio, - struct opj_event_mgr * p_manager); - - void (* opj_destroy) (void * p_codec); - - void (*opj_setup_encoder) ( void * p_codec, - opj_cparameters_t * p_param, - struct opj_image * p_image, - struct opj_event_mgr * p_manager); - -}opj_compression_t; - -typedef struct opj_codec_private -{ - /** FIXME DOC */ - union - { - opj_decompression_t m_decompression; - opj_compression_t m_compression; - } m_codec_data; - /** FIXME DOC*/ - void * m_codec; - /** Event handler */ - opj_event_mgr_t m_event_mgr; - /** Flag to indicate if the codec is used to decode or encode*/ - opj_bool is_decompressor; - void (*opj_dump_codec) (void * p_codec, OPJ_INT32 info_flag, FILE* output_stream); - opj_codestream_info_v2_t* (*opj_get_codec_info)(void* p_codec); - opj_codestream_index_t* (*opj_get_codec_index)(void* p_codec); -} -opj_codec_private_t; - -static opj_bool opj_jp2_write_jp( opj_jp2_v2_t *jp2, - opj_stream_private_t *cio, - opj_event_mgr_t * p_manager ) -{ - /* 12 bytes will be read */ - unsigned char l_signature_data [12]; - - /* preconditions */ - assert(cio != 00); - assert(jp2 != 00); - assert(p_manager != 00); - - /* write box length */ - opj_write_bytes(l_signature_data,12,4); - /* writes box type */ - opj_write_bytes(l_signature_data+4,JP2_JP,4); - /* writes magic number*/ - opj_write_bytes(l_signature_data+8,0x0d0a870a,4); - - if (opj_stream_write_data(cio,l_signature_data,12,p_manager) != 12) { - return OPJ_FALSE; - } - - return OPJ_TRUE; -} - -static opj_bool opj_jp2_write_ftyp(opj_jp2_v2_t *jp2, - opj_stream_private_t *cio, - opj_event_mgr_t * p_manager ) -{ - unsigned int i; - unsigned int l_ftyp_size = 16 + 4 * jp2->numcl; - unsigned char * l_ftyp_data, * l_current_data_ptr; - opj_bool l_result; - - /* preconditions */ - assert(cio != 00); - assert(jp2 != 00); - assert(p_manager != 00); - - l_ftyp_data = (unsigned char *) opj_malloc(l_ftyp_size); - - if (l_ftyp_data == 00) { - opj_event_msg_v2(p_manager, EVT_ERROR, "Not enough memory to handle ftyp data\n"); - return OPJ_FALSE; - } - - memset(l_ftyp_data,0,l_ftyp_size); - - l_current_data_ptr = l_ftyp_data; - - opj_write_bytes(l_current_data_ptr, l_ftyp_size,4); /* box size */ - l_current_data_ptr += 4; - - opj_write_bytes(l_current_data_ptr, JP2_FTYP,4); /* FTYP */ - l_current_data_ptr += 4; - - opj_write_bytes(l_current_data_ptr, jp2->brand,4); /* BR */ - l_current_data_ptr += 4; - - opj_write_bytes(l_current_data_ptr, jp2->minversion,4); /* MinV */ - l_current_data_ptr += 4; - - for (i = 0; i < jp2->numcl; i++) { - opj_write_bytes(l_current_data_ptr, jp2->cl[i],4); /* CL */ - } - - l_result = (opj_stream_write_data(cio,l_ftyp_data,l_ftyp_size,p_manager) == l_ftyp_size); - if (! l_result) - { - opj_event_msg_v2(p_manager, EVT_ERROR, "Error while writing ftyp data to stream\n"); - } - - opj_free(l_ftyp_data); - - return l_result; -} - -static opj_bool opj_jp2_default_validation ( opj_jp2_v2_t * jp2, - opj_stream_private_t *cio, - opj_event_mgr_t * p_manager - ) -{ - opj_bool l_is_valid = OPJ_TRUE; - unsigned int i; - - /* preconditions */ - assert(jp2 != 00); - assert(cio != 00); - assert(p_manager != 00); - - /* JPEG2000 codec validation */ - /*TODO*/ - - /* STATE checking */ - /* make sure the state is at 0 */ - l_is_valid &= (jp2->jp2_state == JP2_STATE_NONE); - - /* make sure not reading a jp2h ???? WEIRD */ - l_is_valid &= (jp2->jp2_img_state == JP2_IMG_STATE_NONE); - - /* POINTER validation */ - /* make sure a j2k codec is present */ - l_is_valid &= (jp2->j2k != 00); - - /* make sure a procedure list is present */ - l_is_valid &= (jp2->m_procedure_list != 00); - - /* make sure a validation list is present */ - l_is_valid &= (jp2->m_validation_list != 00); - - /* PARAMETER VALIDATION */ - /* number of components */ - l_is_valid &= (jp2->numcl > 0); - /* width */ - l_is_valid &= (jp2->h > 0); - /* height */ - l_is_valid &= (jp2->w > 0); - /* precision */ - for (i = 0; i < jp2->numcomps; ++i) { - l_is_valid &= (jp2->comps[i].bpcc > 0); - } - - /* METH */ - l_is_valid &= ((jp2->meth > 0) && (jp2->meth < 3)); - - /* stream validation */ - /* back and forth is needed */ - l_is_valid &= opj_stream_has_seek(cio); - - return l_is_valid; -} - -static void opj_jp2_setup_encoding_validation (opj_jp2_v2_t *jp2) -{ - /* preconditions */ - assert(jp2 != 00); - - opj_procedure_list_add_procedure(jp2->m_validation_list, (opj_procedure)opj_jp2_default_validation); - /* DEVELOPER CORNER, add your custom validation procedure */ -} - -static opj_bool opj_jp2_skip_jp2c( opj_jp2_v2_t *jp2, - opj_stream_private_t *stream, - opj_event_mgr_t * p_manager ) -{ - /* preconditions */ - assert(jp2 != 00); - assert(stream != 00); - assert(p_manager != 00); - - jp2->j2k_codestream_offset = opj_stream_tell(stream); - - if (opj_stream_skip(stream,8,p_manager) != 8) { - return OPJ_FALSE; - } - - return OPJ_TRUE; -} - -static opj_bool opj_jpip_skip_iptr( opj_jp2_v2_t *jp2, - opj_stream_private_t *stream, - opj_event_mgr_t * p_manager ) -{ - /* preconditions */ - assert(jp2 != 00); - assert(stream != 00); - assert(p_manager != 00); - - jp2->jpip_iptr_offset = opj_stream_tell(stream); - - if (opj_stream_skip(stream,24,p_manager) != 24) { - return OPJ_FALSE; - } - - return OPJ_TRUE; -} - -static void opj_jpip_setup_header_writing (opj_jp2_v2_t *jp2) -{ - /* preconditions */ - assert(jp2 != 00); - - opj_procedure_list_add_procedure(jp2->m_procedure_list,(opj_procedure)opj_jp2_write_jp ); - opj_procedure_list_add_procedure(jp2->m_procedure_list,(opj_procedure)opj_jp2_write_ftyp ); - opj_procedure_list_add_procedure(jp2->m_procedure_list,(opj_procedure)opj_jp2_write_jp2h ); - opj_procedure_list_add_procedure(jp2->m_procedure_list,(opj_procedure)opj_jpip_skip_iptr ); - opj_procedure_list_add_procedure(jp2->m_procedure_list,(opj_procedure)opj_jp2_skip_jp2c ); - - /* DEVELOPER CORNER, insert your custom procedures */ - -} - -static opj_bool opj_jp2_exec ( opj_jp2_v2_t * jp2, - opj_procedure_list_t * p_procedure_list, - opj_stream_private_t *stream, - opj_event_mgr_t * p_manager - ) - -{ - opj_bool (** l_procedure) (opj_jp2_v2_t * jp2, opj_stream_private_t *, opj_event_mgr_t *) = 00; - opj_bool l_result = OPJ_TRUE; - OPJ_UINT32 l_nb_proc, i; - - /* preconditions */ - assert(p_procedure_list != 00); - assert(jp2 != 00); - assert(stream != 00); - assert(p_manager != 00); - - l_nb_proc = opj_procedure_list_get_nb_procedures(p_procedure_list); - l_procedure = (opj_bool (**) (opj_jp2_v2_t * jp2, opj_stream_private_t *, opj_event_mgr_t *)) opj_procedure_list_get_first_procedure(p_procedure_list); - - for (i=0;i<l_nb_proc;++i) { - l_result = l_result && (*l_procedure) (jp2,stream,p_manager); - ++l_procedure; - } - - /* and clear the procedure list at the end. */ - opj_procedure_list_clear(p_procedure_list); - return l_result; -} - -static opj_bool opj_jpip_start_compress(opj_jp2_v2_t *jp2, - opj_stream_private_t *stream, - opj_image_t * p_image, - opj_event_mgr_t * p_manager - ) -{ - /* preconditions */ - assert(jp2 != 00); - assert(stream != 00); - assert(p_manager != 00); - - /* customization of the validation */ - opj_jp2_setup_encoding_validation (jp2); - - /* validation of the parameters codec */ - if (! opj_jp2_exec(jp2,jp2->m_validation_list,stream,p_manager)) { - return OPJ_FALSE; - } - - /* customization of the encoding */ - opj_jpip_setup_header_writing(jp2); - - /* write header */ - if (! opj_jp2_exec (jp2,jp2->m_procedure_list,stream,p_manager)) { - return OPJ_FALSE; - } - - return opj_j2k_start_compress(jp2->j2k,stream,p_image,p_manager); -} - -static opj_bool opj_jpip_write_iptr(opj_jp2_v2_t *jp2, - opj_stream_private_t *cio, - opj_event_mgr_t * p_manager ) -{ - OPJ_OFF_T j2k_codestream_exit; - OPJ_BYTE l_data_header [24]; - - /* preconditions */ - assert(jp2 != 00); - assert(cio != 00); - assert(p_manager != 00); - assert(opj_stream_has_seek(cio)); - - j2k_codestream_exit = opj_stream_tell(cio); - opj_write_bytes(l_data_header, 24, 4); /* size of iptr */ - opj_write_bytes(l_data_header + 4,JPIP_IPTR,4); /* IPTR */ -#if 0 - opj_write_bytes(l_data_header + 4 + 4, 0, 8); /* offset */ - opj_write_bytes(l_data_header + 8 + 8, 0, 8); /* length */ -#else - opj_write_double(l_data_header + 4 + 4, 0); /* offset */ - opj_write_double(l_data_header + 8 + 8, 0); /* length */ -#endif - - if (! opj_stream_seek(cio,jp2->jpip_iptr_offset,p_manager)) { - opj_event_msg_v2(p_manager, EVT_ERROR, "Failed to seek in the stream.\n"); - return OPJ_FALSE; - } - - if (opj_stream_write_data(cio,l_data_header,24,p_manager) != 24) { - opj_event_msg_v2(p_manager, EVT_ERROR, "Failed to seek in the stream.\n"); - return OPJ_FALSE; - } - - if (! opj_stream_seek(cio,j2k_codestream_exit,p_manager)) { - opj_event_msg_v2(p_manager, EVT_ERROR, "Failed to seek in the stream.\n"); - return OPJ_FALSE; - } - - return OPJ_TRUE; -} - -static opj_bool opj_jpip_write_fidx(opj_jp2_v2_t *jp2, - opj_stream_private_t *cio, - opj_event_mgr_t * p_manager ) -{ - OPJ_OFF_T j2k_codestream_exit; - OPJ_BYTE l_data_header [24]; - - /* preconditions */ - assert(jp2 != 00); - assert(cio != 00); - assert(p_manager != 00); - assert(opj_stream_has_seek(cio)); - - opj_write_bytes(l_data_header, 24, 4); /* size of iptr */ - opj_write_bytes(l_data_header + 4,JPIP_FIDX,4); /* IPTR */ - opj_write_double(l_data_header + 4 + 4, 0); /* offset */ - opj_write_double(l_data_header + 8 + 8, 0); /* length */ - - if (opj_stream_write_data(cio,l_data_header,24,p_manager) != 24) { - opj_event_msg_v2(p_manager, EVT_ERROR, "Failed to seek in the stream.\n"); - return OPJ_FALSE; - } - - j2k_codestream_exit = opj_stream_tell(cio); - if (! opj_stream_seek(cio,j2k_codestream_exit,p_manager)) { - opj_event_msg_v2(p_manager, EVT_ERROR, "Failed to seek in the stream.\n"); - return OPJ_FALSE; - } - - return OPJ_TRUE; -} - -static opj_bool opj_jpip_write_cidx(opj_jp2_v2_t *jp2, - opj_stream_private_t *cio, - opj_event_mgr_t * p_manager ) -{ - OPJ_OFF_T j2k_codestream_exit; - OPJ_BYTE l_data_header [24]; - - /* preconditions */ - assert(jp2 != 00); - assert(cio != 00); - assert(p_manager != 00); - assert(opj_stream_has_seek(cio)); - - j2k_codestream_exit = opj_stream_tell(cio); - opj_write_bytes(l_data_header, 24, 4); /* size of iptr */ - opj_write_bytes(l_data_header + 4,JPIP_CIDX,4); /* IPTR */ -#if 0 - opj_write_bytes(l_data_header + 4 + 4, 0, 8); /* offset */ - opj_write_bytes(l_data_header + 8 + 8, 0, 8); /* length */ -#else - opj_write_double(l_data_header + 4 + 4, 0); /* offset */ - opj_write_double(l_data_header + 8 + 8, 0); /* length */ -#endif - - if (! opj_stream_seek(cio,j2k_codestream_exit,p_manager)) { - opj_event_msg_v2(p_manager, EVT_ERROR, "Failed to seek in the stream.\n"); - return OPJ_FALSE; - } - - if (opj_stream_write_data(cio,l_data_header,24,p_manager) != 24) { - opj_event_msg_v2(p_manager, EVT_ERROR, "Failed to seek in the stream.\n"); - return OPJ_FALSE; - } - - j2k_codestream_exit = opj_stream_tell(cio); - if (! opj_stream_seek(cio,j2k_codestream_exit,p_manager)) { - opj_event_msg_v2(p_manager, EVT_ERROR, "Failed to seek in the stream.\n"); - return OPJ_FALSE; - } - - return OPJ_TRUE; -} - -static void write_prxy_v2( int offset_jp2c, int length_jp2c, int offset_idx, int length_idx, opj_stream_private_t *cio, - opj_event_mgr_t * p_manager ) -{ - OPJ_BYTE l_data_header [8]; - int len, lenp; - -#if 0 - lenp = cio_tell( cio); - cio_skip( cio, 4); /* L [at the end] */ - cio_write( cio, JPIP_PRXY, 4); /* IPTR */ -#else - lenp = opj_stream_tell(cio); - opj_stream_skip(cio, 4, p_manager); /* L [at the end] */ - opj_write_bytes(l_data_header,JPIP_PRXY,4); /* IPTR */ - opj_stream_write_data(cio,l_data_header,4,p_manager); -#endif - -#if 0 - cio_write( cio, offset_jp2c, 8); /* OOFF */ - cio_write( cio, length_jp2c, 4); /* OBH part 1 */ - cio_write( cio, JP2_JP2C, 4); /* OBH part 2 */ -#else - opj_write_bytes( l_data_header, offset_jp2c, 8); /* OOFF */ - opj_stream_write_data(cio,l_data_header,8,p_manager); - opj_write_bytes( l_data_header, length_jp2c, 4); /* OBH part 1 */ - opj_write_bytes( l_data_header+4, JP2_JP2C, 4); /* OBH part 2 */ - opj_stream_write_data(cio,l_data_header,8,p_manager); -#endif - -#if 0 - cio_write( cio, 1,1); /* NI */ -#else - opj_write_bytes( l_data_header, 1, 1);/* NI */ - opj_stream_write_data(cio,l_data_header,1,p_manager); -#endif - -#if 0 - cio_write( cio, offset_idx, 8); /* IOFF */ - cio_write( cio, length_idx, 4); /* IBH part 1 */ - cio_write( cio, JPIP_CIDX, 4); /* IBH part 2 */ -#else - opj_write_bytes( l_data_header, offset_idx, 8); /* IOFF */ - opj_stream_write_data(cio,l_data_header,8,p_manager); - opj_write_bytes( l_data_header, length_idx, 4); /* IBH part 1 */ - opj_write_bytes( l_data_header+4, JPIP_CIDX, 4); /* IBH part 2 */ - opj_stream_write_data(cio,l_data_header,8,p_manager); -#endif - -#if 0 - len = cio_tell( cio)-lenp; - cio_seek( cio, lenp); - cio_write( cio, len, 4); /* L */ - cio_seek( cio, lenp+len); -#else - len = opj_stream_tell(cio)-lenp; - opj_stream_skip(cio, lenp, p_manager); - opj_write_bytes(l_data_header,len,4);/* L */ - opj_stream_write_data(cio,l_data_header,4,p_manager); - opj_stream_seek(cio, lenp+len,p_manager); -#endif -} - - -static int write_fidx_v2( int offset_jp2c, int length_jp2c, int offset_idx, int length_idx, opj_stream_private_t *cio, - opj_event_mgr_t * p_manager ) -{ - OPJ_BYTE l_data_header [4]; - int len, lenp; - -#if 0 - lenp = cio_tell( cio); - cio_skip( cio, 4); /* L [at the end] */ - cio_write( cio, JPIP_FIDX, 4); /* IPTR */ -#else - lenp = opj_stream_tell(cio); - opj_stream_skip(cio, 4, p_manager); - opj_write_bytes(l_data_header,JPIP_FIDX,4); /* FIDX */ - opj_stream_write_data(cio,l_data_header,4,p_manager); -#endif - - write_prxy_v2( offset_jp2c, length_jp2c, offset_idx, length_idx, cio,p_manager); - -#if 0 - len = cio_tell( cio)-lenp; - cio_seek( cio, lenp); - cio_write( cio, len, 4); /* L */ - cio_seek( cio, lenp+len); -#else - len = opj_stream_tell(cio)-lenp; - opj_stream_skip(cio, lenp, p_manager); - opj_write_bytes(l_data_header,len,4);/* L */ - opj_stream_write_data(cio,l_data_header,4,p_manager); - opj_stream_seek(cio, lenp+len,p_manager); -#endif - - return len; -} - -static opj_bool opj_jpip_write_jp2c(opj_jp2_v2_t *jp2, - opj_stream_private_t *cio, - opj_event_mgr_t * p_manager ) -{ - OPJ_OFF_T j2k_codestream_exit; - opj_codestream_info_t cstr_info; - OPJ_BYTE l_data_header [8]; - OPJ_UINT32 len_jp2c; - int len_cidx; - int len_fidx; - int pos_jp2c; - int pos_fidx; - int pos_cidx; - - /* preconditions */ - assert(jp2 != 00); - assert(cio != 00); - assert(p_manager != 00); - assert(opj_stream_has_seek(cio)); - - j2k_codestream_exit = opj_stream_tell(cio); - len_jp2c = j2k_codestream_exit - jp2->j2k_codestream_offset; - pos_jp2c = jp2->j2k_codestream_offset; - opj_write_bytes(l_data_header, len_jp2c, 4); /* size of codestream */ - opj_write_bytes(l_data_header + 4,JP2_JP2C,4); /* JP2C */ - - if (! opj_stream_seek(cio,jp2->j2k_codestream_offset,p_manager)) { - opj_event_msg_v2(p_manager, EVT_ERROR, "Failed to seek in the stream.\n"); - return OPJ_FALSE; - } - - if (opj_stream_write_data(cio,l_data_header,8,p_manager) != 8) { - opj_event_msg_v2(p_manager, EVT_ERROR, "Failed to seek in the stream.\n"); - return OPJ_FALSE; - } - - if (! opj_stream_seek(cio,j2k_codestream_exit,p_manager)) { - opj_event_msg_v2(p_manager, EVT_ERROR, "Failed to seek in the stream.\n"); - return OPJ_FALSE; - } - - /* CIDX */ - pos_cidx = opj_stream_tell( cio); - /*cinfo = jp2_get_cstr_info(jp2);*/ - assert( 0 ); /* MM: FIXME */ - len_cidx = write_cidx_v2( pos_jp2c+8, cio, cstr_info, len_jp2c-8,p_manager); - - /* FIDX */ - pos_fidx = opj_stream_tell( cio); - len_fidx = write_fidx_v2( pos_jp2c, len_jp2c, pos_cidx, len_cidx, cio, p_manager); - - return OPJ_TRUE; -} - -static void opj_jp2_setup_end_header_writing (opj_jp2_v2_t *jp2) -{ - /* preconditions */ - assert(jp2 != 00); - - opj_procedure_list_add_procedure(jp2->m_procedure_list,(opj_procedure)opj_jpip_write_iptr ); - opj_procedure_list_add_procedure(jp2->m_procedure_list,(opj_procedure)opj_jpip_write_jp2c ); -#if 0 - opj_procedure_list_add_procedure(jp2->m_procedure_list,(opj_procedure)opj_jpip_write_cidx ); - opj_procedure_list_add_procedure(jp2->m_procedure_list,(opj_procedure)opj_jpip_write_fidx ); -#endif - /* DEVELOPER CORNER, add your custom procedures */ -} - -static opj_bool opj_jpip_end_compress( opj_jp2_v2_t *jp2, - opj_stream_private_t *cio, - opj_event_mgr_t * p_manager - ) -{ - /* preconditions */ - assert(jp2 != 00); - assert(cio != 00); - assert(p_manager != 00); - - /* customization of the end encoding */ - opj_jp2_setup_end_header_writing(jp2); - - if (! opj_j2k_end_compress(jp2->j2k,cio,p_manager)) { - return OPJ_FALSE; - } - - /* write header */ - return opj_jp2_exec(jp2,jp2->m_procedure_list,cio,p_manager); -} - - -opj_codec_t* OPJ_CALLCONV opj_jpip_create_compress(OPJ_CODEC_FORMAT p_format) -{ - opj_codec_private_t *l_codec = 00; - - l_codec = (opj_codec_private_t*)opj_calloc(1, sizeof(opj_codec_private_t)); - if (!l_codec) { - return 00; - } - memset(l_codec, 0, sizeof(opj_codec_private_t)); - - l_codec->is_decompressor = 0; - - switch(p_format) { - case CODEC_JP2: - /* get a JP2 decoder handle */ - l_codec->m_codec_data.m_compression.opj_encode = (opj_bool (*) (void *, - struct opj_stream_private *, - struct opj_event_mgr * )) opj_jp2_encode; - - l_codec->m_codec_data.m_compression.opj_end_compress = (opj_bool (*) ( void *, - struct opj_stream_private *, - struct opj_event_mgr *)) opj_jpip_end_compress; - - l_codec->m_codec_data.m_compression.opj_start_compress = (opj_bool (*) (void *, - struct opj_stream_private *, - struct opj_image * , - struct opj_event_mgr *)) opj_jpip_start_compress; - - l_codec->m_codec_data.m_compression.opj_write_tile = (opj_bool (*) (void *, - OPJ_UINT32, - OPJ_BYTE*, - OPJ_UINT32, - struct opj_stream_private *, - struct opj_event_mgr *)) opj_jp2_write_tile; - - l_codec->m_codec_data.m_compression.opj_destroy = (void (*) (void *)) opj_jp2_destroy; - - l_codec->m_codec_data.m_compression.opj_setup_encoder = (void (*) ( void *, - opj_cparameters_t *, - struct opj_image *, - struct opj_event_mgr * )) opj_jp2_setup_encoder; - - l_codec->m_codec = opj_jp2_create(OPJ_FALSE); - if (! l_codec->m_codec) { - opj_free(l_codec); - return 00; - } - - break; - - case CODEC_UNKNOWN: - case CODEC_JPT: - default: - opj_free(l_codec); - return 00; - } - - opj_set_default_event_handler(&(l_codec->m_event_mgr)); - return (opj_codec_t*) l_codec; -} - #endif /*SERVER*/ diff --git a/src/lib/openjpip/openjpip.h b/src/lib/openjpip/openjpip.h index 584a69b3..c08c3d86 100644 --- a/src/lib/openjpip/openjpip.h +++ b/src/lib/openjpip/openjpip.h @@ -172,14 +172,14 @@ typedef SOCKET client_t; * @param[in] port opening tcp port (valid No. 49152-65535) * @return intialized decoding server record pointer */ -OPJ_API dec_server_record_t * OPJ_CALLCONV init_dec_server( int port); +dec_server_record_t * init_dec_server( int port); /** * Terminate the image decoding server * * @param[in] rec address of deleting decoding server static record pointer */ -OPJ_API void OPJ_CALLCONV terminate_dec_server( dec_server_record_t **rec); +void terminate_dec_server( dec_server_record_t **rec); /** * Accept client connection @@ -187,7 +187,7 @@ OPJ_API void OPJ_CALLCONV terminate_dec_server( dec_server_record_t **rec); * @param[in] rec decoding server static record pointer * @return client socket ID, -1 if failed */ -OPJ_API client_t OPJ_CALLCONV accept_connection( dec_server_record_t *rec); +client_t accept_connection( dec_server_record_t *rec); /** * Handle client request @@ -196,7 +196,7 @@ OPJ_API client_t OPJ_CALLCONV accept_connection( dec_server_record_t *rec); * @param[in] rec decoding server static record pointer * @return true if succeed */ -OPJ_API bool OPJ_CALLCONV handle_clientreq( client_t client, dec_server_record_t *rec); +bool handle_clientreq( client_t client, dec_server_record_t *rec); #endif /*SERVER*/ @@ -229,14 +229,14 @@ typedef struct jpip_dec_param{ * @param[in] jp2 true in case of jp2 file encoding, else j2k file encoding * @return JPIP decoding parameters pointer */ -OPJ_API jpip_dec_param_t * OPJ_CALLCONV init_jpipdecoder( bool jp2); +jpip_dec_param_t * init_jpipdecoder( bool jp2); /** * Destroy jpip decoding parameters * * @param[in] dec address of JPIP decoding parameters pointer */ -OPJ_API void OPJ_CALLCONV destroy_jpipdecoder( jpip_dec_param_t **dec); +void destroy_jpipdecoder( jpip_dec_param_t **dec); /** * Read jpip codestream from a file @@ -245,14 +245,14 @@ OPJ_API void OPJ_CALLCONV destroy_jpipdecoder( jpip_dec_param_t **dec); * @param[in] dec JPIP decoding parameters pointer * @return true if succeed */ -OPJ_API bool OPJ_CALLCONV fread_jpip( const char fname[], jpip_dec_param_t *dec); +bool fread_jpip( const char fname[], jpip_dec_param_t *dec); /** * Decode jpip codestream * * @param[in] dec JPIP decoding parameters pointer */ -OPJ_API void OPJ_CALLCONV decode_jpip( jpip_dec_param_t *dec); +void decode_jpip( jpip_dec_param_t *dec); /** * Write J2K/JP2 codestream to a file @@ -261,7 +261,7 @@ OPJ_API void OPJ_CALLCONV decode_jpip( jpip_dec_param_t *dec); * @param[in] dec JPIP decoding parameters pointer * @return true if succeed */ -OPJ_API bool OPJ_CALLCONV fwrite_jp2k( const char fname[], jpip_dec_param_t *dec); +bool fwrite_jp2k( const char fname[], jpip_dec_param_t *dec); /** * Option; print out parameter values to stderr @@ -271,7 +271,7 @@ OPJ_API bool OPJ_CALLCONV fwrite_jp2k( const char fname[], jpip_dec_param_t *dec * @param[in] ihdrbox true if image header data is to be printed out * @param[in] dec JPIP decoding parameters pointer */ -OPJ_API void OPJ_CALLCONV output_log( bool messages, bool metadata, bool ihdrbox, jpip_dec_param_t *dec); +void output_log( bool messages, bool metadata, bool ihdrbox, jpip_dec_param_t *dec); /* * test the format of index (cidx) box in JP2 file @@ -286,14 +286,14 @@ typedef index_param_t index_t; * @param[in] fd file descriptor of the JP2 file * @return pointer to the generated structure of index parameters */ -OPJ_API index_t * OPJ_CALLCONV get_index_from_JP2file( int fd); +index_t * get_index_from_JP2file( int fd); /** * Destroy index parameters * * @param[in,out] idx addressof the index pointer */ -OPJ_API void OPJ_CALLCONV destroy_index( index_t **idx); +void destroy_index( index_t **idx); /** @@ -301,9 +301,7 @@ OPJ_API void OPJ_CALLCONV destroy_index( index_t **idx); * * @param[in] index index parameters */ -OPJ_API void OPJ_CALLCONV output_index( index_t *index); - -OPJ_API opj_codec_t* OPJ_CALLCONV opj_jpip_create_compress(OPJ_CODEC_FORMAT format); +void output_index( index_t *index); #endif /*SERVER*/ |
