diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2016-07-12 18:38:26 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2016-07-12 18:38:26 +0300 |
commit | 5fae2503bf7d81b89f68f4c494f4c0e4c9eb5f46 (patch) | |
tree | 9b37773884e020430093b429c4fba4ff7b04481f /extern/libopenjpeg/event.c | |
parent | 51b274a6be5d59c7009fd3f439821d1e15b72709 (diff) |
Revert "OpenJPEG: update to 2.1 from 1.5"
This reverts commit f12204196fb1ee985ab9745cf9c70877601145f9.
Campbell, sorry. have to revert this for the time being.
We've missed some very important bits, such as:
- FFmpeg is usually linked against OpenJPEG
- OIIO needs OpenJPEG as well.
For FFmpeg issues we can either disable OpenJPEG there (since
we don't really use it), or bump FFmpeg to version 3.1.1 which
can use either of OpenJPEG 1.5 or 2.1.
For OIIO we do need OpenJPEG support (otherwise Cycles will
not be able to use j2k/j2c textures) and currently there is
NO solution to make OIIO working with OpenJPEG 2.1.
According to Matthias Fauconneau (aka mfv) Larry is working
on the patch to get OIIO work with OpenJPEG 2.1, but it'll
take some time still.
I've tried to look into support of some sort of build system
flag and do ifdefs, but it all becomes quite nasty, especially
with bundled OpenJPEG bumped to 2.1.
Surely such an update is something we'll have to apply to
but at this exact moment it causes quite some pain for all
developers.
Suggest to wait for until OIIO supports OpenJPEG 2.1 and then
go with the updates for real.
Diffstat (limited to 'extern/libopenjpeg/event.c')
-rw-r--r-- | extern/libopenjpeg/event.c | 75 |
1 files changed, 25 insertions, 50 deletions
diff --git a/extern/libopenjpeg/event.c b/extern/libopenjpeg/event.c index b6034b42d0a..38db33a9432 100644 --- a/extern/libopenjpeg/event.c +++ b/extern/libopenjpeg/event.c @@ -1,12 +1,5 @@ /* - * The copyright in this software is being made available under the 2-clauses - * BSD License, included below. This software may be subject to other third - * party and contributor rights, including patent rights, and no such rights - * are granted under this license. - * * Copyright (c) 2005, Herve Drolon, FreeImage Team - * Copyright (c) 2008, 2011-2012, Centre National d'Etudes Spatiales (CNES), FR - * Copyright (c) 2012, CS Systemes d'Information, France * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -67,80 +60,62 @@ _itoa(int i, char *a, int r) { #endif /* !_WIN32 */ #endif - /* ----------------------------------------------------------------------- */ -/** - * Default callback function. - * Do nothing. - */ -static void opj_default_callback (const char *msg, void *client_data) -{ - OPJ_ARG_NOT_USED(msg); - OPJ_ARG_NOT_USED(client_data); -} -/* ----------------------------------------------------------------------- */ +opj_event_mgr_t* OPJ_CALLCONV opj_set_event_mgr(opj_common_ptr cinfo, opj_event_mgr_t *event_mgr, void *context) { + if(cinfo) { + opj_event_mgr_t *previous = cinfo->event_mgr; + cinfo->event_mgr = event_mgr; + cinfo->client_data = context; + return previous; + } + return NULL; +} -/* ----------------------------------------------------------------------- */ -OPJ_BOOL opj_event_msg(opj_event_mgr_t* p_event_mgr, OPJ_INT32 event_type, const char *fmt, ...) { -#define OPJ_MSG_SIZE 512 /* 512 bytes should be more than enough for a short message */ - opj_msg_callback msg_handler = 00; - void * l_data = 00; +opj_bool opj_event_msg(opj_common_ptr cinfo, int event_type, const char *fmt, ...) { +#define MSG_SIZE 512 /* 512 bytes should be more than enough for a short message */ + opj_msg_callback msg_handler = NULL; - if(p_event_mgr != 00) { + opj_event_mgr_t *event_mgr = cinfo->event_mgr; + if(event_mgr != NULL) { switch(event_type) { case EVT_ERROR: - msg_handler = p_event_mgr->error_handler; - l_data = p_event_mgr->m_error_data; + msg_handler = event_mgr->error_handler; break; case EVT_WARNING: - msg_handler = p_event_mgr->warning_handler; - l_data = p_event_mgr->m_warning_data; + msg_handler = event_mgr->warning_handler; break; case EVT_INFO: - msg_handler = p_event_mgr->info_handler; - l_data = p_event_mgr->m_info_data; + msg_handler = event_mgr->info_handler; break; default: break; } - if(msg_handler == 00) { + if(msg_handler == NULL) { return OPJ_FALSE; } } else { return OPJ_FALSE; } - if ((fmt != 00) && (p_event_mgr != 00)) { + if ((fmt != NULL) && (event_mgr != NULL)) { va_list arg; - size_t str_length/*, i, j*/; /* UniPG */ - char message[OPJ_MSG_SIZE]; - memset(message, 0, OPJ_MSG_SIZE); + int str_length/*, i, j*/; /* UniPG */ + char message[MSG_SIZE]; /* initialize the optional parameter list */ va_start(arg, fmt); - /* check the length of the format string */ - str_length = (strlen(fmt) > OPJ_MSG_SIZE) ? OPJ_MSG_SIZE : strlen(fmt); - (void)str_length; /* parse the format string and put the result in 'message' */ - vsnprintf(message, OPJ_MSG_SIZE, fmt, arg); /* UniPG */ + str_length = vsnprintf(message, MSG_SIZE, fmt, arg); /* UniPG */ /* deinitialize the optional parameter list */ va_end(arg); /* output the message to the user program */ - msg_handler(message, l_data); + if( str_length > -1 && str_length < MSG_SIZE ) + msg_handler(message, cinfo->client_data); + else return OPJ_FALSE; } return OPJ_TRUE; } -void opj_set_default_event_handler(opj_event_mgr_t * p_manager) -{ - p_manager->m_error_data = 00; - p_manager->m_warning_data = 00; - p_manager->m_info_data = 00; - p_manager->error_handler = opj_default_callback; - p_manager->info_handler = opj_default_callback; - p_manager->warning_handler = opj_default_callback; -} - |