summaryrefslogtreecommitdiffstats
path: root/package/gstreamer1/gst1-plugins-bad/0001-openjpeg-Fix-build-against-openjpeg-2.2.patch
blob: d9268bc9b645c6f900ec6135eb977fe9334476d3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
From daaf649bda7231fd0d760802232a36ba62a4ea2d Mon Sep 17 00:00:00 2001
From: Clemens Lang <cal@macports.org>
Date: Sun, 13 Aug 2017 21:17:18 +0200
Subject: [PATCH] openjpeg: Fix build against openjpeg 2.2

OpenJPEG 2.2 has some API changes and thus ships its headers in a new
include path. Add a configure check (to both meson and autoconf) to
detect the newer version of OpenJPEG and add conditional includes.

Fix the autoconf test for OpenJPEG 2.1, which checked for HAVE_OPENJPEG,
which was always set even for 2.0.

https://bugzilla.gnome.org/show_bug.cgi?id=786250

Upstream: https://cgit.freedesktop.org/gstreamer/gst-plugins-bad/patch/?id=15f24fef53a955c7c76fc966302cb0453732e657
Signed-off-by: Peter Seiderer <ps.report@gmx.net>
---
 configure.ac               |  7 ++++++-
 ext/openjpeg/gstopenjpeg.h |  4 +++-
 ext/openjpeg/meson.build   | 21 +++++++++++++--------
 3 files changed, 22 insertions(+), 10 deletions(-)

diff --git a/configure.ac b/configure.ac
index 30e26b8..c4f08c7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2813,8 +2813,13 @@ AG_GST_CHECK_FEATURE(OPENJPEG, [openjpeg library], openjpeg, [
   if test x"$HAVE_OPENJPEG" = x"yes"; then
     dnl minor API changes in v2.1
     AG_GST_PKG_CHECK_MODULES(OPENJPEG_2_1, libopenjp2 >= 2.1)
-    if test x"$HAVE_OPENJPEG" = x"yes"; then
+    if test x"$HAVE_OPENJPEG_2_1" = x"yes"; then
       AC_DEFINE([HAVE_OPENJPEG_2_1], 1, [Define if OpenJPEG 2.1 is used])
+        dnl include paths changed for v2.2
+        AG_GST_PKG_CHECK_MODULES(OPENJPEG_2_2, libopenjp2 >= 2.2)
+        if test x"$HAVE_OPENJPEG_2_2" = x"yes"; then
+          AC_DEFINE([HAVE_OPENJPEG_2_2], 1, [Define if OpenJPEG 2.2 is used])
+        fi
     fi
   else
     # Fallback to v1.5
diff --git a/ext/openjpeg/gstopenjpeg.h b/ext/openjpeg/gstopenjpeg.h
index 03ce52e..52410a4 100644
--- a/ext/openjpeg/gstopenjpeg.h
+++ b/ext/openjpeg/gstopenjpeg.h
@@ -38,7 +38,9 @@
 #define OPJ_CPRL CPRL
 #else
 #include <stdio.h>
-# ifdef HAVE_OPENJPEG_2_1
+# if defined(HAVE_OPENJPEG_2_2)
+#  include <openjpeg-2.2/openjpeg.h>
+# elif defined(HAVE_OPENJPEG_2_1)
 #  include <openjpeg-2.1/openjpeg.h>
 # else
 #  include <openjpeg-2.0/openjpeg.h>
diff --git a/ext/openjpeg/meson.build b/ext/openjpeg/meson.build
index d60974c..e9c416c 100644
--- a/ext/openjpeg/meson.build
+++ b/ext/openjpeg/meson.build
@@ -6,16 +6,21 @@ openjpeg_sources = [
 
 openjpeg_cargs = []
 
-# Check for 2.1, then 2.0
-openjpeg_dep = dependency('libopenjp2', version : '>=2.1', required : false)
+# Check for 2.2, 2.1, then 2.0
+openjpeg_dep = dependency('libopenjp2', version : '>=2.2', required : false)
 if openjpeg_dep.found()
-  openjpeg_cargs += ['-DHAVE_OPENJPEG_2_1']
+  openjpeg_cargs += ['-DHAVE_OPENJPEG_2_2']
 else
-  openjpeg_dep = dependency('libopenjp2', required : false)
-  # Fallback to 1.5
-  if not openjpeg_dep.found()
-    openjpeg_dep = dependency('libopenjpeg1', required : false)
-    openjpeg_cargs += ['-DHAVE_OPENJPEG_1']
+  openjpeg_dep = dependency('libopenjp2', version : '>=2.1', required : false)
+  if openjpeg_dep.found()
+    openjpeg_cargs += ['-DHAVE_OPENJPEG_2_1']
+  else
+    openjpeg_dep = dependency('libopenjp2', required : false)
+    # Fallback to 1.5
+    if not openjpeg_dep.found()
+      openjpeg_dep = dependency('libopenjpeg1', required : false)
+      openjpeg_cargs += ['-DHAVE_OPENJPEG_1']
+    endif
   endif
 endif
 
-- 
2.12.3

OpenPOWER on IntegriCloud