OpenJPEG
2.5.0
|
Implementation of a byte input-output process (CIO) More...
#include "opj_config_private.h"
Go to the source code of this file.
Data Structures | |
struct | opj_stream_private |
Byte input-output stream. More... | |
Macros | |
#define | opj_write_bytes opj_write_bytes_LE |
#define | opj_read_bytes opj_read_bytes_LE |
#define | opj_write_double opj_write_double_LE |
#define | opj_read_double opj_read_double_LE |
#define | opj_write_float opj_write_float_LE |
#define | opj_read_float opj_read_float_LE |
#define | OPJ_STREAM_STATUS_OUTPUT 0x1U |
#define | OPJ_STREAM_STATUS_INPUT 0x2U |
#define | OPJ_STREAM_STATUS_END 0x4U |
#define | OPJ_STREAM_STATUS_ERROR 0x8U |
Typedefs | |
typedef struct opj_stream_private | opj_stream_private_t |
Byte input-output stream. More... | |
Functions | |
Exported functions (see also openjpeg.h) | |
void | opj_write_bytes_BE (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 Big Endian cpus. More... | |
void | opj_read_bytes_BE (const 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. More... | |
void | opj_write_bytes_LE (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. More... | |
void | opj_read_bytes_LE (const 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. More... | |
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 Little Endian cpus. More... | |
void | opj_write_double_BE (OPJ_BYTE *p_buffer, OPJ_FLOAT64 p_value) |
void | opj_read_double_LE (const OPJ_BYTE *p_buffer, OPJ_FLOAT64 *p_value) |
Reads some bytes from the given data buffer, this function is used in Little Endian cpus. More... | |
void | opj_read_double_BE (const OPJ_BYTE *p_buffer, OPJ_FLOAT64 *p_value) |
Reads some bytes from the given data buffer, this function is used in Big Endian cpus. More... | |
void | opj_read_float_LE (const OPJ_BYTE *p_buffer, OPJ_FLOAT32 *p_value) |
Reads some bytes from the given data buffer, this function is used in Little Endian cpus. More... | |
void | opj_read_float_BE (const OPJ_BYTE *p_buffer, OPJ_FLOAT32 *p_value) |
Reads some bytes from the given data buffer, this function is used in Big Endian cpus. More... | |
void | opj_write_float_LE (OPJ_BYTE *p_buffer, OPJ_FLOAT32 p_value) |
Write some bytes to the given data buffer, this function is used in Little Endian cpus. More... | |
void | opj_write_float_BE (OPJ_BYTE *p_buffer, OPJ_FLOAT32 p_value) |
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) |
Reads some bytes from the stream. More... | |
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 some bytes to the stream. More... | |
OPJ_BOOL | opj_stream_flush (opj_stream_private_t *p_stream, struct opj_event_mgr *p_event_mgr) |
Writes the content of the stream buffer to the stream. More... | |
OPJ_OFF_T | opj_stream_skip (opj_stream_private_t *p_stream, OPJ_OFF_T p_size, struct opj_event_mgr *p_event_mgr) |
Skips a number of bytes from the stream. More... | |
OPJ_OFF_T | opj_stream_tell (const opj_stream_private_t *p_stream) |
Tells the byte offset on the stream (similar to ftell). More... | |
OPJ_OFF_T | opj_stream_get_number_byte_left (const opj_stream_private_t *p_stream) |
Get the number of bytes left before the end of the stream (similar to cio_numbytesleft). More... | |
OPJ_OFF_T | opj_stream_write_skip (opj_stream_private_t *p_stream, OPJ_OFF_T p_size, struct opj_event_mgr *p_event_mgr) |
Skips a number of bytes from the stream. More... | |
OPJ_OFF_T | opj_stream_read_skip (opj_stream_private_t *p_stream, OPJ_OFF_T p_size, struct opj_event_mgr *p_event_mgr) |
Skips a number of bytes from the stream. More... | |
OPJ_BOOL | opj_stream_read_seek (opj_stream_private_t *p_stream, OPJ_OFF_T p_size, struct opj_event_mgr *p_event_mgr) |
Skips a number of bytes from the stream. More... | |
OPJ_BOOL | opj_stream_write_seek (opj_stream_private_t *p_stream, OPJ_OFF_T p_size, struct opj_event_mgr *p_event_mgr) |
Skips a number of bytes from the stream. More... | |
OPJ_BOOL | opj_stream_seek (opj_stream_private_t *p_stream, OPJ_OFF_T p_size, struct opj_event_mgr *p_event_mgr) |
Seeks a number of bytes from the stream. More... | |
OPJ_BOOL | opj_stream_has_seek (const opj_stream_private_t *p_stream) |
Tells if the given stream is seekable. More... | |
OPJ_SIZE_T | opj_stream_default_read (void *p_buffer, OPJ_SIZE_T p_nb_bytes, void *p_user_data) |
FIXME DOC. More... | |
OPJ_SIZE_T | opj_stream_default_write (void *p_buffer, OPJ_SIZE_T p_nb_bytes, void *p_user_data) |
FIXME DOC. More... | |
OPJ_OFF_T | opj_stream_default_skip (OPJ_OFF_T p_nb_bytes, void *p_user_data) |
FIXME DOC. More... | |
OPJ_BOOL | opj_stream_default_seek (OPJ_OFF_T p_nb_bytes, void *p_user_data) |
FIXME DOC. More... | |
Implementation of a byte input-output process (CIO)
The functions in CIO.C have for goal to realize a byte input / output process.
#define opj_read_bytes opj_read_bytes_LE |
#define opj_read_double opj_read_double_LE |
#define opj_read_float opj_read_float_LE |
#define OPJ_STREAM_STATUS_END 0x4U |
#define OPJ_STREAM_STATUS_ERROR 0x8U |
#define OPJ_STREAM_STATUS_INPUT 0x2U |
#define OPJ_STREAM_STATUS_OUTPUT 0x1U |
#define opj_write_bytes opj_write_bytes_LE |
#define opj_write_double opj_write_double_LE |
#define opj_write_float opj_write_float_LE |
typedef struct opj_stream_private opj_stream_private_t |
Byte input-output stream.
void opj_read_bytes_BE | ( | const 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.
p_buffer | pointer the data buffer to read data from. |
p_value | pointer to the value that will store the data. |
p_nb_bytes | the nb bytes to read. |
void opj_read_bytes_LE | ( | const 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.
p_buffer | pointer the data buffer to read data from. |
p_value | pointer to the value that will store the data. |
p_nb_bytes | the nb bytes to read. |
void opj_read_double_BE | ( | const OPJ_BYTE * | p_buffer, |
OPJ_FLOAT64 * | p_value | ||
) |
Reads some bytes from the given data buffer, this function is used in Big Endian cpus.
p_buffer | pointer the data buffer to read data from. |
p_value | pointer to the value that will store the data. |
void opj_read_double_LE | ( | const OPJ_BYTE * | p_buffer, |
OPJ_FLOAT64 * | p_value | ||
) |
Reads some bytes from the given data buffer, this function is used in Little Endian cpus.
p_buffer | pointer the data buffer to read data from. |
p_value | pointer to the value that will store the data. |
void opj_read_float_BE | ( | const OPJ_BYTE * | p_buffer, |
OPJ_FLOAT32 * | p_value | ||
) |
Reads some bytes from the given data buffer, this function is used in Big Endian cpus.
p_buffer | pointer the data buffer to read data from. |
p_value | pointer to the value that will store the data. |
void opj_read_float_LE | ( | const OPJ_BYTE * | p_buffer, |
OPJ_FLOAT32 * | p_value | ||
) |
Reads some bytes from the given data buffer, this function is used in Little Endian cpus.
p_buffer | pointer the data buffer to read data from. |
p_value | pointer to the value that will store the data. |
OPJ_SIZE_T opj_stream_default_read | ( | void * | p_buffer, |
OPJ_SIZE_T | p_nb_bytes, | ||
void * | p_user_data | ||
) |
FIXME DOC.
References OPJ_ARG_NOT_USED, and OPJ_FALSE.
Referenced by opj_stream_create(), and opj_stream_has_seek().
OPJ_SIZE_T opj_stream_default_write | ( | void * | p_buffer, |
OPJ_SIZE_T | p_nb_bytes, | ||
void * | p_user_data | ||
) |
OPJ_BOOL opj_stream_flush | ( | opj_stream_private_t * | p_stream, |
struct opj_event_mgr * | p_event_mgr | ||
) |
Writes the content of the stream buffer to the stream.
p_stream | the stream to write data to. |
p_event_mgr | the user event manager to be notified of special events. |
References EVT_INFO, opj_stream_private::m_bytes_in_buffer, opj_stream_private::m_current_data, opj_stream_private::m_status, opj_stream_private::m_stored_data, opj_stream_private::m_user_data, opj_stream_private::m_write_fn, opj_event_msg(), OPJ_FALSE, OPJ_STREAM_STATUS_ERROR, and OPJ_TRUE.
Referenced by opj_j2k_write_eoc(), opj_stream_write_data(), opj_stream_write_seek(), and opj_stream_write_skip().
OPJ_OFF_T opj_stream_get_number_byte_left | ( | const opj_stream_private_t * | p_stream | ) |
Get the number of bytes left before the end of the stream (similar to cio_numbytesleft).
p_stream | the stream to get the information from. |
References opj_stream_private::m_byte_offset, and opj_stream_private::m_user_data_length.
Referenced by opj_j2k_decode_tile(), opj_j2k_decode_tiles(), opj_j2k_read_sod(), opj_j2k_read_tile_header(), opj_jp2_read_boxhdr(), and opj_jp2_read_header_procedure().
OPJ_BOOL opj_stream_has_seek | ( | const opj_stream_private_t * | p_stream | ) |
Tells if the given stream is seekable.
References opj_stream_private::m_seek_fn, and opj_stream_default_seek().
Referenced by opj_j2k_need_nb_tile_parts_correction(), opj_jp2_default_validation(), and opj_jp2_write_jp2c().
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 | ||
) |
Reads some bytes from the stream.
p_stream | the stream to read data from. |
p_buffer | pointer to the data buffer that will receive the data. |
p_size | number of bytes to read. |
p_event_mgr | the user event manager to be notified of special events. |
References EVT_INFO, opj_stream_private::m_buffer_size, opj_stream_private::m_byte_offset, opj_stream_private::m_bytes_in_buffer, opj_stream_private::m_current_data, opj_stream_private::m_read_fn, opj_stream_private::m_status, opj_stream_private::m_stored_data, opj_stream_private::m_user_data, opj_event_msg(), and OPJ_STREAM_STATUS_END.
Referenced by opj_check_EPHuse(), opj_j2k_decode_tile(), opj_j2k_need_nb_tile_parts_correction(), opj_j2k_read_header_procedure(), opj_j2k_read_soc(), opj_j2k_read_sod(), opj_j2k_read_tile_header(), opj_j2k_read_unk(), opj_jp2_read_boxhdr(), and opj_jp2_read_header_procedure().
OPJ_BOOL opj_stream_read_seek | ( | opj_stream_private_t * | p_stream, |
OPJ_OFF_T | p_size, | ||
struct opj_event_mgr * | p_event_mgr | ||
) |
Skips a number of bytes from the stream.
p_stream | the stream to skip data from. |
p_size | the number of bytes to skip. |
p_event_mgr | the user event manager to be notified of special events. |
References opj_stream_private::m_byte_offset, opj_stream_private::m_bytes_in_buffer, opj_stream_private::m_current_data, opj_stream_private::m_seek_fn, opj_stream_private::m_status, opj_stream_private::m_stored_data, opj_stream_private::m_user_data, OPJ_ARG_NOT_USED, OPJ_FALSE, OPJ_STREAM_STATUS_END, and OPJ_TRUE.
Referenced by opj_j2k_decode_one_tile(), opj_stream_create(), and opj_stream_read_skip().
OPJ_OFF_T opj_stream_read_skip | ( | opj_stream_private_t * | p_stream, |
OPJ_OFF_T | p_size, | ||
struct opj_event_mgr * | p_event_mgr | ||
) |
Skips a number of bytes from the stream.
p_stream | the stream to skip data from. |
p_size | the number of bytes to skip. |
p_event_mgr | the user event manager to be notified of special events. |
References EVT_INFO, opj_stream_private::m_byte_offset, opj_stream_private::m_bytes_in_buffer, opj_stream_private::m_current_data, opj_stream_private::m_skip_fn, opj_stream_private::m_status, opj_stream_private::m_stored_data, opj_stream_private::m_user_data, opj_stream_private::m_user_data_length, opj_event_msg(), opj_stream_read_seek(), and OPJ_STREAM_STATUS_END.
Referenced by opj_stream_create().
OPJ_BOOL opj_stream_seek | ( | opj_stream_private_t * | p_stream, |
OPJ_OFF_T | p_size, | ||
struct opj_event_mgr * | p_event_mgr | ||
) |
Seeks a number of bytes from the stream.
p_stream | the stream to skip data from. |
p_size | the number of bytes to skip. |
p_event_mgr | the user event manager to be notified of special events. |
References opj_stream_private::m_opj_seek.
Referenced by opj_check_EPHuse(), opj_j2k_need_nb_tile_parts_correction(), opj_j2k_write_updated_tlm(), opj_jp2_write_jp2c(), opj_write_cidx(), opj_write_cptr(), opj_write_mainmhix(), opj_write_manf(), opj_write_phix(), opj_write_phixfaix(), opj_write_ppix(), opj_write_ppixfaix(), opj_write_thix(), opj_write_tilemhix(), opj_write_tpix(), and opj_write_tpixfaix().
OPJ_OFF_T opj_stream_skip | ( | opj_stream_private_t * | p_stream, |
OPJ_OFF_T | p_size, | ||
struct opj_event_mgr * | p_event_mgr | ||
) |
Skips a number of bytes from the stream.
p_stream | the stream to skip data from. |
p_size | the number of bytes to skip. |
p_event_mgr | the user event manager to be notified of special events. |
References opj_stream_private::m_opj_skip.
Referenced by opj_j2k_need_nb_tile_parts_correction(), opj_j2k_read_tile_header(), opj_jp2_read_header_procedure(), opj_jp2_skip_jp2c(), opj_jpip_skip_iptr(), opj_write_cidx(), opj_write_cptr(), opj_write_mainmhix(), opj_write_manf(), opj_write_phix(), opj_write_phixfaix(), opj_write_ppix(), opj_write_ppixfaix(), opj_write_thix(), opj_write_tilemhix(), opj_write_tpix(), and opj_write_tpixfaix().
OPJ_OFF_T opj_stream_tell | ( | const opj_stream_private_t * | p_stream | ) |
Tells the byte offset on the stream (similar to ftell).
p_stream | the stream to get the information from. |
References opj_stream_private::m_byte_offset.
Referenced by opj_check_EPHuse(), opj_j2k_get_end_header(), opj_j2k_need_nb_tile_parts_correction(), opj_j2k_read_header_procedure(), opj_j2k_read_soc(), opj_j2k_read_sod(), opj_j2k_read_tile_header(), opj_j2k_read_unk(), opj_j2k_update_rates(), opj_j2k_write_epc(), opj_j2k_write_tlm(), opj_j2k_write_updated_tlm(), opj_jp2_skip_jp2c(), opj_jp2_write_jp2c(), opj_jpip_skip_iptr(), opj_write_cidx(), opj_write_cptr(), opj_write_mainmhix(), opj_write_manf(), opj_write_phix(), opj_write_phixfaix(), opj_write_ppix(), opj_write_ppixfaix(), opj_write_thix(), opj_write_tilemhix(), opj_write_tpix(), and opj_write_tpixfaix().
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 some bytes to the stream.
p_stream | the stream to write data to. |
p_buffer | pointer to the data buffer holds the data to be writtent. |
p_size | number of bytes to write. |
p_event_mgr | the user event manager to be notified of special events. |
References opj_stream_private::m_buffer_size, opj_stream_private::m_byte_offset, opj_stream_private::m_bytes_in_buffer, opj_stream_private::m_current_data, opj_stream_private::m_status, opj_stream_private::m_stored_data, opj_stream_flush(), and OPJ_STREAM_STATUS_ERROR.
Referenced by opj_j2k_post_write_tile(), opj_j2k_write_cbd(), opj_j2k_write_coc(), opj_j2k_write_cod(), opj_j2k_write_com(), opj_j2k_write_eoc(), opj_j2k_write_mcc_record(), opj_j2k_write_mco(), opj_j2k_write_mct_record(), opj_j2k_write_poc(), opj_j2k_write_qcc(), opj_j2k_write_qcd(), opj_j2k_write_rgn(), opj_j2k_write_siz(), opj_j2k_write_soc(), opj_j2k_write_tlm(), opj_j2k_write_updated_tlm(), opj_jp2_write_ftyp(), opj_jp2_write_jp(), opj_jp2_write_jp2c(), opj_jp2_write_jp2h(), opj_write_cidx(), opj_write_cptr(), opj_write_mainmhix(), opj_write_manf(), opj_write_phix(), opj_write_phixfaix(), opj_write_ppix(), opj_write_ppixfaix(), opj_write_thix(), opj_write_tilemhix(), opj_write_tpix(), and opj_write_tpixfaix().
OPJ_BOOL opj_stream_write_seek | ( | opj_stream_private_t * | p_stream, |
OPJ_OFF_T | p_size, | ||
struct opj_event_mgr * | p_event_mgr | ||
) |
Skips a number of bytes from the stream.
p_stream | the stream to skip data from. |
p_size | the number of bytes to skip. |
p_event_mgr | the user event manager to be notified of special events. |
References opj_stream_private::m_byte_offset, opj_stream_private::m_bytes_in_buffer, opj_stream_private::m_current_data, opj_stream_private::m_seek_fn, opj_stream_private::m_status, opj_stream_private::m_stored_data, opj_stream_private::m_user_data, OPJ_FALSE, opj_stream_flush(), OPJ_STREAM_STATUS_ERROR, and OPJ_TRUE.
Referenced by opj_stream_create().
OPJ_OFF_T opj_stream_write_skip | ( | opj_stream_private_t * | p_stream, |
OPJ_OFF_T | p_size, | ||
struct opj_event_mgr * | p_event_mgr | ||
) |
Skips a number of bytes from the stream.
p_stream | the stream to skip data from. |
p_size | the number of bytes to skip. |
p_event_mgr | the user event manager to be notified of special events. |
References EVT_INFO, opj_stream_private::m_byte_offset, opj_stream_private::m_bytes_in_buffer, opj_stream_private::m_skip_fn, opj_stream_private::m_status, opj_stream_private::m_user_data, opj_event_msg(), opj_stream_flush(), and OPJ_STREAM_STATUS_ERROR.
Referenced by opj_stream_create().
void opj_write_bytes_BE | ( | 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 Big Endian cpus.
p_buffer | pointer the data buffer to write data to. |
p_value | the value to write |
p_nb_bytes | the number of bytes to write |
void opj_write_bytes_LE | ( | 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.
p_buffer | pointer the data buffer to write data to. |
p_value | the value to write |
p_nb_bytes | the number of bytes to write |
void opj_write_double_BE | ( | 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 Little Endian cpus.
p_buffer | pointer the data buffer to write data to. |
p_value | the value to write |
void opj_write_float_BE | ( | OPJ_BYTE * | p_buffer, |
OPJ_FLOAT32 | p_value | ||
) |
void opj_write_float_LE | ( | OPJ_BYTE * | p_buffer, |
OPJ_FLOAT32 | p_value | ||
) |
Write some bytes to the given data buffer, this function is used in Little Endian cpus.
p_buffer | pointer the data buffer to write data to. |
p_value | the value to write |