Alien-FreeImage
view release on metacpan or search on metacpan
src/Source/LibOpenJPEG/openjpeg.c view on Meta::CPAN
l_stream,
&(l_codec->m_event_mgr));
}
return OPJ_FALSE;
}
OPJ_BOOL OPJ_CALLCONV opj_decode_tile_data( opj_codec_t *p_codec,
OPJ_UINT32 p_tile_index,
OPJ_BYTE * p_data,
OPJ_UINT32 p_data_size,
opj_stream_t *p_stream
)
{
if (p_codec && p_data && p_stream) {
opj_codec_private_t * l_codec = (opj_codec_private_t *) p_codec;
opj_stream_private_t * l_stream = (opj_stream_private_t *) p_stream;
if (! l_codec->is_decompressor) {
return OPJ_FALSE;
}
return l_codec->m_codec_data.m_decompression.opj_decode_tile_data( l_codec->m_codec,
p_tile_index,
p_data,
p_data_size,
l_stream,
&(l_codec->m_event_mgr) );
}
return OPJ_FALSE;
}
OPJ_BOOL OPJ_CALLCONV opj_get_decoded_tile( opj_codec_t *p_codec,
opj_stream_t *p_stream,
opj_image_t *p_image,
OPJ_UINT32 tile_index)
{
if (p_codec && p_stream) {
opj_codec_private_t * l_codec = (opj_codec_private_t *) p_codec;
opj_stream_private_t * l_stream = (opj_stream_private_t *) p_stream;
if (! l_codec->is_decompressor) {
return OPJ_FALSE;
}
return l_codec->m_codec_data.m_decompression.opj_get_decoded_tile( l_codec->m_codec,
l_stream,
p_image,
&(l_codec->m_event_mgr),
tile_index);
}
return OPJ_FALSE;
}
OPJ_BOOL OPJ_CALLCONV opj_set_decoded_resolution_factor(opj_codec_t *p_codec,
OPJ_UINT32 res_factor )
{
opj_codec_private_t * l_codec = (opj_codec_private_t *) p_codec;
if ( !l_codec ){
fprintf(stderr, "[ERROR] Input parameters of the setup_decoder function are incorrect.\n");
return OPJ_FALSE;
}
l_codec->m_codec_data.m_decompression.opj_set_decoded_resolution_factor(l_codec->m_codec,
res_factor,
&(l_codec->m_event_mgr) );
return OPJ_TRUE;
}
/* ---------------------------------------------------------------------- */
/* COMPRESSION FUNCTIONS*/
opj_codec_t* OPJ_CALLCONV opj_create_compress(OPJ_CODEC_FORMAT p_format)
{
opj_codec_private_t *l_codec = 00;
l_codec = (opj_codec_private_t*)opj_calloc(1, sizeof(opj_codec_private_t));
if (!l_codec) {
return 00;
}
memset(l_codec, 0, sizeof(opj_codec_private_t));
l_codec->is_decompressor = 0;
switch(p_format) {
case OPJ_CODEC_J2K:
l_codec->m_codec_data.m_compression.opj_encode = (OPJ_BOOL (*) (void *,
struct opj_stream_private *,
struct opj_event_mgr * )) opj_j2k_encode;
l_codec->m_codec_data.m_compression.opj_end_compress = (OPJ_BOOL (*) ( void *,
struct opj_stream_private *,
struct opj_event_mgr *)) opj_j2k_end_compress;
l_codec->m_codec_data.m_compression.opj_start_compress = (OPJ_BOOL (*) (void *,
struct opj_stream_private *,
struct opj_image * ,
struct opj_event_mgr *)) opj_j2k_start_compress;
l_codec->m_codec_data.m_compression.opj_write_tile = (OPJ_BOOL (*) (void *,
OPJ_UINT32,
OPJ_BYTE*,
OPJ_UINT32,
struct opj_stream_private *,
struct opj_event_mgr *) ) opj_j2k_write_tile;
l_codec->m_codec_data.m_compression.opj_destroy = (void (*) (void *)) opj_j2k_destroy;
l_codec->m_codec_data.m_compression.opj_setup_encoder = (void (*) ( void *,
opj_cparameters_t *,
struct opj_image *,
struct opj_event_mgr * )) opj_j2k_setup_encoder;
l_codec->m_codec = opj_j2k_create_compress();
if (! l_codec->m_codec) {
opj_free(l_codec);
return 00;
}
break;
src/Source/LibOpenJPEG/openjpeg.c view on Meta::CPAN
return OPJ_TRUE;
}
OPJ_BOOL OPJ_CALLCONV opj_write_tile ( opj_codec_t *p_codec,
OPJ_UINT32 p_tile_index,
OPJ_BYTE * p_data,
OPJ_UINT32 p_data_size,
opj_stream_t *p_stream )
{
if (p_codec && p_stream && p_data) {
opj_codec_private_t * l_codec = (opj_codec_private_t *) p_codec;
opj_stream_private_t * l_stream = (opj_stream_private_t *) p_stream;
if (l_codec->is_decompressor) {
return OPJ_FALSE;
}
return l_codec->m_codec_data.m_compression.opj_write_tile( l_codec->m_codec,
p_tile_index,
p_data,
p_data_size,
l_stream,
&(l_codec->m_event_mgr) );
}
return OPJ_FALSE;
}
/* ---------------------------------------------------------------------- */
void OPJ_CALLCONV opj_destroy_codec(opj_codec_t *p_codec)
{
if (p_codec) {
opj_codec_private_t * l_codec = (opj_codec_private_t *) p_codec;
if (l_codec->is_decompressor) {
l_codec->m_codec_data.m_decompression.opj_destroy(l_codec->m_codec);
}
else {
l_codec->m_codec_data.m_compression.opj_destroy(l_codec->m_codec);
}
l_codec->m_codec = 00;
opj_free(l_codec);
}
}
/* ---------------------------------------------------------------------- */
void OPJ_CALLCONV opj_dump_codec( opj_codec_t *p_codec,
OPJ_INT32 info_flag,
FILE* output_stream)
{
if (p_codec) {
opj_codec_private_t* l_codec = (opj_codec_private_t*) p_codec;
l_codec->opj_dump_codec(l_codec->m_codec, info_flag, output_stream);
return;
}
fprintf(stderr, "[ERROR] Input parameter of the dump_codec function are incorrect.\n");
return;
}
opj_codestream_info_v2_t* OPJ_CALLCONV opj_get_cstr_info(opj_codec_t *p_codec)
{
if (p_codec) {
opj_codec_private_t* l_codec = (opj_codec_private_t*) p_codec;
return l_codec->opj_get_codec_info(l_codec->m_codec);
}
return NULL;
}
void OPJ_CALLCONV opj_destroy_cstr_info(opj_codestream_info_v2_t **cstr_info) {
if (cstr_info) {
if ((*cstr_info)->m_default_tile_info.tccp_info){
opj_free((*cstr_info)->m_default_tile_info.tccp_info);
}
if ((*cstr_info)->tile_info){
/* FIXME not used for the moment*/
}
opj_free((*cstr_info));
(*cstr_info) = NULL;
}
}
opj_codestream_index_t * OPJ_CALLCONV opj_get_cstr_index(opj_codec_t *p_codec)
{
if (p_codec) {
opj_codec_private_t* l_codec = (opj_codec_private_t*) p_codec;
return l_codec->opj_get_codec_index(l_codec->m_codec);
}
return NULL;
}
void OPJ_CALLCONV opj_destroy_cstr_index(opj_codestream_index_t **p_cstr_index)
{
if (*p_cstr_index){
j2k_destroy_cstr_index(*p_cstr_index);
(*p_cstr_index) = NULL;
}
}
opj_stream_t* OPJ_CALLCONV opj_stream_create_default_file_stream_v3 (const char *fname, OPJ_BOOL p_is_read_stream)
{
return opj_stream_create_file_stream_v3(fname, OPJ_J2K_STREAM_CHUNK_SIZE, p_is_read_stream);
}
opj_stream_t* OPJ_CALLCONV opj_stream_create_file_stream_v3 (
const char *fname,
OPJ_SIZE_T p_size,
OPJ_BOOL p_is_read_stream)
{
opj_stream_t* l_stream = 00;
( run in 0.996 second using v1.01-cache-2.11-cpan-d7f47b0818f )