[Bf-blender-cvs] [5fae250] master: Revert "OpenJPEG: update to 2.1 from 1.5"

Sergey Sharybin noreply at git.blender.org
Tue Jul 12 17:45:12 CEST 2016


Commit: 5fae2503bf7d81b89f68f4c494f4c0e4c9eb5f46
Author: Sergey Sharybin
Date:   Tue Jul 12 17:38:26 2016 +0200
Branches: master
https://developer.blender.org/rB5fae2503bf7d81b89f68f4c494f4c0e4c9eb5f46

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.

===================================================================

M	build_files/cmake/Modules/FindOpenJPEG.cmake
M	extern/libopenjpeg/CMakeLists.txt
M	extern/libopenjpeg/bio.c
M	extern/libopenjpeg/bio.h
M	extern/libopenjpeg/cidx_manager.c
M	extern/libopenjpeg/cidx_manager.h
M	extern/libopenjpeg/cio.c
M	extern/libopenjpeg/cio.h
M	extern/libopenjpeg/dwt.c
M	extern/libopenjpeg/dwt.h
M	extern/libopenjpeg/event.c
M	extern/libopenjpeg/event.h
R056	extern/libopenjpeg/opj_stdint.h	extern/libopenjpeg/fix.h
D	extern/libopenjpeg/function_list.c
D	extern/libopenjpeg/function_list.h
M	extern/libopenjpeg/image.c
M	extern/libopenjpeg/image.h
M	extern/libopenjpeg/indexbox_manager.h
R054	extern/libopenjpeg/opj_intmath.h	extern/libopenjpeg/int.h
D	extern/libopenjpeg/invert.c
M	extern/libopenjpeg/j2k.c
M	extern/libopenjpeg/j2k.h
R080	extern/libopenjpeg/opj_clock.c	extern/libopenjpeg/j2k_lib.c
R078	extern/libopenjpeg/opj_clock.h	extern/libopenjpeg/j2k_lib.h
M	extern/libopenjpeg/jp2.c
M	extern/libopenjpeg/jp2.h
A	extern/libopenjpeg/jpt.c
R050	extern/libopenjpeg/invert.h	extern/libopenjpeg/jpt.h
R066	extern/libopenjpeg/opj_inttypes.h	extern/libopenjpeg/license.txt
M	extern/libopenjpeg/mct.c
M	extern/libopenjpeg/mct.h
M	extern/libopenjpeg/mqc.c
M	extern/libopenjpeg/mqc.h
M	extern/libopenjpeg/openjpeg.c
M	extern/libopenjpeg/openjpeg.h
D	extern/libopenjpeg/opj_codec.h
M	extern/libopenjpeg/opj_config.h
D	extern/libopenjpeg/opj_config_private.h
M	extern/libopenjpeg/opj_includes.h
M	extern/libopenjpeg/opj_malloc.h
M	extern/libopenjpeg/phix_manager.c
M	extern/libopenjpeg/pi.c
M	extern/libopenjpeg/pi.h
M	extern/libopenjpeg/ppix_manager.c
M	extern/libopenjpeg/raw.c
M	extern/libopenjpeg/raw.h
M	extern/libopenjpeg/t1.c
M	extern/libopenjpeg/t1.h
D	extern/libopenjpeg/t1_generate_luts.c
M	extern/libopenjpeg/t1_luts.h
M	extern/libopenjpeg/t2.c
M	extern/libopenjpeg/t2.h
M	extern/libopenjpeg/tcd.c
M	extern/libopenjpeg/tcd.h
M	extern/libopenjpeg/tgt.c
M	extern/libopenjpeg/tgt.h
M	extern/libopenjpeg/thix_manager.c
M	extern/libopenjpeg/tpix_manager.c
M	source/blender/imbuf/intern/IMB_filetype.h
M	source/blender/imbuf/intern/filetype.c
M	source/blender/imbuf/intern/jp2.c

===================================================================

diff --git a/build_files/cmake/Modules/FindOpenJPEG.cmake b/build_files/cmake/Modules/FindOpenJPEG.cmake
index 1f82591..d765103 100644
--- a/build_files/cmake/Modules/FindOpenJPEG.cmake
+++ b/build_files/cmake/Modules/FindOpenJPEG.cmake
@@ -41,14 +41,13 @@ FIND_PATH(OPENJPEG_INCLUDE_DIR
   HINTS
     ${_openjpeg_SEARCH_DIRS}
   PATH_SUFFIXES
-    openjpeg-2.1
-    include/openjpeg-2.1
     include
+    include/openjpeg-1.5
 )
 
 FIND_LIBRARY(OPENJPEG_LIBRARY
   NAMES
-    openjp2
+    openjpeg
   HINTS
     ${_openjpeg_SEARCH_DIRS}
   PATH_SUFFIXES
diff --git a/extern/libopenjpeg/CMakeLists.txt b/extern/libopenjpeg/CMakeLists.txt
index 0af2a90..ad49eee 100644
--- a/extern/libopenjpeg/CMakeLists.txt
+++ b/extern/libopenjpeg/CMakeLists.txt
@@ -31,56 +31,49 @@ set(INC_SYS
 
 )
 
-add_definitions(${OPENJPEG_DEFINES} -DUSE_JPIP)
+add_definitions(${OPENJPEG_DEFINES})
 
 set(SRC
 	bio.c
-	cidx_manager.c
 	cio.c
 	dwt.c
 	event.c
-	function_list.c
 	image.c
-	invert.c
 	j2k.c
+	j2k_lib.c
 	jp2.c
+	jpt.c
 	mct.c
 	mqc.c
 	openjpeg.c
-	opj_clock.c
-	phix_manager.c
 	pi.c
-	ppix_manager.c
 	raw.c
 	t1.c
-	t1_generate_luts.c
 	t2.c
 	tcd.c
 	tgt.c
+	cidx_manager.c
+	phix_manager.c
+	ppix_manager.c
 	thix_manager.c
 	tpix_manager.c
 
 	bio.h
-	cidx_manager.h
 	cio.h
 	dwt.h
 	event.h
-	function_list.h
+	fix.h
 	image.h
-	indexbox_manager.h
-	invert.h
+	int.h
 	j2k.h
+	j2k_lib.h
 	jp2.h
+	jpt.h
 	mct.h
 	mqc.h
 	openjpeg.h
-	opj_clock.h
-	opj_codec.h
 	opj_includes.h
-	opj_intmath.h
-	opj_inttypes.h
 	opj_malloc.h
-	opj_stdint.h
 	pi.h
 	raw.h
 	t1.h
@@ -88,6 +81,9 @@ set(SRC
 	t2.h
 	tcd.h
 	tgt.h
+	cidx_manager.h
+	indexbox_manager.h
+	opj_config.h
 )
 
 blender_add_lib(extern_openjpeg "${SRC}" "${INC}" "${INC_SYS}")
diff --git a/extern/libopenjpeg/bio.c b/extern/libopenjpeg/bio.c
index 5d49580..f04f3e5 100644
--- a/extern/libopenjpeg/bio.c
+++ b/extern/libopenjpeg/bio.c
@@ -1,15 +1,9 @@
 /*
- * 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) 2002-2014, Universite catholique de Louvain (UCL), Belgium
- * Copyright (c) 2002-2014, Professor Benoit Macq
+ * Copyright (c) 2002-2007, Communications and Remote Sensing Laboratory, Universite catholique de Louvain (UCL), Belgium
+ * Copyright (c) 2002-2007, Professor Benoit Macq
  * Copyright (c) 2001-2003, David Janssens
  * Copyright (c) 2002-2003, Yannick Verschueren
- * Copyright (c) 2003-2007, Francois-Olivier Devaux 
- * Copyright (c) 2003-2014, Antonin Descampe
+ * Copyright (c) 2003-2007, Francois-Olivier Devaux and Antonin Descampe
  * Copyright (c) 2005, Herve Drolon, FreeImage Team
  * All rights reserved.
  *
@@ -48,25 +42,25 @@ Write a bit
 @param bio BIO handle
 @param b Bit to write (0 or 1)
 */
-static void opj_bio_putbit(opj_bio_t *bio, OPJ_UINT32 b);
+static void bio_putbit(opj_bio_t *bio, unsigned int b);
 /**
 Read a bit
 @param bio BIO handle
 @return Returns the read bit
 */
-static OPJ_UINT32 opj_bio_getbit(opj_bio_t *bio);
+static int bio_getbit(opj_bio_t *bio);
 /**
 Write a byte
 @param bio BIO handle
- at return Returns OPJ_TRUE if successful, returns OPJ_FALSE otherwise
+ at return Returns 0 if successful, returns 1 otherwise
 */
-static OPJ_BOOL opj_bio_byteout(opj_bio_t *bio);
+static int bio_byteout(opj_bio_t *bio);
 /**
 Read a byte
 @param bio BIO handle
- at return Returns OPJ_TRUE if successful, returns OPJ_FALSE otherwise
+ at return Returns 0 if successful, returns 1 otherwise
 */
-static OPJ_BOOL opj_bio_bytein(opj_bio_t *bio);
+static int bio_bytein(opj_bio_t *bio);
 
 /*@}*/
 
@@ -78,37 +72,37 @@ static OPJ_BOOL opj_bio_bytein(opj_bio_t *bio);
 ==========================================================
 */
 
-OPJ_BOOL opj_bio_byteout(opj_bio_t *bio) {
+static int bio_byteout(opj_bio_t *bio) {
 	bio->buf = (bio->buf << 8) & 0xffff;
 	bio->ct = bio->buf == 0xff00 ? 7 : 8;
 	if (bio->bp >= bio->end) {
-		return OPJ_FALSE;
+		return 1;
 	}
-	*bio->bp++ = (OPJ_BYTE)(bio->buf >> 8);
-	return OPJ_TRUE;
+	*bio->bp++ = (unsigned char)(bio->buf >> 8);
+	return 0;
 }
 
-OPJ_BOOL opj_bio_bytein(opj_bio_t *bio) {
+static int bio_bytein(opj_bio_t *bio) {
 	bio->buf = (bio->buf << 8) & 0xffff;
 	bio->ct = bio->buf == 0xff00 ? 7 : 8;
 	if (bio->bp >= bio->end) {
-		return OPJ_FALSE;
+		return 1;
 	}
 	bio->buf |= *bio->bp++;
-	return OPJ_TRUE;
+	return 0;
 }
 
-void opj_bio_putbit(opj_bio_t *bio, OPJ_UINT32 b) {
+static void bio_putbit(opj_bio_t *bio, unsigned int b) {
 	if (bio->ct == 0) {
-		opj_bio_byteout(bio); /* MSD: why not check the return value of this function ? */
+		bio_byteout(bio);
 	}
 	bio->ct--;
 	bio->buf |= b << bio->ct;
 }
 
-OPJ_UINT32 opj_bio_getbit(opj_bio_t *bio) {
+static int bio_getbit(opj_bio_t *bio) {
 	if (bio->ct == 0) {
-		opj_bio_bytein(bio); /* MSD: why not check the return value of this function ? */
+		bio_bytein(bio);
 	}
 	bio->ct--;
 	return (bio->buf >> bio->ct) & 1;
@@ -120,22 +114,22 @@ OPJ_UINT32 opj_bio_getbit(opj_bio_t *bio) {
 ==========================================================
 */
 
-opj_bio_t* opj_bio_create(void) {
+opj_bio_t* bio_create(void) {
 	opj_bio_t *bio = (opj_bio_t*)opj_malloc(sizeof(opj_bio_t));
 	return bio;
 }
 
-void opj_bio_destroy(opj_bio_t *bio) {
+void bio_destroy(opj_bio_t *bio) {
 	if(bio) {
 		opj_free(bio);
 	}
 }
 
-ptrdiff_t opj_bio_numbytes(opj_bio_t *bio) {
-	return (bio->bp - bio->start);
+int bio_numbytes(opj_bio_t *bio) {
+	return (int)(bio->bp - bio->start);
 }
 
-void opj_bio_init_enc(opj_bio_t *bio, OPJ_BYTE *bp, OPJ_UINT32 len) {
+void bio_init_enc(opj_bio_t *bio, unsigned char *bp, int len) {
 	bio->start = bp;
 	bio->end = bp + len;
 	bio->bp = bp;
@@ -143,7 +137,7 @@ void opj_bio_init_enc(opj_bio_t *bio, OPJ_BYTE *bp, OPJ_UINT32 len) {
 	bio->ct = 8;
 }
 
-void opj_bio_init_dec(opj_bio_t *bio, OPJ_BYTE *bp, OPJ_UINT32 len) {
+void bio_init_dec(opj_bio_t *bio, unsigned char *bp, int len) {
 	bio->start = bp;
 	bio->end = bp + len;
 	bio->bp = bp;
@@ -151,44 +145,43 @@ void opj_bio_init_dec(opj_bio_t *bio, OPJ_BYTE *bp, OPJ_UINT32 len) {
 	bio->ct = 0;
 }
 
-void opj_bio_write(opj_bio_t *bio, OPJ_UINT32 v, OPJ_UINT32 n) {
-	OPJ_UINT32 i;
-	for (i = n - 1; i < n; i--) {
-		opj_bio_putbit(bio, (v >> i) & 1);
+void bio_write(opj_bio_t *bio, int v, int n) {
+	int i;
+	for (i = n - 1; i >= 0; i--) {
+		bio_putbit(bio, (v >> i) & 1);
 	}
 }
 
-OPJ_UINT32 opj_bio_read(opj_bio_t *bio, OPJ_UINT32 n) {
-	OPJ_UINT32 i;
-    OPJ_UINT32 v;
+int bio_read(opj_bio_t *bio, int n) {
+	int i, v;
 	v = 0;
-	for (i = n - 1; i < n; i--) {
-		v += opj_bio_getbit(bio) << i;
+	for (i = n - 1; i >= 0; i--) {
+		v += bio_getbit(bio) << i;
 	}
 	return v;
 }
 
-OPJ_BOOL opj_bio_flush(opj_bio_t *bio) {
+int bio_flush(opj_bio_t *bio) {
 	bio->ct = 0;
-	if (! opj_bio_byteout(bio)) {
-		return OPJ_FALSE;
+	if (bio_byteout(bio)) {
+		return 1;
 	}
 	if (bio->ct == 7) {
 		bio->ct = 0;
-		if (! opj_bio_byteout(bio)) {
-			return OPJ_FALSE;
+		if (bio_byteout(bio)) {
+			return 1;
 		}
 	}
-	return OPJ_TRUE;
+	return 0;
 }
 
-OPJ_BOOL opj_bio_inalign(opj_bio_t *bio) {
+int bio_inalign(opj_bio_t *bio) {
 	bio->ct = 0;
 	if ((bio->buf & 0xff) == 0xff) {
-		if (! opj_bio_bytein(bio)) {
-			return OPJ_FALSE;
+		if (bio_bytein(bio)) {
+			return 1;
 		}
 		bio->ct = 0;
 	}
-	return OPJ_TRUE;
+	return 0;
 }
diff --git a/extern/libopenjpeg/bio.h b/extern/libopenjpeg/bio.h
index fba2428..764d7cb 100644
--- a/extern/libopenjpeg/bio.h
+++ b/extern/libopenjpeg/bio.h
@@ -1,15 +1,9 @@
 /*
- * 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) 2002-2014, Universite catholique de Louvain (UCL), Belgium
- * Copyright (c) 2002-2014, Professor Benoit Macq
+ * Copyright (c) 2002-2007, Communications and Remote Sensing Laboratory, Universite catholique de Louvain (UCL), Belgium
+ * Copyright (c) 2002-2007, Professor Benoit Macq
  * Copyright (c) 2001-2003, David Janssens
  * Copyright (c) 2002-2003, Yannick Verschueren
- * Copyright (c) 2003-2007, Francois-Olivier Devaux 
- * Copyright (c) 2003-2014, Antonin Descampe
+ * Copyright (c) 2003-2007, Francois-Olivier Devaux and Antonin Descampe
  * Copyright (c) 2005, Herve Drolon, FreeImage Team
  * All rights reserved.
  *
@@ -37,9 +31,6 @@
 
 #ifndef __BIO_H
 #define __BIO_H
-
-#include <stddef.h> /* ptrdiff_t */
-
 /** 
 @file bio.h
 @brief Implementation of an individual bit input-output (BIO)
@@ -55,15 +46,15 @@ Individual bit input-output stream (BIO)
 */
 typedef struct opj_bio {
 	/** pointer to the start of the buffer */
-	OPJ_BYTE *start;
+	unsigned char *start;
 	/** pointer to the end of the buffer */
-	OPJ_BYTE *end;
+	unsigned char *end;
 	/** pointer to the present position in the buffer */
-	OPJ_BYTE *bp;
+	unsigned char *bp;
 	/** temporary place where each byte is read or written */
-	OPJ_UINT32 buf;
+	unsigned int buf;
 	/** coder : number of bits free to write. decoder : number of bits read */
-	OPJ_UINT32 ct;
+	int ct;
 } opj_bio_t;
 
 /** @name Exported functions */
@@ -73,58 +64,58 @@ typedef struct opj_bio {
 Create a new BIO handle 
 @return Returns a new BIO handle if successful, returns NULL otherwise
 */
-opj_bio_t* opj_bio_create(void);
+opj_bio_t* bio_create(void);
 /**
 Destroy a previously created BIO handle
 @param bio BIO handle to destroy
 */
-void opj_bio_destroy(opj_bio_t *bio);
+void bio_destroy(opj_bio_t *bio);
 /**
 Number of bytes written.
 @param bio BIO handle
 @return Returns the number of bytes written
 */
-ptrdiff_t opj_bio_numbytes(opj_bio_t *bio);
+int bio_numbytes(opj_bio_t *bio);
 /**
 Init encoder
 @param bio BIO handle
 @param bp Output buffer
 @param len Output buffer length 
 */
-void opj_bio_init_enc(opj_bio_t *bio, OPJ_BYTE *bp, OPJ_UINT32 len);
+void bio_init_enc(opj_bio_t *bio, unsigned char *bp, int len);
 /**
 Init decoder
 @param bio BIO handle
 @param bp Input buffer
 @param len Input buffe

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list