/**
* Sets up the procedures to do on reading header. Developpers wanting to extend the library can add their own reading procedures.
*/
-void j2k_setup_header_reading (opj_j2k_v2_t *p_j2k);
+static void opj_j2k_setup_header_reading (opj_j2k_v2_t *p_j2k);
/**
* The read header procedure.
*/
-static opj_bool j2k_read_header_procedure( opj_j2k_v2_t *p_j2k,
- opj_stream_private_t *p_stream,
- opj_event_mgr_t * p_manager);
+static opj_bool opj_j2k_read_header_procedure( opj_j2k_v2_t *p_j2k,
+ opj_stream_private_t *p_stream,
+ opj_event_mgr_t * p_manager);
/**
* The default encoding validation procedure without any extension.
*
* @return true if the parameters are correct.
*/
-static opj_bool j2k_decoding_validation ( opj_j2k_v2_t * p_j2k,
- opj_stream_private_t *p_stream,
- opj_event_mgr_t * p_manager );
+static opj_bool opj_j2k_decoding_validation ( opj_j2k_v2_t * p_j2k,
+ opj_stream_private_t *p_stream,
+ opj_event_mgr_t * p_manager );
/**
* Sets up the validation ,i.e. adds the procedures to lauch to make sure the codec parameters
* Sets up the validation ,i.e. adds the procedures to lauch to make sure the codec parameters
* are valid. Developpers wanting to extend the library can add their own validation procedures.
*/
-static void j2k_setup_decoding_validation (opj_j2k_v2_t *p_j2k);
+static void opj_j2k_setup_decoding_validation (opj_j2k_v2_t *p_j2k);
/**
* Sets up the validation ,i.e. adds the procedures to lauch to make sure the codec parameters
/**
* Builds the tcd decoder to use to decode tile.
*/
-static opj_bool j2k_build_decoder ( opj_j2k_v2_t * p_j2k,
- opj_stream_private_t *p_stream,
- opj_event_mgr_t * p_manager );
+static opj_bool opj_j2k_build_decoder ( opj_j2k_v2_t * p_j2k,
+ opj_stream_private_t *p_stream,
+ opj_event_mgr_t * p_manager );
/**
* Builds the tcd encoder to use to encode tile.
*/
* @param p_j2k J2K codec.
* @param p_manager the user event manager.
*/
-static opj_bool j2k_create_tcd( opj_j2k_v2_t *p_j2k,
- struct opj_stream_private *p_stream,
- struct opj_event_mgr * p_manager );
+static opj_bool opj_j2k_create_tcd( opj_j2k_v2_t *p_j2k,
+ opj_stream_private_t *p_stream,
+ opj_event_mgr_t * p_manager );
/**
* Excutes the given procedures on the given codec.
*
* @return true if all the procedures were successfully executed.
*/
-static opj_bool j2k_exec ( opj_j2k_v2_t * p_j2k,
+static opj_bool opj_j2k_exec ( opj_j2k_v2_t * p_j2k,
opj_procedure_list_t * p_procedure_list,
opj_stream_private_t *p_stream,
opj_event_mgr_t * p_manager);
* Copies the decoding tile parameters onto all the tile parameters.
* Creates also the tile decoder.
*/
-static opj_bool j2k_copy_default_tcp_and_create_tcd ( opj_j2k_v2_t * p_j2k,
- opj_stream_private_t *p_stream,
- opj_event_mgr_t * p_manager );
+static opj_bool opj_j2k_copy_default_tcp_and_create_tcd ( opj_j2k_v2_t * p_j2k,
+ opj_stream_private_t *p_stream,
+ opj_event_mgr_t * p_manager );
/**
* Destroys the memory associated with the decoding of headers.
*/
-static opj_bool j2k_destroy_header_memory ( opj_j2k_v2_t * p_j2k,
- opj_stream_private_t *p_stream,
- opj_event_mgr_t * p_manager );
+static opj_bool opj_j2k_destroy_header_memory ( opj_j2k_v2_t * p_j2k,
+ opj_stream_private_t *p_stream,
+ opj_event_mgr_t * p_manager );
/**
* Reads the lookup table containing all the marker, status and action, and returns the handler associated
*
* @return the handler associated with the id.
*/
-static const struct opj_dec_memory_marker_handler * j2k_get_marker_handler (OPJ_UINT32 p_id);
+static const struct opj_dec_memory_marker_handler * opj_j2k_get_marker_handler (OPJ_UINT32 p_id);
/**
* Destroys a tile coding parameter structure.
*
* @param p_tcp the tile coding parameter to destroy.
*/
-static void j2k_tcp_destroy (opj_tcp_v2_t *p_tcp);
+static void opj_j2k_tcp_destroy (opj_tcp_v2_t *p_tcp);
/**
* Destroys the data inside a tile coding parameter structure.
*
* @param p_tcp the tile coding parameter which contain data to destroy.
*/
-static void j2k_tcp_data_destroy (opj_tcp_v2_t *p_tcp);
+static void opj_j2k_tcp_data_destroy (opj_tcp_v2_t *p_tcp);
/**
* Destroys a coding parameter structure.
*
* @param p_cp the coding parameter to destroy.
*/
-static void j2k_cp_destroy (opj_cp_v2_t *p_cp);
+static void opj_j2k_cp_destroy (opj_cp_v2_t *p_cp);
/**
* @param p_header_size the size of the data contained in the COM marker.
* @param p_manager the user event manager.
*/
-static opj_bool j2k_read_SPCod_SPCoc( opj_j2k_v2_t *p_j2k,
- OPJ_UINT32 compno,
- OPJ_BYTE * p_header_data,
- OPJ_UINT32 * p_header_size,
- opj_event_mgr_t * p_manager );
+static opj_bool opj_j2k_read_SPCod_SPCoc( opj_j2k_v2_t *p_j2k,
+ OPJ_UINT32 compno,
+ OPJ_BYTE * p_header_data,
+ OPJ_UINT32 * p_header_size,
+ opj_event_mgr_t * p_manager );
/**
* Gets the size taken by writing SQcd or SQcc element, i.e. the quantization values of a band in the QCD or QCC.
* @param p_manager the user event manager.
*
*/
-static opj_bool j2k_read_SQcd_SQcc( opj_j2k_v2_t *p_j2k,
- OPJ_UINT32 compno,
- OPJ_BYTE * p_header_data,
- OPJ_UINT32 * p_header_size,
- opj_event_mgr_t * p_manager );
+static opj_bool opj_j2k_read_SQcd_SQcc( opj_j2k_v2_t *p_j2k,
+ OPJ_UINT32 compno,
+ OPJ_BYTE * p_header_data,
+ OPJ_UINT32 * p_header_size,
+ opj_event_mgr_t * p_manager );
/**
* Copies the tile component parameters of all the component from the first tile component.
*
* @param p_j2k the J2k codec.
*/
-static void j2k_copy_tile_component_parameters( opj_j2k_v2_t *p_j2k );
+static void opj_j2k_copy_tile_component_parameters( opj_j2k_v2_t *p_j2k );
/**
* Copies the tile quantization parameters of all the component from the first tile component.
*
* @param p_j2k the J2k codec.
*/
-static void j2k_copy_tile_quantization_parameters( opj_j2k_v2_t *p_j2k );
+static void opj_j2k_copy_tile_quantization_parameters( opj_j2k_v2_t *p_j2k );
/**
* Reads the tiles.
*/
-static opj_bool j2k_decode_tiles ( opj_j2k_v2_t *p_j2k,
- opj_stream_private_t *p_stream,
- opj_event_mgr_t * p_manager);
+static opj_bool opj_j2k_decode_tiles ( opj_j2k_v2_t *p_j2k,
+ opj_stream_private_t *p_stream,
+ opj_event_mgr_t * p_manager);
static opj_bool j2k_pre_write_tile ( opj_j2k_v2_t * p_j2k,
opj_stream_private_t *p_stream,
opj_event_mgr_t * p_manager );
-static opj_bool j2k_update_image_data (opj_tcd_v2_t * p_tcd, OPJ_BYTE * p_data, opj_image_t* p_output_image);
+static opj_bool opj_j2k_update_image_data (opj_tcd_v2_t * p_tcd, OPJ_BYTE * p_data, opj_image_t* p_output_image);
-static void j2k_get_tile_data (opj_tcd_v2_t * p_tcd, OPJ_BYTE * p_data);
+static void opj_j2k_get_tile_data (opj_tcd_v2_t * p_tcd, OPJ_BYTE * p_data);
static opj_bool j2k_post_write_tile (opj_j2k_v2_t * p_j2k,
OPJ_BYTE * p_data,
* @param p_j2k J2K codec.
* @param p_manager the user event manager.
*/
-static opj_bool j2k_get_end_header( opj_j2k_v2_t *p_j2k,
+static opj_bool opj_j2k_get_end_header( opj_j2k_v2_t *p_j2k,
struct opj_stream_private *p_stream,
struct opj_event_mgr * p_manager );
+static opj_bool opj_j2k_allocate_tile_element_cstr_index(opj_j2k_v2_t *p_j2k);
+
/*
* -----------------------------------------------------------------------
* -----------------------------------------------------------------------
* @param p_header_size the size of the data contained in the SOC marker.
* @param p_manager the user event manager.
*/
-static opj_bool opj_j2k_read_soc(
- opj_j2k_v2_t *p_j2k,
- struct opj_stream_private *p_stream,
- struct opj_event_mgr * p_manager
- );
+static opj_bool opj_j2k_read_soc( opj_j2k_v2_t *p_j2k,
+ opj_stream_private_t *p_stream,
+ opj_event_mgr_t * p_manager );
/**
Write the SIZ marker (image and tile size)
struct opj_stream_private *p_stream,
struct opj_event_mgr * p_manager );
-/**
-Read the SIZ marker (image and tile size)
-@param j2k J2K handle
-*/
-static void j2k_read_siz(opj_j2k_t *j2k);
-
/**
* Reads a SIZ marker (image and tile size)
* @param p_header_data the data contained in the SIZ box.
* @param p_header_size the size of the data contained in the SIZ marker.
* @param p_manager the user event manager.
*/
-static opj_bool j2k_read_siz_v2 (
- opj_j2k_v2_t *p_j2k,
- OPJ_BYTE * p_header_data,
- OPJ_UINT32 p_header_size,
- struct opj_event_mgr * p_manager
- );
+static opj_bool opj_j2k_read_siz(opj_j2k_v2_t *p_j2k,
+ OPJ_BYTE * p_header_data,
+ OPJ_UINT32 p_header_size,
+ opj_event_mgr_t * p_manager);
/**
Write the COM marker (comment)
struct opj_stream_private *p_stream,
struct opj_event_mgr * p_manager );
-/**
-Read the COM marker (comment)
-@param j2k J2K handle
-*/
-static void j2k_read_com(opj_j2k_t *j2k);
/**
* Reads a COM marker (comments)
* @param p_header_data the data contained in the COM box.
* @param p_header_size the size of the data contained in the COM marker.
* @param p_manager the user event manager.
*/
-static opj_bool j2k_read_com_v2 (
- opj_j2k_v2_t *p_j2k,
- OPJ_BYTE * p_header_data,
- OPJ_UINT32 p_header_size,
- struct opj_event_mgr * p_manager
- );
+static opj_bool opj_j2k_read_com ( opj_j2k_v2_t *p_j2k,
+ OPJ_BYTE * p_header_data,
+ OPJ_UINT32 p_header_size,
+ opj_event_mgr_t * p_manager );
/**
Write the value concerning the specified component in the marker COD and COC
@param j2k J2K handle
@param compno Number of the component concerned by the information written
*/
static void j2k_write_cox(opj_j2k_t *j2k, int compno);
-/**
-Read the value concerning the specified component in the marker COD and COC
-@param j2k J2K handle
-@param compno Number of the component concerned by the information read
-*/
-static void j2k_read_cox(opj_j2k_t *j2k, int compno);
+
/**
Write the COD marker (coding style default)
@param j2k J2K handle
struct opj_stream_private *p_stream,
struct opj_event_mgr * p_manager );
-/**
-Read the COD marker (coding style default)
-@param j2k J2K handle
-*/
-static void j2k_read_cod(opj_j2k_t *j2k);
-
/**
* Reads a COD marker (Coding Styke defaults)
* @param p_header_data the data contained in the COD box.
* @param p_header_size the size of the data contained in the COD marker.
* @param p_manager the user event manager.
*/
-static opj_bool j2k_read_cod_v2 (
- opj_j2k_v2_t *p_j2k,
- OPJ_BYTE * p_header_data,
- OPJ_UINT32 p_header_size,
- struct opj_event_mgr * p_manager
- );
+static opj_bool opj_j2k_read_cod ( opj_j2k_v2_t *p_j2k,
+ OPJ_BYTE * p_header_data,
+ OPJ_UINT32 p_header_size,
+ opj_event_mgr_t * p_manager);
/**
Write the COC marker (coding style component)
*/
static OPJ_UINT32 j2k_get_max_coc_size(opj_j2k_v2_t *p_j2k);
-/**
-Read the COC marker (coding style component)
-@param j2k J2K handle
-*/
-static void j2k_read_coc(opj_j2k_t *j2k);
/**
* Reads a COC marker (Coding Style Component)
* @param p_header_size the size of the data contained in the COC marker.
* @param p_manager the user event manager.
*/
-static opj_bool j2k_read_coc_v2 (
- opj_j2k_v2_t *p_j2k,
- OPJ_BYTE * p_header_data,
- OPJ_UINT32 p_header_size,
- struct opj_event_mgr * p_manager
- );
+static opj_bool opj_j2k_read_coc ( opj_j2k_v2_t *p_j2k,
+ OPJ_BYTE * p_header_data,
+ OPJ_UINT32 p_header_size,
+ opj_event_mgr_t * p_manager );
/**
Write the value concerning the specified component in the marker QCD and QCC
@param compno Number of the component concerned by the information written
*/
static void j2k_write_qcx(opj_j2k_t *j2k, int compno);
-/**
-Read the value concerning the specified component in the marker QCD and QCC
-@param j2k J2K handle
-@param compno Number of the component concern by the information read
-@param len Length of the information in the QCX part of the marker QCD/QCC
-*/
-static void j2k_read_qcx(opj_j2k_t *j2k, int compno, int len);
+
/**
Write the QCD marker (quantization default)
@param j2k J2K handle
struct opj_stream_private *p_stream,
struct opj_event_mgr * p_manager );
-/**
-Read the QCD marker (quantization default)
-@param j2k J2K handle
-*/
-static void j2k_read_qcd(opj_j2k_t *j2k);
-
/**
* Reads a QCD marker (Quantization defaults)
* @param p_header_data the data contained in the QCD box.
* @param p_header_size the size of the data contained in the QCD marker.
* @param p_manager the user event manager.
*/
-static opj_bool j2k_read_qcd_v2 (
- opj_j2k_v2_t *p_j2k,
- OPJ_BYTE * p_header_data,
- OPJ_UINT32 p_header_size,
- struct opj_event_mgr * p_manager
- );
+static opj_bool opj_j2k_read_qcd ( opj_j2k_v2_t *p_j2k,
+ OPJ_BYTE * p_header_data,
+ OPJ_UINT32 p_header_size,
+ opj_event_mgr_t * p_manager );
/**
Write the QCC marker (quantization component)
*/
static OPJ_UINT32 j2k_get_max_qcc_size (opj_j2k_v2_t *p_j2k);
-/**
-Read the QCC marker (quantization component)
-@param j2k J2K handle
-*/
-static void j2k_read_qcc(opj_j2k_t *j2k);
/**
* Reads a QCC marker (Quantization component)
* @param p_header_data the data contained in the QCC box.
* @param p_header_size the size of the data contained in the QCC marker.
* @param p_manager the user event manager.
*/
-static opj_bool j2k_read_qcc_v2(
- opj_j2k_v2_t *p_j2k,
- OPJ_BYTE * p_header_data,
- OPJ_UINT32 p_header_size,
- struct opj_event_mgr * p_manager);
+static opj_bool opj_j2k_read_qcc( opj_j2k_v2_t *p_j2k,
+ OPJ_BYTE * p_header_data,
+ OPJ_UINT32 p_header_size,
+ opj_event_mgr_t * p_manager);
/**
Write the POC marker (progression order change)
*/
static OPJ_UINT32 j2k_get_specific_header_sizes(opj_j2k_v2_t *p_j2k);
-/**
-Read the POC marker (progression order change)
-@param j2k J2K handle
-*/
-static void j2k_read_poc(opj_j2k_t *j2k);
/**
* Reads a POC marker (Progression Order Change)
*
* @param p_header_size the size of the data contained in the POC marker.
* @param p_manager the user event manager.
*/
-static opj_bool j2k_read_poc_v2 (
- opj_j2k_v2_t *p_j2k,
- OPJ_BYTE * p_header_data,
- OPJ_UINT32 p_header_size,
- struct opj_event_mgr * p_manager
- );
+static opj_bool opj_j2k_read_poc ( opj_j2k_v2_t *p_j2k,
+ OPJ_BYTE * p_header_data,
+ OPJ_UINT32 p_header_size,
+ opj_event_mgr_t * p_manager );
-/**
-Read the CRG marker (component registration)
-@param j2k J2K handle
-*/
-static void j2k_read_crg(opj_j2k_t *j2k);
/**
* Reads a CRG marker (Component registration)
*
* @param p_header_size the size of the data contained in the TLM marker.
* @param p_manager the user event manager.
*/
-static opj_bool j2k_read_crg_v2 (
- opj_j2k_v2_t *p_j2k,
- OPJ_BYTE * p_header_data,
- OPJ_UINT32 p_header_size,
- struct opj_event_mgr * p_manager
- );
-/**
-Read the TLM marker (tile-part lengths)
-@param j2k J2K handle
-*/
-static void j2k_read_tlm(opj_j2k_t *j2k);
+static opj_bool opj_j2k_read_crg ( opj_j2k_v2_t *p_j2k,
+ OPJ_BYTE * p_header_data,
+ OPJ_UINT32 p_header_size,
+ opj_event_mgr_t * p_manager );
/**
* Reads a TLM marker (Tile Length Marker)
*
* @param p_header_size the size of the data contained in the TLM marker.
* @param p_manager the user event manager.
*/
-static opj_bool j2k_read_tlm_v2 (
- opj_j2k_v2_t *p_j2k,
- OPJ_BYTE * p_header_data,
- OPJ_UINT32 p_header_size,
- struct opj_event_mgr * p_manager
- );
+static opj_bool opj_j2k_read_tlm ( opj_j2k_v2_t *p_j2k,
+ OPJ_BYTE * p_header_data,
+ OPJ_UINT32 p_header_size,
+ opj_event_mgr_t * p_manager);
/**
* Writes the updated tlm.
struct opj_stream_private *p_stream,
struct opj_event_mgr * p_manager );
-/**
-Read the PLM marker (packet length, main header)
-@param j2k J2K handle
-*/
-static void j2k_read_plm(opj_j2k_t *j2k);
-
/**
* Reads a PLM marker (Packet length, main header marker)
*
* @param p_header_size the size of the data contained in the TLM marker.
* @param p_manager the user event manager.
*/
-static opj_bool j2k_read_plm_v2 (
- opj_j2k_v2_t *p_j2k,
- OPJ_BYTE * p_header_data,
- OPJ_UINT32 p_header_size,
- struct opj_event_mgr * p_manager
- );
-/**
-Read the PLT marker (packet length, tile-part header)
-@param j2k J2K handle
-*/
-static void j2k_read_plt(opj_j2k_t *j2k);
+static opj_bool opj_j2k_read_plm ( opj_j2k_v2_t *p_j2k,
+ OPJ_BYTE * p_header_data,
+ OPJ_UINT32 p_header_size,
+ opj_event_mgr_t * p_manager);
/**
* Reads a PLT marker (Packet length, tile-part header)
*
* @param p_header_size the size of the data contained in the PLT marker.
* @param p_manager the user event manager.
*/
-static opj_bool j2k_read_plt_v2 (
- opj_j2k_v2_t *p_j2k,
- OPJ_BYTE * p_header_data,
- OPJ_UINT32 p_header_size,
- struct opj_event_mgr * p_manager
- );
-/**
-Read the PPM marker (packet packet headers, main header)
-@param j2k J2K handle
-*/
-static void j2k_read_ppm(opj_j2k_t *j2k);
+static opj_bool opj_j2k_read_plt ( opj_j2k_v2_t *p_j2k,
+ OPJ_BYTE * p_header_data,
+ OPJ_UINT32 p_header_size,
+ opj_event_mgr_t * p_manager );
+
+
/**
* Reads a PPM marker (Packed packet headers, main header)
*
struct opj_event_mgr * p_manager
);
-/**
-Read the PPT marker (packet packet headers, tile-part header)
-@param j2k J2K handle
-*/
-static void j2k_read_ppt(opj_j2k_t *j2k);
+
/**
* Reads a PPT marker (Packed packet headers, tile-part header)
*
* @param p_header_size the size of the data contained in the PPT marker.
* @param p_manager the user event manager.
*/
-static opj_bool j2k_read_ppt_v2 (
- opj_j2k_v2_t *p_j2k,
- OPJ_BYTE * p_header_data,
- OPJ_UINT32 p_header_size,
- struct opj_event_mgr * p_manager
- );
+static opj_bool opj_j2k_read_ppt ( opj_j2k_v2_t *p_j2k,
+ OPJ_BYTE * p_header_data,
+ OPJ_UINT32 p_header_size,
+ opj_event_mgr_t * p_manager );
/**
Write the TLM marker (Mainheader)
@param j2k J2K handle
const struct opj_stream_private *p_stream,
struct opj_event_mgr * p_manager );
-/**
-Read the SOD marker (start of data)
-@param j2k J2K handle
-*/
-static void j2k_read_sod(opj_j2k_t *j2k);
-
/**
* Reads a SOD marker (Start Of Data)
*
* @param p_header_size the size of the data contained in the SOD marker.
* @param p_manager the user event manager.
*/
-static opj_bool j2k_read_sod_v2 (
- opj_j2k_v2_t *p_j2k,
- struct opj_stream_private *p_stream,
- struct opj_event_mgr * p_manager
- );
+static opj_bool opj_j2k_read_sod( opj_j2k_v2_t *p_j2k,
+ opj_stream_private_t *p_stream,
+ opj_event_mgr_t * p_manager );
/**
* Updates the Tile Length Marker.
struct opj_stream_private *p_stream,
struct opj_event_mgr * p_manager );
-/**
-Read the RGN marker (region-of-interest)
-@param j2k J2K handle
-*/
-static void j2k_read_rgn(opj_j2k_t *j2k);
-
/**
* Reads a RGN marker (Region Of Interest)
*
* @param p_header_size the size of the data contained in the POC marker.
* @param p_manager the user event manager.
*/
-static opj_bool j2k_read_rgn_v2 (
- opj_j2k_v2_t *p_j2k,
- OPJ_BYTE * p_header_data,
- OPJ_UINT32 p_header_size,
- struct opj_event_mgr * p_manager
- ) ;
+static opj_bool opj_j2k_read_rgn (opj_j2k_v2_t *p_j2k,
+ OPJ_BYTE * p_header_data,
+ OPJ_UINT32 p_header_size,
+ opj_event_mgr_t * p_manager );
/**
* Writes the EOC marker (End of Codestream)
struct opj_stream_private *p_stream,
struct opj_event_mgr * p_manager );
-/**
-Read an unknown marker
-@param j2k J2K handle
-*/
-static void j2k_read_unk(opj_j2k_t *j2k);
/**
Add main header marker information
@param cstr_info Codestream information structure
*
* @return true if the marker could be deduced.
*/
-static opj_bool j2k_read_unk_v2 ( opj_j2k_v2_t *p_j2k,
- struct opj_stream_private *p_stream,
+static opj_bool opj_j2k_read_unk ( opj_j2k_v2_t *p_j2k,
+ opj_stream_private_t *p_stream,
OPJ_UINT32 *output_marker,
- struct opj_event_mgr * p_manager );
+ opj_event_mgr_t * p_manager );
/**
* Writes the MCT marker (Multiple Component Transform)
* @param p_header_size the size of the data contained in the MCT marker.
* @param p_manager the user event manager.
*/
-static opj_bool j2k_read_mct ( opj_j2k_v2_t *p_j2k,
- OPJ_BYTE * p_header_data,
- OPJ_UINT32 p_header_size,
- struct opj_event_mgr * p_manager );
+static opj_bool opj_j2k_read_mct ( opj_j2k_v2_t *p_j2k,
+ OPJ_BYTE * p_header_data,
+ OPJ_UINT32 p_header_size,
+ opj_event_mgr_t * p_manager );
/**
* Writes the MCC marker (Multiple Component Collection)
* @param p_header_size the size of the data contained in the MCC marker.
* @param p_manager the user event manager.
*/
-static opj_bool j2k_read_mcc ( opj_j2k_v2_t *p_j2k,
- OPJ_BYTE * p_header_data,
- OPJ_UINT32 p_header_size,
- struct opj_event_mgr * p_manager );
+static opj_bool opj_j2k_read_mcc ( opj_j2k_v2_t *p_j2k,
+ OPJ_BYTE * p_header_data,
+ OPJ_UINT32 p_header_size,
+ opj_event_mgr_t * p_manager );
/**
* Writes the MCO marker (Multiple component transformation ordering)
* @param p_header_size the size of the data contained in the MCO marker.
* @param p_manager the user event manager.
*/
-static opj_bool j2k_read_mco ( opj_j2k_v2_t *p_j2k,
- OPJ_BYTE * p_header_data,
- OPJ_UINT32 p_header_size,
- struct opj_event_mgr * p_manager );
+static opj_bool opj_j2k_read_mco ( opj_j2k_v2_t *p_j2k,
+ OPJ_BYTE * p_header_data,
+ OPJ_UINT32 p_header_size,
+ opj_event_mgr_t * p_manager );
static opj_bool j2k_add_mct(opj_tcp_v2_t * p_tcp, opj_image_t * p_image, OPJ_UINT32 p_index);
-static void j2k_read_int16_to_float (const void * p_src_data, void * p_dest_data, OPJ_UINT32 p_nb_elem);
-static void j2k_read_int32_to_float (const void * p_src_data, void * p_dest_data, OPJ_UINT32 p_nb_elem);
-static void j2k_read_float32_to_float (const void * p_src_data, void * p_dest_data, OPJ_UINT32 p_nb_elem);
-static void j2k_read_float64_to_float (const void * p_src_data, void * p_dest_data, OPJ_UINT32 p_nb_elem);
+static void opj_j2k_read_int16_to_float (const void * p_src_data, void * p_dest_data, OPJ_UINT32 p_nb_elem);
+static void opj_j2k_read_int32_to_float (const void * p_src_data, void * p_dest_data, OPJ_UINT32 p_nb_elem);
+static void opj_j2k_read_float32_to_float (const void * p_src_data, void * p_dest_data, OPJ_UINT32 p_nb_elem);
+static void opj_j2k_read_float64_to_float (const void * p_src_data, void * p_dest_data, OPJ_UINT32 p_nb_elem);
-static void j2k_read_int16_to_int32 (const void * p_src_data, void * p_dest_data, OPJ_UINT32 p_nb_elem);
-static void j2k_read_int32_to_int32 (const void * p_src_data, void * p_dest_data, OPJ_UINT32 p_nb_elem);
-static void j2k_read_float32_to_int32 (const void * p_src_data, void * p_dest_data, OPJ_UINT32 p_nb_elem);
-static void j2k_read_float64_to_int32 (const void * p_src_data, void * p_dest_data, OPJ_UINT32 p_nb_elem);
+static void opj_j2k_read_int16_to_int32 (const void * p_src_data, void * p_dest_data, OPJ_UINT32 p_nb_elem);
+static void opj_j2k_read_int32_to_int32 (const void * p_src_data, void * p_dest_data, OPJ_UINT32 p_nb_elem);
+static void opj_j2k_read_float32_to_int32 (const void * p_src_data, void * p_dest_data, OPJ_UINT32 p_nb_elem);
+static void opj_j2k_read_float64_to_int32 (const void * p_src_data, void * p_dest_data, OPJ_UINT32 p_nb_elem);
-static void j2k_write_float_to_int16 (const void * p_src_data, void * p_dest_data, OPJ_UINT32 p_nb_elem);
-static void j2k_write_float_to_int32 (const void * p_src_data, void * p_dest_data, OPJ_UINT32 p_nb_elem);
-static void j2k_write_float_to_float (const void * p_src_data, void * p_dest_data, OPJ_UINT32 p_nb_elem);
-static void j2k_write_float_to_float64 (const void * p_src_data, void * p_dest_data, OPJ_UINT32 p_nb_elem);
+static void opj_j2k_write_float_to_int16 (const void * p_src_data, void * p_dest_data, OPJ_UINT32 p_nb_elem);
+static void opj_j2k_write_float_to_int32 (const void * p_src_data, void * p_dest_data, OPJ_UINT32 p_nb_elem);
+static void opj_j2k_write_float_to_float (const void * p_src_data, void * p_dest_data, OPJ_UINT32 p_nb_elem);
+static void opj_j2k_write_float_to_float64 (const void * p_src_data, void * p_dest_data, OPJ_UINT32 p_nb_elem);
/**
* @param p_header_size the size of the data contained in the CBD marker.
* @param p_manager the user event manager.
*/
-static opj_bool j2k_read_cbd ( opj_j2k_v2_t *p_j2k,
- OPJ_BYTE * p_header_data,
- OPJ_UINT32 p_header_size,
- struct opj_event_mgr * p_manager);
+static opj_bool opj_j2k_read_cbd ( opj_j2k_v2_t *p_j2k,
+ OPJ_BYTE * p_header_data,
+ OPJ_UINT32 p_header_size,
+ opj_event_mgr_t * p_manager);
/**
* Writes the image components.
opj_image_t *image,
opj_event_mgr_t * p_manager);
-static void j2k_dump_MH_info(opj_j2k_v2_t* p_j2k, FILE* out_stream);
+static void opj_j2k_dump_MH_info(opj_j2k_v2_t* p_j2k, FILE* out_stream);
-static void j2k_dump_MH_index(opj_j2k_v2_t* p_j2k, FILE* out_stream);
+static void opj_j2k_dump_MH_index(opj_j2k_v2_t* p_j2k, FILE* out_stream);
-static opj_codestream_index_t* j2k_create_cstr_index(void);
+static opj_codestream_index_t* opj_j2k_create_cstr_index(void);
/*@}*/
8
};
-typedef void (* j2k_mct_function) (const void * p_src_data, void * p_dest_data, OPJ_UINT32 p_nb_elem);
+typedef void (* opj_j2k_mct_function) (const void * p_src_data, void * p_dest_data, OPJ_UINT32 p_nb_elem);
-const j2k_mct_function j2k_mct_read_functions_to_float [] =
+const opj_j2k_mct_function j2k_mct_read_functions_to_float [] =
{
- j2k_read_int16_to_float,
- j2k_read_int32_to_float,
- j2k_read_float32_to_float,
- j2k_read_float64_to_float
+ opj_j2k_read_int16_to_float,
+ opj_j2k_read_int32_to_float,
+ opj_j2k_read_float32_to_float,
+ opj_j2k_read_float64_to_float
};
-const j2k_mct_function j2k_mct_read_functions_to_int32 [] =
+const opj_j2k_mct_function j2k_mct_read_functions_to_int32 [] =
{
- j2k_read_int16_to_int32,
- j2k_read_int32_to_int32,
- j2k_read_float32_to_int32,
- j2k_read_float64_to_int32
+ opj_j2k_read_int16_to_int32,
+ opj_j2k_read_int32_to_int32,
+ opj_j2k_read_float32_to_int32,
+ opj_j2k_read_float64_to_int32
};
-const j2k_mct_function j2k_mct_write_functions_from_float [] =
+const opj_j2k_mct_function j2k_mct_write_functions_from_float [] =
{
- j2k_write_float_to_int16,
- j2k_write_float_to_int32,
- j2k_write_float_to_float,
- j2k_write_float_to_float64
+ opj_j2k_write_float_to_int16,
+ opj_j2k_write_float_to_int32,
+ opj_j2k_write_float_to_float,
+ opj_j2k_write_float_to_float64
};
typedef struct opj_dec_memory_marker_handler
{J2K_MS_MCO, J2K_DEC_STATE_MH | J2K_DEC_STATE_TPH, j2k_read_mco},
#endif
{J2K_MS_SOT, J2K_STATE_MH | J2K_STATE_TPHSOT, opj_j2k_read_sot},
- {J2K_MS_COD, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_cod_v2},
- {J2K_MS_COC, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_coc_v2},
- {J2K_MS_RGN, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_rgn_v2},
- {J2K_MS_QCD, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_qcd_v2},
- {J2K_MS_QCC, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_qcc_v2},
- {J2K_MS_POC, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_poc_v2},
- {J2K_MS_SIZ, J2K_STATE_MHSIZ , j2k_read_siz_v2},
- {J2K_MS_TLM, J2K_STATE_MH, j2k_read_tlm_v2},
- {J2K_MS_PLM, J2K_STATE_MH, j2k_read_plm_v2},
- {J2K_MS_PLT, J2K_STATE_TPH, j2k_read_plt_v2},
+ {J2K_MS_COD, J2K_STATE_MH | J2K_STATE_TPH, opj_j2k_read_cod},
+ {J2K_MS_COC, J2K_STATE_MH | J2K_STATE_TPH, opj_j2k_read_coc},
+ {J2K_MS_RGN, J2K_STATE_MH | J2K_STATE_TPH, opj_j2k_read_rgn},
+ {J2K_MS_QCD, J2K_STATE_MH | J2K_STATE_TPH, opj_j2k_read_qcd},
+ {J2K_MS_QCC, J2K_STATE_MH | J2K_STATE_TPH, opj_j2k_read_qcc},
+ {J2K_MS_POC, J2K_STATE_MH | J2K_STATE_TPH, opj_j2k_read_poc},
+ {J2K_MS_SIZ, J2K_STATE_MHSIZ, opj_j2k_read_siz},
+ {J2K_MS_TLM, J2K_STATE_MH, opj_j2k_read_tlm},
+ {J2K_MS_PLM, J2K_STATE_MH, opj_j2k_read_plm},
+ {J2K_MS_PLT, J2K_STATE_TPH, opj_j2k_read_plt},
{J2K_MS_PPM, J2K_STATE_MH, j2k_read_ppm_v3},
- {J2K_MS_PPT, J2K_STATE_TPH, j2k_read_ppt_v2},
+ {J2K_MS_PPT, J2K_STATE_TPH, opj_j2k_read_ppt},
{J2K_MS_SOP, 0, 0},
- {J2K_MS_CRG, J2K_STATE_MH, j2k_read_crg_v2},
- {J2K_MS_COM, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_com_v2},
- {J2K_MS_MCT, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_mct},
- {J2K_MS_CBD, J2K_STATE_MH , j2k_read_cbd},
- {J2K_MS_MCC, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_mcc},
- {J2K_MS_MCO, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_mco},
+ {J2K_MS_CRG, J2K_STATE_MH, opj_j2k_read_crg},
+ {J2K_MS_COM, J2K_STATE_MH | J2K_STATE_TPH, opj_j2k_read_com},
+ {J2K_MS_MCT, J2K_STATE_MH | J2K_STATE_TPH, opj_j2k_read_mct},
+ {J2K_MS_CBD, J2K_STATE_MH , opj_j2k_read_cbd},
+ {J2K_MS_MCC, J2K_STATE_MH | J2K_STATE_TPH, opj_j2k_read_mcc},
+ {J2K_MS_MCO, J2K_STATE_MH | J2K_STATE_TPH, opj_j2k_read_mco},
#ifdef USE_JPWL
#ifdef TODO_MS /* FIXME */
{J2K_MS_EPC, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_epc},
-void j2k_read_int16_to_float (const void * p_src_data, void * p_dest_data, OPJ_UINT32 p_nb_elem)
+void opj_j2k_read_int16_to_float (const void * p_src_data, void * p_dest_data, OPJ_UINT32 p_nb_elem)
{
OPJ_BYTE * l_src_data = (OPJ_BYTE *) p_src_data;
OPJ_FLOAT32 * l_dest_data = (OPJ_FLOAT32 *) p_dest_data;
}
}
-void j2k_read_int32_to_float (const void * p_src_data, void * p_dest_data, OPJ_UINT32 p_nb_elem)
+void opj_j2k_read_int32_to_float (const void * p_src_data, void * p_dest_data, OPJ_UINT32 p_nb_elem)
{
OPJ_BYTE * l_src_data = (OPJ_BYTE *) p_src_data;
OPJ_FLOAT32 * l_dest_data = (OPJ_FLOAT32 *) p_dest_data;
}
}
-void j2k_read_float32_to_float (const void * p_src_data, void * p_dest_data, OPJ_UINT32 p_nb_elem)
+void opj_j2k_read_float32_to_float (const void * p_src_data, void * p_dest_data, OPJ_UINT32 p_nb_elem)
{
OPJ_BYTE * l_src_data = (OPJ_BYTE *) p_src_data;
OPJ_FLOAT32 * l_dest_data = (OPJ_FLOAT32 *) p_dest_data;
}
}
-void j2k_read_float64_to_float (const void * p_src_data, void * p_dest_data, OPJ_UINT32 p_nb_elem)
+void opj_j2k_read_float64_to_float (const void * p_src_data, void * p_dest_data, OPJ_UINT32 p_nb_elem)
{
OPJ_BYTE * l_src_data = (OPJ_BYTE *) p_src_data;
OPJ_FLOAT32 * l_dest_data = (OPJ_FLOAT32 *) p_dest_data;
}
}
-void j2k_read_int16_to_int32 (const void * p_src_data, void * p_dest_data, OPJ_UINT32 p_nb_elem)
+void opj_j2k_read_int16_to_int32 (const void * p_src_data, void * p_dest_data, OPJ_UINT32 p_nb_elem)
{
OPJ_BYTE * l_src_data = (OPJ_BYTE *) p_src_data;
OPJ_INT32 * l_dest_data = (OPJ_INT32 *) p_dest_data;
}
}
-void j2k_read_int32_to_int32 (const void * p_src_data, void * p_dest_data, OPJ_UINT32 p_nb_elem)
+void opj_j2k_read_int32_to_int32 (const void * p_src_data, void * p_dest_data, OPJ_UINT32 p_nb_elem)
{
OPJ_BYTE * l_src_data = (OPJ_BYTE *) p_src_data;
OPJ_INT32 * l_dest_data = (OPJ_INT32 *) p_dest_data;
}
}
-void j2k_read_float32_to_int32 (const void * p_src_data, void * p_dest_data, OPJ_UINT32 p_nb_elem)
+void opj_j2k_read_float32_to_int32 (const void * p_src_data, void * p_dest_data, OPJ_UINT32 p_nb_elem)
{
OPJ_BYTE * l_src_data = (OPJ_BYTE *) p_src_data;
OPJ_INT32 * l_dest_data = (OPJ_INT32 *) p_dest_data;
}
}
-void j2k_read_float64_to_int32 (const void * p_src_data, void * p_dest_data, OPJ_UINT32 p_nb_elem)
+void opj_j2k_read_float64_to_int32 (const void * p_src_data, void * p_dest_data, OPJ_UINT32 p_nb_elem)
{
OPJ_BYTE * l_src_data = (OPJ_BYTE *) p_src_data;
OPJ_INT32 * l_dest_data = (OPJ_INT32 *) p_dest_data;
}
}
-void j2k_write_float_to_int16 (const void * p_src_data, void * p_dest_data, OPJ_UINT32 p_nb_elem)
+void opj_j2k_write_float_to_int16 (const void * p_src_data, void * p_dest_data, OPJ_UINT32 p_nb_elem)
{
OPJ_BYTE * l_dest_data = (OPJ_BYTE *) p_dest_data;
OPJ_FLOAT32 * l_src_data = (OPJ_FLOAT32 *) p_src_data;
}
}
-void j2k_write_float_to_int32 (const void * p_src_data, void * p_dest_data, OPJ_UINT32 p_nb_elem)
+void opj_j2k_write_float_to_int32 (const void * p_src_data, void * p_dest_data, OPJ_UINT32 p_nb_elem)
{
OPJ_BYTE * l_dest_data = (OPJ_BYTE *) p_dest_data;
OPJ_FLOAT32 * l_src_data = (OPJ_FLOAT32 *) p_src_data;
}
}
-void j2k_write_float_to_float (const void * p_src_data, void * p_dest_data, OPJ_UINT32 p_nb_elem)
+void opj_j2k_write_float_to_float (const void * p_src_data, void * p_dest_data, OPJ_UINT32 p_nb_elem)
{
OPJ_BYTE * l_dest_data = (OPJ_BYTE *) p_dest_data;
OPJ_FLOAT32 * l_src_data = (OPJ_FLOAT32 *) p_src_data;
}
}
-void j2k_write_float_to_float64 (const void * p_src_data, void * p_dest_data, OPJ_UINT32 p_nb_elem)
+void opj_j2k_write_float_to_float64 (const void * p_src_data, void * p_dest_data, OPJ_UINT32 p_nb_elem)
{
OPJ_BYTE * l_dest_data = (OPJ_BYTE *) p_dest_data;
OPJ_FLOAT32 * l_src_data = (OPJ_FLOAT32 *) p_src_data;
* @param p_header_size the size of the data contained in the SOC marker.
* @param p_manager the user event manager.
*/
-static opj_bool opj_j2k_read_soc( opj_j2k_v2_t *p_j2k,
- struct opj_stream_private *p_stream,
- struct opj_event_mgr * p_manager )
+static opj_bool opj_j2k_read_soc( opj_j2k_v2_t *p_j2k,
+ opj_stream_private_t *p_stream,
+ opj_event_mgr_t * p_manager
+ )
{
OPJ_BYTE l_data [2];
OPJ_UINT32 l_marker;
return OPJ_TRUE;
}
-static void j2k_read_siz(opj_j2k_t *j2k) {
- int len;
- OPJ_UINT32 i;
-
- opj_cio_t *cio = j2k->cio;
- opj_image_t *image = j2k->image;
- opj_cp_t *cp = j2k->cp;
-
- len = cio_read(cio, 2); /* Lsiz */
- cio_read(cio, 2); /* Rsiz (capabilities) */
- image->x1 = cio_read(cio, 4); /* Xsiz */
- image->y1 = cio_read(cio, 4); /* Ysiz */
- image->x0 = cio_read(cio, 4); /* X0siz */
- image->y0 = cio_read(cio, 4); /* Y0siz */
- cp->tdx = cio_read(cio, 4); /* XTsiz */
- cp->tdy = cio_read(cio, 4); /* YTsiz */
- cp->tx0 = cio_read(cio, 4); /* XT0siz */
- cp->ty0 = cio_read(cio, 4); /* YT0siz */
-
- /* the following code triggers: */
- /* warning: comparison of unsigned expression < 0 is always false */
-#if 0
- if ((image->x0<0)||(image->x1<0)||(image->y0<0)||(image->y1<0)) {
- opj_event_msg(j2k->cinfo, EVT_ERROR,
- "%s: invalid image size (x0:%d, x1:%d, y0:%d, y1:%d)\n",
- image->x0,image->x1,image->y0,image->y1);
- return;
- }
-#endif
-
- image->numcomps = cio_read(cio, 2); /* Csiz */
-
-#ifdef USE_JPWL
- if (j2k->cp->correct) {
- /* if JPWL is on, we check whether TX errors have damaged
- too much the SIZ parameters */
- if (!(image->x1 * image->y1)) {
- opj_event_msg(j2k->cinfo, EVT_ERROR,
- "JPWL: bad image size (%d x %d)\n",
- image->x1, image->y1);
- if (!JPWL_ASSUME || JPWL_ASSUME) {
- opj_event_msg(j2k->cinfo, EVT_ERROR, "JPWL: giving up\n");
- return;
- }
- }
- assert( len >= 38 );
- if (image->numcomps != (OPJ_UINT32)((len - 38) / 3)) {
- opj_event_msg(j2k->cinfo, JPWL_ASSUME ? EVT_WARNING : EVT_ERROR,
- "JPWL: Csiz is %d => space in SIZ only for %d comps.!!!\n",
- image->numcomps, ((len - 38) / 3));
- if (!JPWL_ASSUME) {
- opj_event_msg(j2k->cinfo, EVT_ERROR, "JPWL: giving up\n");
- return;
- }
- /* we try to correct */
- opj_event_msg(j2k->cinfo, EVT_WARNING, "- trying to adjust this\n");
- if (image->numcomps < (OPJ_UINT32)((len - 38) / 3)) {
- len = 38 + 3 * image->numcomps;
- opj_event_msg(j2k->cinfo, EVT_WARNING, "- setting Lsiz to %d => HYPOTHESIS!!!\n",
- len);
- } else {
- image->numcomps = ((len - 38) / 3);
- opj_event_msg(j2k->cinfo, EVT_WARNING, "- setting Csiz to %d => HYPOTHESIS!!!\n",
- image->numcomps);
- }
- }
-
- /* update components number in the jpwl_exp_comps filed */
- cp->exp_comps = image->numcomps;
- }
-#endif /* USE_JPWL */
-
- image->comps = (opj_image_comp_t*) opj_calloc(image->numcomps, sizeof(opj_image_comp_t));
- for (i = 0; i < image->numcomps; i++) {
- int tmp, w, h;
- tmp = cio_read(cio, 1); /* Ssiz_i */
- image->comps[i].prec = (tmp & 0x7f) + 1;
- image->comps[i].sgnd = tmp >> 7;
- image->comps[i].dx = cio_read(cio, 1); /* XRsiz_i */
- image->comps[i].dy = cio_read(cio, 1); /* YRsiz_i */
-
-#ifdef USE_JPWL
- if (j2k->cp->correct) {
- /* if JPWL is on, we check whether TX errors have damaged
- too much the SIZ parameters, again */
- if (!(image->comps[i].dx * image->comps[i].dy)) {
- opj_event_msg(j2k->cinfo, JPWL_ASSUME ? EVT_WARNING : EVT_ERROR,
- "JPWL: bad XRsiz_%d/YRsiz_%d (%d x %d)\n",
- i, i, image->comps[i].dx, image->comps[i].dy);
- if (!JPWL_ASSUME) {
- opj_event_msg(j2k->cinfo, EVT_ERROR, "JPWL: giving up\n");
- return;
- }
- /* we try to correct */
- opj_event_msg(j2k->cinfo, EVT_WARNING, "- trying to adjust them\n");
- if (!image->comps[i].dx) {
- image->comps[i].dx = 1;
- opj_event_msg(j2k->cinfo, EVT_WARNING, "- setting XRsiz_%d to %d => HYPOTHESIS!!!\n",
- i, image->comps[i].dx);
- }
- if (!image->comps[i].dy) {
- image->comps[i].dy = 1;
- opj_event_msg(j2k->cinfo, EVT_WARNING, "- setting YRsiz_%d to %d => HYPOTHESIS!!!\n",
- i, image->comps[i].dy);
- }
- }
-
- }
-#endif /* USE_JPWL */
-
- /* TODO: unused ? */
- w = int_ceildiv(image->x1 - image->x0, image->comps[i].dx);
- h = int_ceildiv(image->y1 - image->y0, image->comps[i].dy);
-
- image->comps[i].resno_decoded = 0; /* number of resolution decoded */
- image->comps[i].factor = cp->reduce; /* reducing factor per component */
- }
-
- cp->tw = int_ceildiv(image->x1 - cp->tx0, cp->tdx);
- cp->th = int_ceildiv(image->y1 - cp->ty0, cp->tdy);
-
-#ifdef USE_JPWL
- if (j2k->cp->correct) {
- /* if JPWL is on, we check whether TX errors have damaged
- too much the SIZ parameters */
- if ((cp->tw < 1) || (cp->th < 1) || (cp->tw > cp->max_tiles) || (cp->th > cp->max_tiles)) {
- opj_event_msg(j2k->cinfo, JPWL_ASSUME ? EVT_WARNING : EVT_ERROR,
- "JPWL: bad number of tiles (%d x %d)\n",
- cp->tw, cp->th);
- if (!JPWL_ASSUME) {
- opj_event_msg(j2k->cinfo, EVT_ERROR, "JPWL: giving up\n");
- return;
- }
- /* we try to correct */
- opj_event_msg(j2k->cinfo, EVT_WARNING, "- trying to adjust them\n");
- if (cp->tw < 1) {
- cp->tw= 1;
- opj_event_msg(j2k->cinfo, EVT_WARNING, "- setting %d tiles in x => HYPOTHESIS!!!\n",
- cp->tw);
- }
- if (cp->tw > cp->max_tiles) {
- cp->tw= 1;
- opj_event_msg(j2k->cinfo, EVT_WARNING, "- too large x, increase expectance of %d\n"
- "- setting %d tiles in x => HYPOTHESIS!!!\n",
- cp->max_tiles, cp->tw);
- }
- if (cp->th < 1) {
- cp->th= 1;
- opj_event_msg(j2k->cinfo, EVT_WARNING, "- setting %d tiles in y => HYPOTHESIS!!!\n",
- cp->th);
- }
- if (cp->th > cp->max_tiles) {
- cp->th= 1;
- opj_event_msg(j2k->cinfo, EVT_WARNING, "- too large y, increase expectance of %d to continue\n",
- "- setting %d tiles in y => HYPOTHESIS!!!\n",
- cp->max_tiles, cp->th);
- }
- }
- }
-#endif /* USE_JPWL */
-
- cp->tcps = (opj_tcp_t*) opj_calloc(cp->tw * cp->th, sizeof(opj_tcp_t));
- cp->tileno = (int*) opj_malloc(cp->tw * cp->th * sizeof(int));
- cp->tileno_size = 0;
-
-#ifdef USE_JPWL
- if (j2k->cp->correct) {
- if (!cp->tcps) {
- opj_event_msg(j2k->cinfo, JPWL_ASSUME ? EVT_WARNING : EVT_ERROR,
- "JPWL: could not alloc tcps field of cp\n");
- if (!JPWL_ASSUME || JPWL_ASSUME) {
- opj_event_msg(j2k->cinfo, EVT_ERROR, "JPWL: giving up\n");
- return;
- }
- }
- }
-#endif /* USE_JPWL */
-
- for (i = 0; i < (OPJ_UINT32)cp->tw * cp->th; i++) {
- cp->tcps[i].POC = 0;
- cp->tcps[i].numpocs = 0;
- cp->tcps[i].first = 1;
- }
-
- /* Initialization for PPM marker */
- cp->ppm = 0;
- cp->ppm_data = NULL;
- cp->ppm_data_first = NULL;
- cp->ppm_previous = 0;
- cp->ppm_store = 0;
-
- j2k->default_tcp->tccps = (opj_tccp_t*) opj_calloc(image->numcomps, sizeof(opj_tccp_t));
- for (i = 0; i < (OPJ_UINT32)cp->tw * cp->th; i++) {
- cp->tcps[i].tccps = (opj_tccp_t*) opj_malloc(image->numcomps * sizeof(opj_tccp_t));
- }
- j2k->tile_data = (unsigned char**) opj_calloc(cp->tw * cp->th, sizeof(unsigned char*));
- j2k->tile_len = (int*) opj_calloc(cp->tw * cp->th, sizeof(int));
- j2k->state = J2K_STATE_MH;
-
- /* Index */
- if (j2k->cstr_info) {
- opj_codestream_info_t *cstr_info = j2k->cstr_info;
- cstr_info->image_w = image->x1 - image->x0;
- cstr_info->image_h = image->y1 - image->y0;
- cstr_info->numcomps = image->numcomps;
- cstr_info->tw = cp->tw;
- cstr_info->th = cp->th;
- cstr_info->tile_x = cp->tdx;
- cstr_info->tile_y = cp->tdy;
- cstr_info->tile_Ox = cp->tx0;
- cstr_info->tile_Oy = cp->ty0;
- cstr_info->tile = (opj_tile_info_t*) opj_calloc(cp->tw * cp->th, sizeof(opj_tile_info_t));
- }
-}
/**
* @param p_header_size the size of the data contained in the SIZ marker.
* @param p_manager the user event manager.
*/
-opj_bool j2k_read_siz_v2 (
- opj_j2k_v2_t *p_j2k,
- OPJ_BYTE * p_header_data,
- OPJ_UINT32 p_header_size,
- struct opj_event_mgr * p_manager
- )
+static opj_bool opj_j2k_read_siz(opj_j2k_v2_t *p_j2k,
+ OPJ_BYTE * p_header_data,
+ OPJ_UINT32 p_header_size,
+ opj_event_mgr_t * p_manager
+ )
{
OPJ_UINT32 l_size, i;
OPJ_UINT32 l_nb_comp;
return OPJ_TRUE;
}
-static void j2k_read_com(opj_j2k_t *j2k) {
- int len;
-
- opj_cio_t *cio = j2k->cio;
-
- len = cio_read(cio, 2);
- cio_skip(cio, len - 2);
-}
/**
* Reads a COM marker (comments)
* @param p_header_data the data contained in the COM box.
* @param p_header_size the size of the data contained in the COM marker.
* @param p_manager the user event manager.
*/
-opj_bool j2k_read_com_v2 (
- opj_j2k_v2_t *p_j2k,
- OPJ_BYTE * p_header_data,
- OPJ_UINT32 p_header_size,
- struct opj_event_mgr * p_manager
- )
+static opj_bool opj_j2k_read_com ( opj_j2k_v2_t *p_j2k,
+ OPJ_BYTE * p_header_data,
+ OPJ_UINT32 p_header_size,
+ opj_event_mgr_t * p_manager
+ )
{
/* preconditions */
assert(p_j2k != 00);
}
}
-static void j2k_read_cox(opj_j2k_t *j2k, int compno) {
- OPJ_UINT32 i;
-
- opj_cp_t *cp = j2k->cp;
- opj_tcp_t *tcp = j2k->state == J2K_STATE_TPH ? &cp->tcps[j2k->curtileno] : j2k->default_tcp;
- opj_tccp_t *tccp = &tcp->tccps[compno];
- opj_cio_t *cio = j2k->cio;
-
- tccp->numresolutions = cio_read(cio, 1) + 1; /* SPcox (D) */
-
- /* If user wants to remove more resolutions than the codestream contains, return error*/
- assert(cp->reduce >= 0);
- if ((OPJ_UINT32)cp->reduce >= tccp->numresolutions) {
- opj_event_msg(j2k->cinfo, EVT_ERROR, "Error decoding component %d.\nThe number of resolutions to remove is higher than the number "
- "of resolutions of this component\nModify the cp_reduce parameter.\n\n", compno);
- j2k->state |= J2K_STATE_ERR;
- }
-
- tccp->cblkw = cio_read(cio, 1) + 2; /* SPcox (E) */
- tccp->cblkh = cio_read(cio, 1) + 2; /* SPcox (F) */
- tccp->cblksty = cio_read(cio, 1); /* SPcox (G) */
- tccp->qmfbid = cio_read(cio, 1); /* SPcox (H) */
- if (tccp->csty & J2K_CP_CSTY_PRT) {
- for (i = 0; i < tccp->numresolutions; i++) {
- int tmp = cio_read(cio, 1); /* SPcox (I_i) */
- tccp->prcw[i] = tmp & 0xf;
- tccp->prch[i] = tmp >> 4;
- }
- }
-
- /* INDEX >> */
- if(j2k->cstr_info && compno == 0) {
- for (i = 0; i < tccp->numresolutions; i++) {
- if (tccp->csty & J2K_CP_CSTY_PRT) {
- j2k->cstr_info->tile[j2k->curtileno].pdx[i] = tccp->prcw[i];
- j2k->cstr_info->tile[j2k->curtileno].pdy[i] = tccp->prch[i];
- }
- else {
- j2k->cstr_info->tile[j2k->curtileno].pdx[i] = 15;
- j2k->cstr_info->tile[j2k->curtileno].pdx[i] = 15;
- }
- }
- }
- /* << INDEX */
-}
static void j2k_write_cod(opj_j2k_t *j2k) {
opj_cp_t *cp = NULL;
return OPJ_TRUE;
}
-static void j2k_read_cod(opj_j2k_t *j2k) {
- int len, pos;
- OPJ_UINT32 i;
-
- opj_cio_t *cio = j2k->cio;
- opj_cp_t *cp = j2k->cp;
- opj_tcp_t *tcp = j2k->state == J2K_STATE_TPH ? &cp->tcps[j2k->curtileno] : j2k->default_tcp;
- opj_image_t *image = j2k->image;
-
- len = cio_read(cio, 2); /* Lcod */
- tcp->csty = cio_read(cio, 1); /* Scod */
- tcp->prg = (OPJ_PROG_ORDER)cio_read(cio, 1); /* SGcod (A) */
- tcp->numlayers = cio_read(cio, 2); /* SGcod (B) */
- tcp->mct = cio_read(cio, 1); /* SGcod (C) */
-
- pos = cio_tell(cio);
- for (i = 0; i < image->numcomps; i++) {
- tcp->tccps[i].csty = tcp->csty & J2K_CP_CSTY_PRT;
- cio_seek(cio, pos);
- j2k_read_cox(j2k, i);
- }
-
- /* Index */
- if (j2k->cstr_info) {
- opj_codestream_info_t *cstr_info = j2k->cstr_info;
- cstr_info->prog = tcp->prg;
- cstr_info->numlayers = tcp->numlayers;
- cstr_info->numdecompos = (int*) opj_malloc(image->numcomps * sizeof(int));
- for (i = 0; i < image->numcomps; i++) {
- cstr_info->numdecompos[i] = tcp->tccps[i].numresolutions - 1;
- }
- }
-}
/**
* Reads a COD marker (Coding Styke defaults)
* @param p_header_size the size of the data contained in the COD marker.
* @param p_manager the user event manager.
*/
-opj_bool j2k_read_cod_v2 (
- opj_j2k_v2_t *p_j2k,
- OPJ_BYTE * p_header_data,
- OPJ_UINT32 p_header_size,
- struct opj_event_mgr * p_manager
- )
+static opj_bool opj_j2k_read_cod ( opj_j2k_v2_t *p_j2k,
+ OPJ_BYTE * p_header_data,
+ OPJ_UINT32 p_header_size,
+ opj_event_mgr_t * p_manager
+ )
{
/* loop */
OPJ_UINT32 i;
l_tcp->tccps[i].csty = l_tcp->csty & J2K_CCP_CSTY_PRT;
}
- if (! j2k_read_SPCod_SPCoc(p_j2k,0,p_header_data,&p_header_size,p_manager)) {
+ if (! opj_j2k_read_SPCod_SPCoc(p_j2k,0,p_header_data,&p_header_size,p_manager)) {
opj_event_msg_v2(p_manager, EVT_ERROR, "Error reading COD marker\n");
return OPJ_FALSE;
}
}
/* Apply the coding style to other components of the current tile or the m_default_tcp*/
- j2k_copy_tile_component_parameters(p_j2k);
+ opj_j2k_copy_tile_component_parameters(p_j2k);
/* Index */
#ifdef WIP_REMOVE_MSD
return 6 + l_max;
}
-static void j2k_read_coc(opj_j2k_t *j2k) {
- int len, compno;
-
- opj_cp_t *cp = j2k->cp;
- opj_tcp_t *tcp = j2k->state == J2K_STATE_TPH ? &cp->tcps[j2k->curtileno] : j2k->default_tcp;
- opj_image_t *image = j2k->image;
- opj_cio_t *cio = j2k->cio;
-
- len = cio_read(cio, 2); /* Lcoc */
- compno = cio_read(cio, image->numcomps <= 256 ? 1 : 2); /* Ccoc */
- tcp->tccps[compno].csty = cio_read(cio, 1); /* Scoc */
- j2k_read_cox(j2k, compno);
-}
/**
* Reads a COC marker (Coding Style Component)
* @param p_header_size the size of the data contained in the COC marker.
* @param p_manager the user event manager.
*/
-opj_bool j2k_read_coc_v2 (
- opj_j2k_v2_t *p_j2k,
- OPJ_BYTE * p_header_data,
- OPJ_UINT32 p_header_size,
- struct opj_event_mgr * p_manager
- )
+static opj_bool opj_j2k_read_coc ( opj_j2k_v2_t *p_j2k,
+ OPJ_BYTE * p_header_data,
+ OPJ_UINT32 p_header_size,
+ opj_event_mgr_t * p_manager
+ )
{
opj_cp_v2_t *l_cp = NULL;
opj_tcp_v2_t *l_tcp = NULL;
opj_read_bytes(p_header_data,&l_tcp->tccps[l_comp_no].csty,1); /* Scoc */
++p_header_data ;
- if (! j2k_read_SPCod_SPCoc(p_j2k,l_comp_no,p_header_data,&p_header_size,p_manager)) {
+ if (! opj_j2k_read_SPCod_SPCoc(p_j2k,l_comp_no,p_header_data,&p_header_size,p_manager)) {
opj_event_msg_v2(p_manager, EVT_ERROR, "Error reading COC marker\n");
return OPJ_FALSE;
}
- if (p_header_size != 0) {
- opj_event_msg_v2(p_manager, EVT_ERROR, "Error reading COC marker\n");
- return OPJ_FALSE;
- }
- return OPJ_TRUE;
-}
-
-static void j2k_write_qcx(opj_j2k_t *j2k, int compno) {
- int bandno, numbands;
- int expn, mant;
-
- opj_cp_t *cp = j2k->cp;
- opj_tcp_t *tcp = &cp->tcps[j2k->curtileno];
- opj_tccp_t *tccp = &tcp->tccps[compno];
- opj_cio_t *cio = j2k->cio;
-
- cio_write(cio, tccp->qntsty + (tccp->numgbits << 5), 1); /* Sqcx */
- numbands = tccp->qntsty == J2K_CCP_QNTSTY_SIQNT ? 1 : tccp->numresolutions * 3 - 2;
-
- for (bandno = 0; bandno < numbands; bandno++) {
- expn = tccp->stepsizes[bandno].expn;
- mant = tccp->stepsizes[bandno].mant;
-
- if (tccp->qntsty == J2K_CCP_QNTSTY_NOQNT) {
- cio_write(cio, expn << 3, 1); /* SPqcx_i */
- } else {
- cio_write(cio, (expn << 11) + mant, 2); /* SPqcx_i */
- }
- }
-}
-
-static void j2k_read_qcx(opj_j2k_t *j2k, int compno, int len) {
- int tmp;
- int bandno, numbands;
-
- opj_cp_t *cp = j2k->cp;
- opj_tcp_t *tcp = j2k->state == J2K_STATE_TPH ? &cp->tcps[j2k->curtileno] : j2k->default_tcp;
- opj_tccp_t *tccp = &tcp->tccps[compno];
- opj_cio_t *cio = j2k->cio;
-
- tmp = cio_read(cio, 1); /* Sqcx */
- tccp->qntsty = tmp & 0x1f;
- tccp->numgbits = tmp >> 5;
- numbands = (tccp->qntsty == J2K_CCP_QNTSTY_SIQNT) ?
- 1 : ((tccp->qntsty == J2K_CCP_QNTSTY_NOQNT) ? len - 1 : (len - 1) / 2);
-
-#ifdef USE_JPWL
- if (j2k->cp->correct) {
-
- /* if JPWL is on, we check whether there are too many subbands */
- if ((numbands < 0) || (numbands >= J2K_MAXBANDS)) {
- opj_event_msg(j2k->cinfo, JPWL_ASSUME ? EVT_WARNING : EVT_ERROR,
- "JPWL: bad number of subbands in Sqcx (%d)\n",
- numbands);
- if (!JPWL_ASSUME) {
- opj_event_msg(j2k->cinfo, EVT_ERROR, "JPWL: giving up\n");
- return;
- }
- /* we try to correct */
- numbands = 1;
- opj_event_msg(j2k->cinfo, EVT_WARNING, "- trying to adjust them\n"
- "- setting number of bands to %d => HYPOTHESIS!!!\n",
- numbands);
- };
-
- };
-
-#else
- /* We check whether there are too many subbands */
- if ((numbands < 0) || (numbands >= J2K_MAXBANDS)) {
- opj_event_msg(j2k->cinfo, EVT_WARNING ,
- "bad number of subbands in Sqcx (%d) regarding to J2K_MAXBANDS (%d) \n"
- "- limiting number of bands to J2K_MAXBANDS and try to move to the next markers\n", numbands, J2K_MAXBANDS);
- }
-
-#endif /* USE_JPWL */
+ if (p_header_size != 0) {
+ opj_event_msg_v2(p_manager, EVT_ERROR, "Error reading COC marker\n");
+ return OPJ_FALSE;
+ }
+ return OPJ_TRUE;
+}
+static void j2k_write_qcx(opj_j2k_t *j2k, int compno) {
+ int bandno, numbands;
+ int expn, mant;
+
+ opj_cp_t *cp = j2k->cp;
+ opj_tcp_t *tcp = &cp->tcps[j2k->curtileno];
+ opj_tccp_t *tccp = &tcp->tccps[compno];
+ opj_cio_t *cio = j2k->cio;
+
+ cio_write(cio, tccp->qntsty + (tccp->numgbits << 5), 1); /* Sqcx */
+ numbands = tccp->qntsty == J2K_CCP_QNTSTY_SIQNT ? 1 : tccp->numresolutions * 3 - 2;
+
for (bandno = 0; bandno < numbands; bandno++) {
- int expn, mant;
+ expn = tccp->stepsizes[bandno].expn;
+ mant = tccp->stepsizes[bandno].mant;
+
if (tccp->qntsty == J2K_CCP_QNTSTY_NOQNT) {
- expn = cio_read(cio, 1) >> 3; /* SPqcx_i */
- mant = 0;
+ cio_write(cio, expn << 3, 1); /* SPqcx_i */
} else {
- tmp = cio_read(cio, 2); /* SPqcx_i */
- expn = tmp >> 11;
- mant = tmp & 0x7ff;
- }
- if (bandno < J2K_MAXBANDS){
- tccp->stepsizes[bandno].expn = expn;
- tccp->stepsizes[bandno].mant = mant;
- }
- }
-
- /* Add Antonin : if scalar_derived -> compute other stepsizes */
- if (tccp->qntsty == J2K_CCP_QNTSTY_SIQNT) {
- for (bandno = 1; bandno < J2K_MAXBANDS; bandno++) {
- tccp->stepsizes[bandno].expn =
- ((tccp->stepsizes[0].expn) - ((bandno - 1) / 3) > 0) ?
- (tccp->stepsizes[0].expn) - ((bandno - 1) / 3) : 0;
- tccp->stepsizes[bandno].mant = tccp->stepsizes[0].mant;
+ cio_write(cio, (expn << 11) + mant, 2); /* SPqcx_i */
}
}
- /* ddA */
}
+
static void j2k_write_qcd(opj_j2k_t *j2k) {
int lenp, len;
return OPJ_TRUE;
}
-
-static void j2k_read_qcd(opj_j2k_t *j2k) {
- int len, pos;
- OPJ_UINT32 i;
-
- opj_cio_t *cio = j2k->cio;
- opj_image_t *image = j2k->image;
-
- len = cio_read(cio, 2); /* Lqcd */
- pos = cio_tell(cio);
- for (i = 0; i < image->numcomps; i++) {
- cio_seek(cio, pos);
- j2k_read_qcx(j2k, i, len - 2);
- }
-}
-
/**
* Reads a QCD marker (Quantization defaults)
* @param p_header_data the data contained in the QCD box.
* @param p_header_size the size of the data contained in the QCD marker.
* @param p_manager the user event manager.
*/
-opj_bool j2k_read_qcd_v2 (
- opj_j2k_v2_t *p_j2k,
- OPJ_BYTE * p_header_data,
- OPJ_UINT32 p_header_size,
- struct opj_event_mgr * p_manager
- )
+static opj_bool opj_j2k_read_qcd ( opj_j2k_v2_t *p_j2k,
+ OPJ_BYTE * p_header_data,
+ OPJ_UINT32 p_header_size,
+ opj_event_mgr_t * p_manager
+ )
{
/* preconditions */
assert(p_header_data != 00);
assert(p_j2k != 00);
assert(p_manager != 00);
- if (! j2k_read_SQcd_SQcc(p_j2k,0,p_header_data,&p_header_size,p_manager)) {
+ if (! opj_j2k_read_SQcd_SQcc(p_j2k,0,p_header_data,&p_header_size,p_manager)) {
opj_event_msg_v2(p_manager, EVT_ERROR, "Error reading QCD marker\n");
return OPJ_FALSE;
}
}
/* Apply the quantization parameters to other components of the current tile or the m_default_tcp */
- j2k_copy_tile_quantization_parameters(p_j2k);
+ opj_j2k_copy_tile_quantization_parameters(p_j2k);
return OPJ_TRUE;
}
return j2k_get_max_coc_size(p_j2k);
}
-static void j2k_read_qcc(opj_j2k_t *j2k) {
- int len, compno;
- int numcomp = j2k->image->numcomps;
- opj_cio_t *cio = j2k->cio;
-
- len = cio_read(cio, 2); /* Lqcc */
- compno = cio_read(cio, numcomp <= 256 ? 1 : 2); /* Cqcc */
-
-#ifdef USE_JPWL
- if (j2k->cp->correct) {
-
- static int backup_compno = 0;
-
- /* compno is negative or larger than the number of components!!! */
- if ((compno < 0) || (compno >= numcomp)) {
- opj_event_msg(j2k->cinfo, EVT_ERROR,
- "JPWL: bad component number in QCC (%d out of a maximum of %d)\n",
- compno, numcomp);
- if (!JPWL_ASSUME) {
- opj_event_msg(j2k->cinfo, EVT_ERROR, "JPWL: giving up\n");
- return;
- }
- /* we try to correct */
- compno = backup_compno % numcomp;
- opj_event_msg(j2k->cinfo, EVT_WARNING, "- trying to adjust this\n"
- "- setting component number to %d\n",
- compno);
- }
-
- /* keep your private count of tiles */
- backup_compno++;
- };
-#endif /* USE_JPWL */
-
- j2k_read_qcx(j2k, compno, len - 2 - (numcomp <= 256 ? 1 : 2));
-}
-
/**
* Reads a QCC marker (Quantization component)
* @param p_header_data the data contained in the QCC box.
* @param p_header_size the size of the data contained in the QCC marker.
* @param p_manager the user event manager.
*/
-opj_bool j2k_read_qcc_v2( opj_j2k_v2_t *p_j2k,
- OPJ_BYTE * p_header_data,
- OPJ_UINT32 p_header_size,
- struct opj_event_mgr * p_manager)
+static opj_bool opj_j2k_read_qcc( opj_j2k_v2_t *p_j2k,
+ OPJ_BYTE * p_header_data,
+ OPJ_UINT32 p_header_size,
+ opj_event_mgr_t * p_manager
+ )
{
OPJ_UINT32 l_num_comp,l_comp_no;
};
#endif /* USE_JPWL */
- if (! j2k_read_SQcd_SQcc(p_j2k,l_comp_no,p_header_data,&p_header_size,p_manager)) {
+ if (! opj_j2k_read_SQcd_SQcc(p_j2k,l_comp_no,p_header_data,&p_header_size,p_manager)) {
opj_event_msg_v2(p_manager, EVT_ERROR, "Error reading QCC marker\n");
return OPJ_FALSE;
}
return l_nb_bytes;
}
-static void j2k_read_poc(opj_j2k_t *j2k) {
- int len, numpchgs, i, old_poc;
-
- int numcomps = j2k->image->numcomps;
-
- opj_cp_t *cp = j2k->cp;
- opj_tcp_t *tcp = j2k->state == J2K_STATE_TPH ? &cp->tcps[j2k->curtileno] : j2k->default_tcp;
- opj_cio_t *cio = j2k->cio;
-
- old_poc = tcp->POC ? tcp->numpocs + 1 : 0;
- tcp->POC = 1;
- len = cio_read(cio, 2); /* Lpoc */
- numpchgs = (len - 2) / (5 + 2 * (numcomps <= 256 ? 1 : 2));
-
- for (i = old_poc; i < numpchgs + old_poc; i++) {
- opj_poc_t *poc;
- poc = &tcp->pocs[i];
- poc->resno0 = cio_read(cio, 1); /* RSpoc_i */
- poc->compno0 = cio_read(cio, numcomps <= 256 ? 1 : 2); /* CSpoc_i */
- poc->layno1 = cio_read(cio, 2); /* LYEpoc_i */
- poc->resno1 = cio_read(cio, 1); /* REpoc_i */
- poc->compno1 = int_min(
- cio_read(cio, numcomps <= 256 ? 1 : 2), (unsigned int) numcomps); /* CEpoc_i */
- poc->prg = (OPJ_PROG_ORDER)cio_read(cio, 1); /* Ppoc_i */
- }
-
- tcp->numpocs = numpchgs + old_poc - 1;
-}
/**
* Reads a POC marker (Progression Order Change)
* @param p_header_size the size of the data contained in the POC marker.
* @param p_manager the user event manager.
*/
-opj_bool j2k_read_poc_v2 (
- opj_j2k_v2_t *p_j2k,
- OPJ_BYTE * p_header_data,
- OPJ_UINT32 p_header_size,
- struct opj_event_mgr * p_manager)
+static opj_bool opj_j2k_read_poc ( opj_j2k_v2_t *p_j2k,
+ OPJ_BYTE * p_header_data,
+ OPJ_UINT32 p_header_size,
+ opj_event_mgr_t * p_manager
+ )
{
OPJ_UINT32 i, l_nb_comp, l_tmp;
opj_image_t * l_image = 00;
return OPJ_TRUE;
}
-static void j2k_read_crg(opj_j2k_t *j2k) {
- int len, i, Xcrg_i, Ycrg_i;
-
- opj_cio_t *cio = j2k->cio;
- int numcomps = j2k->image->numcomps;
-
- len = cio_read(cio, 2); /* Lcrg */
- for (i = 0; i < numcomps; i++) {
- Xcrg_i = cio_read(cio, 2); /* Xcrg_i */
- Ycrg_i = cio_read(cio, 2); /* Ycrg_i */
- }
-}
-
/**
* Reads a CRG marker (Component registration)
*
* @param p_header_size the size of the data contained in the TLM marker.
* @param p_manager the user event manager.
*/
-opj_bool j2k_read_crg_v2 (
- opj_j2k_v2_t *p_j2k,
- OPJ_BYTE * p_header_data,
- OPJ_UINT32 p_header_size,
- struct opj_event_mgr * p_manager
- )
+static opj_bool opj_j2k_read_crg ( opj_j2k_v2_t *p_j2k,
+ OPJ_BYTE * p_header_data,
+ OPJ_UINT32 p_header_size,
+ opj_event_mgr_t * p_manager
+ )
{
OPJ_UINT32 l_nb_comp;
/* preconditions */
return OPJ_TRUE;
}
-static void j2k_read_tlm(opj_j2k_t *j2k) {
- int len, Ztlm, Stlm, ST, SP, tile_tlm, i;
- long int Ttlm_i, Ptlm_i;
-
- opj_cio_t *cio = j2k->cio;
-
- len = cio_read(cio, 2); /* Ltlm */
- Ztlm = cio_read(cio, 1); /* Ztlm */
- Stlm = cio_read(cio, 1); /* Stlm */
- ST = ((Stlm >> 4) & 0x01) + ((Stlm >> 4) & 0x02);
- SP = (Stlm >> 6) & 0x01;
- tile_tlm = (len - 4) / ((SP + 1) * 2 + ST);
- for (i = 0; i < tile_tlm; i++) {
- Ttlm_i = cio_read(cio, ST); /* Ttlm_i */
- Ptlm_i = cio_read(cio, SP ? 4 : 2); /* Ptlm_i */
- }
-}
-
/**
* Reads a TLM marker (Tile Length Marker)
*
* @param p_header_size the size of the data contained in the TLM marker.
* @param p_manager the user event manager.
*/
-opj_bool j2k_read_tlm_v2 (
- opj_j2k_v2_t *p_j2k,
- OPJ_BYTE * p_header_data,
- OPJ_UINT32 p_header_size,
- struct opj_event_mgr * p_manager
- )
+static opj_bool opj_j2k_read_tlm ( opj_j2k_v2_t *p_j2k,
+ OPJ_BYTE * p_header_data,
+ OPJ_UINT32 p_header_size,
+ opj_event_mgr_t * p_manager
+ )
{
OPJ_UINT32 l_Ztlm, l_Stlm, l_ST, l_SP, l_tot_num_tp, l_tot_num_tp_remaining, l_quotient, l_Ptlm_size;
/* preconditions */
return OPJ_TRUE;
}
-static void j2k_read_plm(opj_j2k_t *j2k) {
- int len, i, Zplm, Nplm, add, packet_len = 0;
-
- opj_cio_t *cio = j2k->cio;
-
- len = cio_read(cio, 2); /* Lplm */
- Zplm = cio_read(cio, 1); /* Zplm */
- len -= 3;
- while (len > 0) {
- Nplm = cio_read(cio, 4); /* Nplm */
- len -= 4;
- for (i = Nplm; i > 0; i--) {
- add = cio_read(cio, 1);
- len--;
- packet_len = (packet_len << 7) + add; /* Iplm_ij */
- if ((add & 0x80) == 0) {
- /* New packet */
- packet_len = 0;
- }
- if (len <= 0)
- break;
- }
- }
-}
/**
* Reads a PLM marker (Packet length, main header marker)
* @param p_header_size the size of the data contained in the TLM marker.
* @param p_manager the user event manager.
*/
-opj_bool j2k_read_plm_v2 (
- opj_j2k_v2_t *p_j2k,
- OPJ_BYTE * p_header_data,
- OPJ_UINT32 p_header_size,
- struct opj_event_mgr * p_manager
- )
+static opj_bool opj_j2k_read_plm ( opj_j2k_v2_t *p_j2k,
+ OPJ_BYTE * p_header_data,
+ OPJ_UINT32 p_header_size,
+ opj_event_mgr_t * p_manager
+ )
{
/* preconditions */
assert(p_header_data != 00);
return OPJ_TRUE;
}
-static void j2k_read_plt(opj_j2k_t *j2k) {
- int len, i, Zplt, packet_len = 0, add;
-
- opj_cio_t *cio = j2k->cio;
-
- len = cio_read(cio, 2); /* Lplt */
- Zplt = cio_read(cio, 1); /* Zplt */
- for (i = len - 3; i > 0; i--) {
- add = cio_read(cio, 1);
- packet_len = (packet_len << 7) + add; /* Iplt_i */
- if ((add & 0x80) == 0) {
- /* New packet */
- packet_len = 0;
- }
- }
-}
-
/**
* Reads a PLT marker (Packet length, tile-part header)
*
* @param p_header_size the size of the data contained in the PLT marker.
* @param p_manager the user event manager.
*/
-opj_bool j2k_read_plt_v2 (
- opj_j2k_v2_t *p_j2k,
- OPJ_BYTE * p_header_data,
- OPJ_UINT32 p_header_size,
- struct opj_event_mgr * p_manager
- )
+static opj_bool opj_j2k_read_plt ( opj_j2k_v2_t *p_j2k,
+ OPJ_BYTE * p_header_data,
+ OPJ_UINT32 p_header_size,
+ opj_event_mgr_t * p_manager
+ )
{
OPJ_UINT32 l_Zplt, l_tmp, l_packet_len = 0, i;
return OPJ_TRUE;
}
-static void j2k_read_ppm(opj_j2k_t *j2k) {
- int len, Z_ppm, i, j;
- int N_ppm;
-
- opj_cp_t *cp = j2k->cp;
- opj_cio_t *cio = j2k->cio;
-
- len = cio_read(cio, 2);
- cp->ppm = 1;
-
- Z_ppm = cio_read(cio, 1); /* Z_ppm */
- len -= 3;
- while (len > 0) {
- if (cp->ppm_previous == 0) {
- N_ppm = cio_read(cio, 4); /* N_ppm */
- len -= 4;
- } else {
- N_ppm = cp->ppm_previous;
- }
- j = cp->ppm_store;
- if (Z_ppm == 0) { /* First PPM marker */
- cp->ppm_data = (unsigned char *) opj_malloc(N_ppm * sizeof(unsigned char));
- cp->ppm_data_first = cp->ppm_data;
- cp->ppm_len = N_ppm;
- } else { /* NON-first PPM marker */
- cp->ppm_data = (unsigned char *) opj_realloc(cp->ppm_data, (N_ppm + cp->ppm_store) * sizeof(unsigned char));
-
-#ifdef USE_JPWL
- /* this memory allocation check could be done even in non-JPWL cases */
- if (cp->correct) {
- if (!cp->ppm_data) {
- opj_event_msg(j2k->cinfo, EVT_ERROR,
- "JPWL: failed memory allocation during PPM marker parsing (pos. %x)\n",
- cio_tell(cio));
- if (!JPWL_ASSUME || JPWL_ASSUME) {
- opj_free(cp->ppm_data);
- opj_event_msg(j2k->cinfo, EVT_ERROR, "JPWL: giving up\n");
- return;
- }
- }
- }
-#endif
- cp->ppm_data_first = cp->ppm_data;
- cp->ppm_len = N_ppm + cp->ppm_store;
- }
- for (i = N_ppm; i > 0; i--) { /* Read packet header */
- cp->ppm_data[j] = cio_read(cio, 1);
- j++;
- len--;
- if (len == 0)
- break; /* Case of non-finished packet header in present marker but finished in next one */
- }
- cp->ppm_previous = i - 1;
- cp->ppm_store = j;
- }
-}
/**
* Reads a PPM marker (Packed packet headers, main header)
*
return OPJ_TRUE;
}
-static void j2k_read_ppt(opj_j2k_t *j2k) {
- int len, Z_ppt, i, j = 0;
-
- opj_cp_t *cp = j2k->cp;
- opj_tcp_t *tcp = cp->tcps + j2k->curtileno;
- opj_cio_t *cio = j2k->cio;
-
- len = cio_read(cio, 2);
- Z_ppt = cio_read(cio, 1);
- tcp->ppt = 1;
- if (Z_ppt == 0) { /* First PPT marker */
- tcp->ppt_data = (unsigned char *) opj_malloc((len - 3) * sizeof(unsigned char));
- tcp->ppt_data_first = tcp->ppt_data;
- tcp->ppt_store = 0;
- tcp->ppt_len = len - 3;
- } else { /* NON-first PPT marker */
- tcp->ppt_data = (unsigned char *) opj_realloc(tcp->ppt_data, (len - 3 + tcp->ppt_store) * sizeof(unsigned char));
- tcp->ppt_data_first = tcp->ppt_data;
- tcp->ppt_len = len - 3 + tcp->ppt_store;
- }
- j = tcp->ppt_store;
- for (i = len - 3; i > 0; i--) {
- tcp->ppt_data[j] = cio_read(cio, 1);
- j++;
- }
- tcp->ppt_store = j;
-}
-
/**
* Reads a PPT marker (Packed packet headers, tile-part header)
*
* @param p_header_size the size of the data contained in the PPT marker.
* @param p_manager the user event manager.
*/
-opj_bool j2k_read_ppt_v2 ( opj_j2k_v2_t *p_j2k,
- OPJ_BYTE * p_header_data,
- OPJ_UINT32 p_header_size,
- struct opj_event_mgr * p_manager )
+static opj_bool opj_j2k_read_ppt ( opj_j2k_v2_t *p_j2k,
+ OPJ_BYTE * p_header_data,
+ OPJ_UINT32 p_header_size,
+ opj_event_mgr_t * p_manager
+ )
{
opj_cp_v2_t *l_cp = 00;
opj_tcp_v2_t *l_tcp = 00;
}
-static void j2k_read_sod(opj_j2k_t *j2k) {
- int len, truncate = 0, i;
- unsigned char *data = NULL, *data_ptr = NULL;
-
- opj_cio_t *cio = j2k->cio;
- int curtileno = j2k->curtileno;
-
- /* Index */
- if (j2k->cstr_info) {
- j2k->cstr_info->tile[j2k->curtileno].tp[j2k->cur_tp_num].tp_end_header =
- cio_tell(cio) + j2k->pos_correction - 1;
- if (j2k->cur_tp_num == 0)
- j2k->cstr_info->tile[j2k->curtileno].end_header = cio_tell(cio) + j2k->pos_correction - 1;
- j2k->cstr_info->packno = 0;
- }
-
- len = int_min(j2k->eot - cio_getbp(cio), cio_numbytesleft(cio) + 1);
-
- if (len == cio_numbytesleft(cio) + 1) {
- truncate = 1; /* Case of a truncate codestream */
- }
-
- data = j2k->tile_data[curtileno];
- data = (unsigned char*) opj_realloc(data, (j2k->tile_len[curtileno] + len) * sizeof(unsigned char));
-
- data_ptr = data + j2k->tile_len[curtileno];
- for (i = 0; i < len; i++) {
- data_ptr[i] = cio_read(cio, 1);
- }
- j2k->tile_len[curtileno] += len;
- j2k->tile_data[curtileno] = data;
-
- if (!truncate) {
- j2k->state = J2K_STATE_TPHSOT;
- } else {
- j2k->state = J2K_STATE_NEOC; /* RAJOUTE !! */
- }
- j2k->cur_tp_num++;
-}
/**
* Reads a SOD marker (Start Of Data)
* @param p_header_size the size of the data contained in the SOD marker.
* @param p_manager the user event manager.
*/
-opj_bool j2k_read_sod_v2 (
- opj_j2k_v2_t *p_j2k,
- struct opj_stream_private *p_stream,
- struct opj_event_mgr * p_manager
- )
+opj_bool opj_j2k_read_sod (opj_j2k_v2_t *p_j2k,
+ opj_stream_private_t *p_stream,
+ opj_event_mgr_t * p_manager
+ )
{
OPJ_UINT32 l_current_read_size;
opj_codestream_index_t * l_cstr_index = 00;
return OPJ_TRUE;
}
-static void j2k_read_rgn(opj_j2k_t *j2k) {
- int len, compno, roisty;
-
- opj_cp_t *cp = j2k->cp;
- opj_tcp_t *tcp = j2k->state == J2K_STATE_TPH ? &cp->tcps[j2k->curtileno] : j2k->default_tcp;
- opj_cio_t *cio = j2k->cio;
- int numcomps = j2k->image->numcomps;
-
- len = cio_read(cio, 2); /* Lrgn */
- compno = cio_read(cio, numcomps <= 256 ? 1 : 2); /* Crgn */
- roisty = cio_read(cio, 1); /* Srgn */
-
-#ifdef USE_JPWL
- if (j2k->cp->correct) {
- /* totlen is negative or larger than the bytes left!!! */
- if (compno >= numcomps) {
- opj_event_msg(j2k->cinfo, EVT_ERROR,
- "JPWL: bad component number in RGN (%d when there are only %d)\n",
- compno, numcomps);
- if (!JPWL_ASSUME || JPWL_ASSUME) {
- opj_event_msg(j2k->cinfo, EVT_ERROR, "JPWL: giving up\n");
- return;
- }
- }
- };
-#endif /* USE_JPWL */
-
- tcp->tccps[compno].roishift = cio_read(cio, 1); /* SPrgn */
-}
static void j2k_write_eoc(opj_j2k_t *j2k) {
opj_cio_t *cio = j2k->cio;
* @param p_header_size the size of the data contained in the POC marker.
* @param p_manager the user event manager.
*/
-opj_bool j2k_read_rgn_v2 (
- opj_j2k_v2_t *p_j2k,
- OPJ_BYTE * p_header_data,
- OPJ_UINT32 p_header_size,
- struct opj_event_mgr * p_manager
- )
+static opj_bool opj_j2k_read_rgn (opj_j2k_v2_t *p_j2k,
+ OPJ_BYTE * p_header_data,
+ OPJ_UINT32 p_header_size,
+ opj_event_mgr_t * p_manager
+ )
{
OPJ_UINT32 l_nb_comp;
opj_image_t * l_image = 00;
}
}
- j2k_tcp_destroy(l_tcp);
+ opj_j2k_tcp_destroy(l_tcp);
++l_tcp;
}
* @param p_j2k J2K codec.
* @param p_manager the user event manager.
*/
-opj_bool j2k_get_end_header(opj_j2k_v2_t *p_j2k,
+opj_bool opj_j2k_get_end_header(opj_j2k_v2_t *p_j2k,
struct opj_stream_private *p_stream,
struct opj_event_mgr * p_manager )
{
opj_dec_mstabent_t j2k_dec_mstab[] = {
/*{J2K_MS_SOC, J2K_STATE_MHSOC, j2k_read_soc},*/
/*{J2K_MS_SOT, J2K_STATE_MH | J2K_STATE_TPHSOT, j2k_read_sot},*/
- {J2K_MS_SOD, J2K_STATE_TPH, j2k_read_sod},
+ /*{J2K_MS_SOD, J2K_STATE_TPH, j2k_read_sod},*/
{J2K_MS_EOC, J2K_STATE_TPHSOT, j2k_read_eoc},
- {J2K_MS_SIZ, J2K_STATE_MHSIZ, j2k_read_siz},
- {J2K_MS_COD, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_cod},
- {J2K_MS_COC, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_coc},
- {J2K_MS_RGN, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_rgn},
- {J2K_MS_QCD, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_qcd},
- {J2K_MS_QCC, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_qcc},
- {J2K_MS_POC, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_poc},
- {J2K_MS_TLM, J2K_STATE_MH, j2k_read_tlm},
- {J2K_MS_PLM, J2K_STATE_MH, j2k_read_plm},
- {J2K_MS_PLT, J2K_STATE_TPH, j2k_read_plt},
- {J2K_MS_PPM, J2K_STATE_MH, j2k_read_ppm},
- {J2K_MS_PPT, J2K_STATE_TPH, j2k_read_ppt},
+ /*{J2K_MS_SIZ, J2K_STATE_MHSIZ, j2k_read_siz},*/
+ /*{J2K_MS_COD, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_cod},*/
+ /*{J2K_MS_COC, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_coc},*/
+ /*{J2K_MS_RGN, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_rgn},*/
+ /*{J2K_MS_QCD, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_qcd},*/
+ /*{J2K_MS_QCC, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_qcc},*/
+ /*{J2K_MS_POC, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_poc},*/
+ /*{J2K_MS_TLM, J2K_STATE_MH, j2k_read_tlm},*/
+ /*{J2K_MS_PLM, J2K_STATE_MH, j2k_read_plm},*/
+ /*{J2K_MS_PLT, J2K_STATE_TPH, j2k_read_plt},*/
+ /*{J2K_MS_PPM, J2K_STATE_MH, j2k_read_ppm},*/
+ /*{J2K_MS_PPT, J2K_STATE_TPH, j2k_read_ppt},*/
{J2K_MS_SOP, 0, 0},
- {J2K_MS_CRG, J2K_STATE_MH, j2k_read_crg},
- {J2K_MS_COM, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_com},
+ /*{J2K_MS_CRG, J2K_STATE_MH, j2k_read_crg},*/
+ /*{J2K_MS_COM, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_com},*/
#ifdef USE_JPWL
{J2K_MS_EPC, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_epc},
{J2K_MS_INSEC, 0, j2k_read_insec},
#endif /* USE_JPSEC */
- {0, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_unk}
+ /*{0, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_unk}*/
};
-static void j2k_read_unk(opj_j2k_t *j2k) {
- opj_event_msg(j2k->cinfo, EVT_WARNING, "Unknown marker\n");
-
-#ifdef USE_JPWL
- if (j2k->cp->correct) {
- int m = 0, id, i;
- int min_id = 0, min_dist = 17, cur_dist = 0, tmp_id;
- cio_seek(j2k->cio, cio_tell(j2k->cio) - 2);
- id = cio_read(j2k->cio, 2);
- opj_event_msg(j2k->cinfo, EVT_ERROR,
- "JPWL: really don't know this marker %x\n",
- id);
- if (!JPWL_ASSUME) {
- opj_event_msg(j2k->cinfo, EVT_ERROR,
- "- possible synch loss due to uncorrectable codestream errors => giving up\n");
- return;
- }
- /* OK, activate this at your own risk!!! */
- /* we look for the marker at the minimum hamming distance from this */
- while (j2k_dec_mstab[m].id) {
-
- /* 1's where they differ */
- tmp_id = j2k_dec_mstab[m].id ^ id;
-
- /* compute the hamming distance between our id and the current */
- cur_dist = 0;
- for (i = 0; i < 16; i++) {
- if ((tmp_id >> i) & 0x0001) {
- cur_dist++;
- }
- }
-
- /* if current distance is smaller, set the minimum */
- if (cur_dist < min_dist) {
- min_dist = cur_dist;
- min_id = j2k_dec_mstab[m].id;
- }
-
- /* jump to the next marker */
- m++;
- }
-
- /* do we substitute the marker? */
- if (min_dist < JPWL_MAXIMUM_HAMMING) {
- opj_event_msg(j2k->cinfo, EVT_ERROR,
- "- marker %x is at distance %d from the read %x\n",
- min_id, min_dist, id);
- opj_event_msg(j2k->cinfo, EVT_ERROR,
- "- trying to substitute in place and crossing fingers!\n");
- cio_seek(j2k->cio, cio_tell(j2k->cio) - 2);
- cio_write(j2k->cio, min_id, 2);
-
- /* rewind */
- cio_seek(j2k->cio, cio_tell(j2k->cio) - 2);
-
- }
-
- };
-#endif /* USE_JPWL */
-}
/**
* Reads an unknown marker
*
* @return true if the marker could be deduced.
*/
-opj_bool j2k_read_unk_v2 ( opj_j2k_v2_t *p_j2k,
- struct opj_stream_private *p_stream,
+opj_bool opj_j2k_read_unk ( opj_j2k_v2_t *p_j2k,
+ opj_stream_private_t *p_stream,
OPJ_UINT32 *output_marker,
- struct opj_event_mgr * p_manager
+ opj_event_mgr_t * p_manager
)
{
OPJ_UINT32 l_unknown_marker;
if (!(l_unknown_marker < 0xff00)) {
/* Get the marker handler from the marker ID*/
- l_marker_handler = j2k_get_marker_handler(l_unknown_marker);
+ l_marker_handler = opj_j2k_get_marker_handler(l_unknown_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");
* @param p_header_size the size of the data contained in the MCT marker.
* @param p_manager the user event manager.
*/
-opj_bool j2k_read_mct ( opj_j2k_v2_t *p_j2k,
- OPJ_BYTE * p_header_data,
- OPJ_UINT32 p_header_size,
- struct opj_event_mgr * p_manager )
+static opj_bool opj_j2k_read_mct ( opj_j2k_v2_t *p_j2k,
+ OPJ_BYTE * p_header_data,
+ OPJ_UINT32 p_header_size,
+ opj_event_mgr_t * p_manager
+ )
{
OPJ_UINT32 i;
opj_tcp_v2_t *l_tcp = 00;
* @param p_header_size the size of the data contained in the MCC marker.
* @param p_manager the user event manager.
*/
-opj_bool j2k_read_mcc ( opj_j2k_v2_t *p_j2k,
- OPJ_BYTE * p_header_data,
- OPJ_UINT32 p_header_size,
- struct opj_event_mgr * p_manager )
+opj_bool opj_j2k_read_mcc ( opj_j2k_v2_t *p_j2k,
+ OPJ_BYTE * p_header_data,
+ OPJ_UINT32 p_header_size,
+ opj_event_mgr_t * p_manager )
{
OPJ_UINT32 i,j;
OPJ_UINT32 l_tmp;
* @param p_header_size the size of the data contained in the MCO marker.
* @param p_manager the user event manager.
*/
-opj_bool j2k_read_mco ( opj_j2k_v2_t *p_j2k,
- OPJ_BYTE * p_header_data,
- OPJ_UINT32 p_header_size,
- struct opj_event_mgr * p_manager )
+static opj_bool opj_j2k_read_mco ( opj_j2k_v2_t *p_j2k,
+ OPJ_BYTE * p_header_data,
+ OPJ_UINT32 p_header_size,
+ opj_event_mgr_t * p_manager
+ )
{
OPJ_UINT32 l_tmp, i;
OPJ_UINT32 l_nb_stages;
* @param p_header_size the size of the data contained in the CBD marker.
* @param p_manager the user event manager.
*/
-opj_bool j2k_read_cbd ( opj_j2k_v2_t *p_j2k,
- OPJ_BYTE * p_header_data,
- OPJ_UINT32 p_header_size,
- struct opj_event_mgr * p_manager)
+static opj_bool opj_j2k_read_cbd ( opj_j2k_v2_t *p_j2k,
+ OPJ_BYTE * p_header_data,
+ OPJ_UINT32 p_header_size,
+ opj_event_mgr_t * p_manager
+ )
{
OPJ_UINT32 l_nb_comp,l_num_comp;
OPJ_UINT32 l_comp_def;
}
/* customization of the validation */
- j2k_setup_decoding_validation(p_j2k);
+ opj_j2k_setup_decoding_validation(p_j2k);
/* validation of the parameters codec */
- if (! j2k_exec(p_j2k, p_j2k->m_validation_list, p_stream,p_manager)) {
+ if (! opj_j2k_exec(p_j2k, p_j2k->m_validation_list, p_stream,p_manager)) {
opj_image_destroy(p_j2k->m_private_image);
p_j2k->m_private_image = NULL;
return OPJ_FALSE;
}
/* customization of the encoding */
- j2k_setup_header_reading(p_j2k);
+ opj_j2k_setup_header_reading(p_j2k);
/* read header */
- if (! j2k_exec (p_j2k,p_j2k->m_procedure_list,p_stream,p_manager)) {
+ if (! opj_j2k_exec (p_j2k,p_j2k->m_procedure_list,p_stream,p_manager)) {
opj_image_destroy(p_j2k->m_private_image);
p_j2k->m_private_image = NULL;
return OPJ_FALSE;
opj_copy_image_header(p_j2k->m_private_image, *p_image);
/*Allocate and initialize some elements of codestrem index*/
- if (!j2k_allocate_tile_element_cstr_index(p_j2k)){
+ if (!opj_j2k_allocate_tile_element_cstr_index(p_j2k)){
return OPJ_FALSE;
}
/**
* Sets up the procedures to do on reading header. Developpers wanting to extend the library can add their own reading procedures.
*/
-void j2k_setup_header_reading (opj_j2k_v2_t *p_j2k)
+void opj_j2k_setup_header_reading (opj_j2k_v2_t *p_j2k)
{
/* preconditions*/
assert(p_j2k != 00);
- opj_procedure_list_add_procedure(p_j2k->m_procedure_list,(opj_procedure)j2k_read_header_procedure);
+ opj_procedure_list_add_procedure(p_j2k->m_procedure_list,(opj_procedure)opj_j2k_read_header_procedure);
/* DEVELOPER CORNER, add your custom procedures */
- opj_procedure_list_add_procedure(p_j2k->m_procedure_list,(opj_procedure)j2k_copy_default_tcp_and_create_tcd);
+ opj_procedure_list_add_procedure(p_j2k->m_procedure_list,(opj_procedure)opj_j2k_copy_default_tcp_and_create_tcd);
}
* Sets up the validation ,i.e. adds the procedures to lauch to make sure the codec parameters
* are valid. Developpers wanting to extend the library can add their own validation procedures.
*/
-void j2k_setup_decoding_validation (opj_j2k_v2_t *p_j2k)
+void opj_j2k_setup_decoding_validation (opj_j2k_v2_t *p_j2k)
{
/* preconditions*/
assert(p_j2k != 00);
- opj_procedure_list_add_procedure(p_j2k->m_validation_list, (opj_procedure)j2k_build_decoder);
- opj_procedure_list_add_procedure(p_j2k->m_validation_list, (opj_procedure)j2k_decoding_validation);
+ opj_procedure_list_add_procedure(p_j2k->m_validation_list, (opj_procedure)opj_j2k_build_decoder);
+ opj_procedure_list_add_procedure(p_j2k->m_validation_list, (opj_procedure)opj_j2k_decoding_validation);
/* DEVELOPER CORNER, add your custom validation procedure */
}
/**
* Builds the cp decoder parameters to use to decode tile.
*/
-opj_bool j2k_build_decoder (opj_j2k_v2_t * p_j2k,
- opj_stream_private_t *p_stream,
- opj_event_mgr_t * p_manager )
+opj_bool opj_j2k_build_decoder (opj_j2k_v2_t * p_j2k,
+ opj_stream_private_t *p_stream,
+ opj_event_mgr_t * p_manager )
{
/* add here initialization of cp
copy paste of setup_decoder */
*
* @return true if the parameters are correct.
*/
-opj_bool j2k_decoding_validation (
- opj_j2k_v2_t *p_j2k,
- opj_stream_private_t *p_stream,
- opj_event_mgr_t * p_manager
- )
+opj_bool opj_j2k_decoding_validation ( opj_j2k_v2_t *p_j2k,
+ opj_stream_private_t *p_stream,
+ opj_event_mgr_t * p_manager
+ )
{
opj_bool l_is_valid = OPJ_TRUE;
return l_is_valid;
}
-opj_bool j2k_read_header_procedure( opj_j2k_v2_t *p_j2k,
- struct opj_stream_private *p_stream,
- struct opj_event_mgr * p_manager)
+opj_bool opj_j2k_read_header_procedure( opj_j2k_v2_t *p_j2k,
+ opj_stream_private_t *p_stream,
+ opj_event_mgr_t * p_manager)
{
OPJ_UINT32 l_current_marker;
OPJ_UINT32 l_marker_size;
}
/* Get the marker handler from the marker ID */
- l_marker_handler = j2k_get_marker_handler(l_current_marker);
+ l_marker_handler = opj_j2k_get_marker_handler(l_current_marker);
/* Manage case where marker is unknown */
if (l_marker_handler->id == J2K_MS_UNK) {
- if (! j2k_read_unk_v2(p_j2k, p_stream, &l_current_marker, p_manager)){
+ if (! opj_j2k_read_unk(p_j2k, p_stream, &l_current_marker, p_manager)){
opj_event_msg_v2(p_manager, EVT_ERROR, "Unknow marker have been detected and generated error.\n");
return OPJ_FALSE;
}
if (l_current_marker == J2K_MS_SOT)
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);
+ l_marker_handler = opj_j2k_get_marker_handler(l_current_marker);
}
/* Check if the marker is known and if it is the right place to find it */
*
* @return true if all the procedures were successfully executed.
*/
-opj_bool j2k_exec ( opj_j2k_v2_t * p_j2k,
+opj_bool opj_j2k_exec ( opj_j2k_v2_t * p_j2k,
opj_procedure_list_t * p_procedure_list,
opj_stream_private_t *p_stream,
opj_event_mgr_t * p_manager )
}
/* FIXME DOC*/
-opj_bool j2k_copy_default_tcp_and_create_tcd
- (
- opj_j2k_v2_t * p_j2k,
- opj_stream_private_t *p_stream,
- opj_event_mgr_t * p_manager
- )
+static opj_bool opj_j2k_copy_default_tcp_and_create_tcd ( opj_j2k_v2_t * p_j2k,
+ opj_stream_private_t *p_stream,
+ opj_event_mgr_t * p_manager
+ )
{
opj_tcp_v2_t * l_tcp = 00;
opj_tcp_v2_t * l_default_tcp = 00;
*
* @return the handler associated with the id.
*/
-const opj_dec_memory_marker_handler_t * j2k_get_marker_handler (OPJ_UINT32 p_id)
+const opj_dec_memory_marker_handler_t * opj_j2k_get_marker_handler (OPJ_UINT32 p_id)
{
const opj_dec_memory_marker_handler_t *e;
for (e = j2k_memory_marker_handler_tab; e->id != 0; ++e) {
if (p_j2k->m_is_decoder) {
if (p_j2k->m_specific_param.m_decoder.m_default_tcp != 00) {
- j2k_tcp_destroy(p_j2k->m_specific_param.m_decoder.m_default_tcp);
+ opj_j2k_tcp_destroy(p_j2k->m_specific_param.m_decoder.m_default_tcp);
opj_free(p_j2k->m_specific_param.m_decoder.m_default_tcp);
p_j2k->m_specific_param.m_decoder.m_default_tcp = 00;
}
tcd_destroy_v2(p_j2k->m_tcd);
- j2k_cp_destroy(&(p_j2k->m_cp));
+ opj_j2k_cp_destroy(&(p_j2k->m_cp));
memset(&(p_j2k->m_cp),0,sizeof(opj_cp_v2_t));
opj_procedure_list_destroy(p_j2k->m_procedure_list);
*
* @param p_tcp the tile coding parameter to destroy.
*/
-void j2k_tcp_destroy (opj_tcp_v2_t *p_tcp)
+void opj_j2k_tcp_destroy (opj_tcp_v2_t *p_tcp)
{
if (p_tcp == 00) {
return;
p_tcp->mct_norms = 00;
}
- j2k_tcp_data_destroy(p_tcp);
+ opj_j2k_tcp_data_destroy(p_tcp);
}
*
* @param p_tcp the tile coding parameter which contain data to destroy.
*/
-void j2k_tcp_data_destroy (opj_tcp_v2_t *p_tcp)
+void opj_j2k_tcp_data_destroy (opj_tcp_v2_t *p_tcp)
{
if (p_tcp->m_data) {
opj_free(p_tcp->m_data);
*
* @param p_cp the coding parameter to destroy.
*/
-void j2k_cp_destroy (opj_cp_v2_t *p_cp)
+void opj_j2k_cp_destroy (opj_cp_v2_t *p_cp)
{
OPJ_UINT32 l_nb_tiles;
opj_tcp_v2_t * l_current_tile = 00;
for
(i = 0; i < l_nb_tiles; ++i)
{
- j2k_tcp_destroy(l_current_tile);
+ opj_j2k_tcp_destroy(l_current_tile);
++l_current_tile;
}
opj_free(p_cp->tcps);
l_marker_size -= 2; /* Subtract the size of the marker ID already read */
/* Get the marker handler from the marker ID */
- l_marker_handler = j2k_get_marker_handler(l_current_marker);
+ l_marker_handler = opj_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) ) {
/* If we didn't skip data before, we need to read the SOD marker*/
if (! p_j2k->m_specific_param.m_decoder.m_skip_data) {
/* Try to read the SOD marker and skip data ? FIXME */
- if (! j2k_read_sod_v2(p_j2k, p_stream, p_manager)) {
+ if (! opj_j2k_read_sod(p_j2k, p_stream, p_manager)) {
return OPJ_FALSE;
}
l_tcp = &(p_j2k->m_cp.tcps[p_tile_index]);
if (! l_tcp->m_data) {
- j2k_tcp_destroy(l_tcp);
+ opj_j2k_tcp_destroy(l_tcp);
return OPJ_FALSE;
}
l_tcp->m_data_size,
p_tile_index,
p_j2k->cstr_index) ) {
- j2k_tcp_destroy(l_tcp);
+ opj_j2k_tcp_destroy(l_tcp);
p_j2k->m_specific_param.m_decoder.m_state |= 0x8000;/*FIXME J2K_DEC_STATE_ERR;*/
return OPJ_FALSE;
}
/* To avoid to destroy the tcp which can be useful when we try to decode a tile decoded before (cf j2k_random_tile_access)
* we destroy just the data which will be re-read in read_tile_header*/
- /*j2k_tcp_destroy(l_tcp);
+ /*opj_j2k_tcp_destroy(l_tcp);
p_j2k->m_tcd->tcp = 0;*/
- j2k_tcp_data_destroy(l_tcp);
+ opj_j2k_tcp_data_destroy(l_tcp);
p_j2k->m_specific_param.m_decoder.m_can_decode = 0;
p_j2k->m_specific_param.m_decoder.m_state &= (~ (0x0080));/* FIXME J2K_DEC_STATE_DATA);*/
}
-opj_bool j2k_update_image_data (opj_tcd_v2_t * p_tcd, OPJ_BYTE * p_data, opj_image_t* p_output_image)
+opj_bool opj_j2k_update_image_data (opj_tcd_v2_t * p_tcd, OPJ_BYTE * p_data, opj_image_t* p_output_image)
{
OPJ_UINT32 i,j,k = 0;
OPJ_UINT32 l_width_src,l_height_src;
l_j2k->m_specific_param.m_decoder.m_last_sot_read_pos = 0 ;
/* codestream index creation */
- l_j2k->cstr_index = j2k_create_cstr_index();
+ l_j2k->cstr_index = opj_j2k_create_cstr_index();
/*(opj_codestream_index_t*) opj_malloc(sizeof(opj_codestream_index_t));
if (!l_j2k->cstr_index){
}
-opj_codestream_index_t* j2k_create_cstr_index(void)
+opj_codestream_index_t* opj_j2k_create_cstr_index(void)
{
opj_codestream_index_t* cstr_index = (opj_codestream_index_t*)
opj_calloc(1,sizeof(opj_codestream_index_t));
* @param p_header_size the size of the data contained in the COM marker.
* @param p_manager the user event manager.
*/
-opj_bool j2k_read_SPCod_SPCoc(
- opj_j2k_v2_t *p_j2k,
- OPJ_UINT32 compno,
- OPJ_BYTE * p_header_data,
- OPJ_UINT32 * p_header_size,
- struct opj_event_mgr * p_manager
- )
+opj_bool opj_j2k_read_SPCod_SPCoc( opj_j2k_v2_t *p_j2k,
+ OPJ_UINT32 compno,
+ OPJ_BYTE * p_header_data,
+ OPJ_UINT32 * p_header_size,
+ opj_event_mgr_t * p_manager)
{
OPJ_UINT32 i, l_tmp;
opj_cp_v2_t *l_cp = NULL;
*
* @param p_j2k the J2k codec.
*/
-void j2k_copy_tile_component_parameters( opj_j2k_v2_t *p_j2k )
+void opj_j2k_copy_tile_component_parameters( opj_j2k_v2_t *p_j2k )
{
/* loop */
OPJ_UINT32 i;
* @param p_header_size the size of the data contained in the COM marker.
* @param p_manager the user event manager.
*/
-opj_bool j2k_read_SQcd_SQcc(
- opj_j2k_v2_t *p_j2k,
- OPJ_UINT32 p_comp_no,
- OPJ_BYTE* p_header_data,
- OPJ_UINT32 * p_header_size,
- struct opj_event_mgr * p_manager
- )
+opj_bool opj_j2k_read_SQcd_SQcc(opj_j2k_v2_t *p_j2k,
+ OPJ_UINT32 p_comp_no,
+ OPJ_BYTE* p_header_data,
+ OPJ_UINT32 * p_header_size,
+ opj_event_mgr_t * p_manager
+ )
{
/* loop*/
OPJ_UINT32 l_band_no;
*
* @param p_j2k the J2k codec.
*/
-void j2k_copy_tile_quantization_parameters( opj_j2k_v2_t *p_j2k )
+void opj_j2k_copy_tile_quantization_parameters( opj_j2k_v2_t *p_j2k )
{
OPJ_UINT32 i;
opj_cp_v2_t *l_cp = NULL;
/* Dump the codestream info from main header */
if (flag & OPJ_J2K_MH_INFO){
- j2k_dump_MH_info(p_j2k, out_stream);
+ opj_j2k_dump_MH_info(p_j2k, out_stream);
}
/* Dump the codestream index from main header */
if (flag & OPJ_J2K_MH_IND){
- j2k_dump_MH_index(p_j2k, out_stream);
+ opj_j2k_dump_MH_index(p_j2k, out_stream);
}
/* Dump the codestream index of the current tile */
*@param out_stream output stream where dump the elements.
*
*/
-void j2k_dump_MH_index(opj_j2k_v2_t* p_j2k, FILE* out_stream)
+void opj_j2k_dump_MH_index(opj_j2k_v2_t* p_j2k, FILE* out_stream)
{
opj_codestream_index_t* cstr_index = p_j2k->cstr_index;
OPJ_UINT32 it_marker, it_tile, it_tile_part;
*@param out_stream output stream where dump the elements.
*
*/
-void j2k_dump_MH_info(opj_j2k_v2_t* p_j2k, FILE* out_stream)
+void opj_j2k_dump_MH_info(opj_j2k_v2_t* p_j2k, FILE* out_stream)
{
opj_tcp_v2_t * l_default_tile=NULL;
return l_cstr_index;
}
-static opj_bool j2k_allocate_tile_element_cstr_index(opj_j2k_v2_t *p_j2k)
+opj_bool opj_j2k_allocate_tile_element_cstr_index(opj_j2k_v2_t *p_j2k)
{
OPJ_UINT32 it_tile=0;
/**
* Reads the tiles.
*/
-opj_bool j2k_decode_tiles ( opj_j2k_v2_t *p_j2k,
- opj_stream_private_t *p_stream,
- opj_event_mgr_t * p_manager)
+opj_bool opj_j2k_decode_tiles ( opj_j2k_v2_t *p_j2k,
+ opj_stream_private_t *p_stream,
+ opj_event_mgr_t * p_manager)
{
opj_bool l_go_on = OPJ_TRUE;
OPJ_UINT32 l_current_tile_no;
}
opj_event_msg_v2(p_manager, EVT_INFO, "Tile %d/%d has been decoded.\n", l_current_tile_no +1, p_j2k->m_cp.th * p_j2k->m_cp.tw);
- if (! j2k_update_image_data(p_j2k->m_tcd,l_current_data, p_j2k->m_output_image)) {
+ if (! opj_j2k_update_image_data(p_j2k->m_tcd,l_current_data, p_j2k->m_output_image)) {
opj_free(l_current_data);
return OPJ_FALSE;
}
/**
* Sets up the procedures to do on decoding data. Developpers wanting to extend the library can add their own reading procedures.
*/
-static void j2k_setup_decoding (opj_j2k_v2_t *p_j2k)
+static void opj_j2k_setup_decoding (opj_j2k_v2_t *p_j2k)
{
/* preconditions*/
assert(p_j2k != 00);
- opj_procedure_list_add_procedure(p_j2k->m_procedure_list,(opj_procedure)j2k_decode_tiles);
+ opj_procedure_list_add_procedure(p_j2k->m_procedure_list,(opj_procedure)opj_j2k_decode_tiles);
/* DEVELOPER CORNER, add your custom procedures */
}
/*
* Read and decode one tile.
*/
-static opj_bool j2k_decode_one_tile ( opj_j2k_v2_t *p_j2k,
- opj_stream_private_t *p_stream,
- opj_event_mgr_t * p_manager)
+static opj_bool opj_j2k_decode_one_tile ( opj_j2k_v2_t *p_j2k,
+ opj_stream_private_t *p_stream,
+ opj_event_mgr_t * p_manager)
{
opj_bool l_go_on = OPJ_TRUE;
OPJ_UINT32 l_current_tile_no;
/*Allocate and initialize some elements of codestrem index if not already done*/
if( !p_j2k->cstr_index->tile_index)
{
- if (!j2k_allocate_tile_element_cstr_index(p_j2k)){
+ if (!opj_j2k_allocate_tile_element_cstr_index(p_j2k)){
opj_free(l_current_data);
return OPJ_FALSE;
}
}
opj_event_msg_v2(p_manager, EVT_INFO, "Tile %d/%d has been decoded.\n", l_current_tile_no, (p_j2k->m_cp.th * p_j2k->m_cp.tw) - 1);
- if (! j2k_update_image_data(p_j2k->m_tcd,l_current_data, p_j2k->m_output_image)) {
+ if (! opj_j2k_update_image_data(p_j2k->m_tcd,l_current_data, p_j2k->m_output_image)) {
opj_free(l_current_data);
return OPJ_FALSE;
}
/**
* Sets up the procedures to do on decoding one tile. Developpers wanting to extend the library can add their own reading procedures.
*/
-static void j2k_setup_decoding_tile (opj_j2k_v2_t *p_j2k)
+static void opj_j2k_setup_decoding_tile (opj_j2k_v2_t *p_j2k)
{
/* preconditions*/
assert(p_j2k != 00);
- opj_procedure_list_add_procedure(p_j2k->m_procedure_list,(opj_procedure)j2k_decode_one_tile);
+ opj_procedure_list_add_procedure(p_j2k->m_procedure_list,(opj_procedure)opj_j2k_decode_one_tile);
/* DEVELOPER CORNER, add your custom procedures */
}
opj_copy_image_header(p_image, p_j2k->m_output_image);
/* customization of the decoding */
- j2k_setup_decoding(p_j2k);
+ opj_j2k_setup_decoding(p_j2k);
/* Decode the codestream */
- if (! j2k_exec (p_j2k,p_j2k->m_procedure_list,p_stream,p_manager)) {
+ if (! opj_j2k_exec (p_j2k,p_j2k->m_procedure_list,p_stream,p_manager)) {
opj_image_destroy(p_j2k->m_private_image);
p_j2k->m_private_image = NULL;
return OPJ_FALSE;
opj_bool j2k_get_tile( opj_j2k_v2_t *p_j2k,
opj_stream_private_t *p_stream,
opj_image_t* p_image,
- struct opj_event_mgr * p_manager,
+ opj_event_mgr_t * p_manager,
OPJ_UINT32 tile_index )
{
OPJ_UINT32 compno;
p_j2k->m_specific_param.m_decoder.m_tile_ind_to_dec = tile_index;
/* customization of the decoding */
- j2k_setup_decoding_tile(p_j2k);
+ opj_j2k_setup_decoding_tile(p_j2k);
/* Decode the codestream */
- if (! j2k_exec (p_j2k,p_j2k->m_procedure_list,p_stream,p_manager)) {
+ if (! opj_j2k_exec (p_j2k,p_j2k->m_procedure_list,p_stream,p_manager)) {
opj_image_destroy(p_j2k->m_private_image);
p_j2k->m_private_image = NULL;
return OPJ_FALSE;
l_max_tile_size = l_current_tile_size;
}
- j2k_get_tile_data(p_j2k->m_tcd,l_current_data);
+ opj_j2k_get_tile_data(p_j2k->m_tcd,l_current_data);
if (! j2k_post_write_tile (p_j2k,l_current_data,l_current_tile_size,p_stream,p_manager)) {
return OPJ_FALSE;
/* customization of the encoding */
j2k_setup_end_compress(p_j2k);
- if (! j2k_exec (p_j2k, p_j2k->m_procedure_list, p_stream, p_manager))
+ if (! opj_j2k_exec (p_j2k, p_j2k->m_procedure_list, p_stream, p_manager))
{
return OPJ_FALSE;
}
j2k_setup_encoding_validation (p_j2k);
/* validation of the parameters codec */
- if (! j2k_exec(p_j2k,p_j2k->m_validation_list,p_stream,p_manager)) {
+ if (! opj_j2k_exec(p_j2k,p_j2k->m_validation_list,p_stream,p_manager)) {
return OPJ_FALSE;
}
j2k_setup_header_writting(p_j2k);
/* write header */
- if (! j2k_exec (p_j2k,p_j2k->m_procedure_list,p_stream,p_manager)) {
+ if (! opj_j2k_exec (p_j2k,p_j2k->m_procedure_list,p_stream,p_manager)) {
return OPJ_FALSE;
}
/*
*
*/
-void j2k_get_tile_data (opj_tcd_v2_t * p_tcd, OPJ_BYTE * p_data)
+void opj_j2k_get_tile_data (opj_tcd_v2_t * p_tcd, OPJ_BYTE * p_data)
{
OPJ_UINT32 i,j,k = 0;
OPJ_UINT32 l_width,l_height,l_stride, l_offset_x,l_offset_y, l_image_width;
opj_procedure_list_add_procedure(p_j2k->m_procedure_list,(opj_procedure)j2k_write_epc );
opj_procedure_list_add_procedure(p_j2k->m_procedure_list,(opj_procedure)j2k_end_encoding );
- opj_procedure_list_add_procedure(p_j2k->m_procedure_list,(opj_procedure)j2k_destroy_header_memory);
+ opj_procedure_list_add_procedure(p_j2k->m_procedure_list,(opj_procedure)opj_j2k_destroy_header_memory);
}
/**
/* End of Developer Corner */
if (p_j2k->cstr_index) {
- opj_procedure_list_add_procedure(p_j2k->m_procedure_list,(opj_procedure)j2k_get_end_header );
+ opj_procedure_list_add_procedure(p_j2k->m_procedure_list,(opj_procedure)opj_j2k_get_end_header );
}
- opj_procedure_list_add_procedure(p_j2k->m_procedure_list,(opj_procedure)j2k_create_tcd);
+ opj_procedure_list_add_procedure(p_j2k->m_procedure_list,(opj_procedure)opj_j2k_create_tcd);
opj_procedure_list_add_procedure(p_j2k->m_procedure_list,(opj_procedure)j2k_update_rates);
}
/**
* Destroys the memory associated with the decoding of headers.
*/
-opj_bool j2k_destroy_header_memory (opj_j2k_v2_t * p_j2k,
- opj_stream_private_t *p_stream,
- opj_event_mgr_t * p_manager )
+static opj_bool opj_j2k_destroy_header_memory ( opj_j2k_v2_t * p_j2k,
+ opj_stream_private_t *p_stream,
+ opj_event_mgr_t * p_manager
+ )
{
/* preconditions */
assert(p_j2k != 00);
* @param p_j2k J2K codec.
* @param p_manager the user event manager.
*/
-opj_bool j2k_create_tcd(opj_j2k_v2_t *p_j2k,
- struct opj_stream_private *p_stream,
- struct opj_event_mgr * p_manager )
+static opj_bool opj_j2k_create_tcd( opj_j2k_v2_t *p_j2k,
+ opj_stream_private_t *p_stream,
+ opj_event_mgr_t * p_manager
+ )
{
/* preconditions */
assert(p_j2k != 00);