1 --- a/lib/libv4lconvert/Makefile
2 +++ b/lib/libv4lconvert/Makefile
4 override CPPFLAGS += -I../include -fvisibility=hidden
6 -LIBS_libv4lconvert = -lrt -lm -ljpeg
7 +LIBS_libv4lconvert = -lrt -lm
9 ifeq ($(LINKTYPE),static)
10 CONVERT_LIB = libv4lconvert.a
11 @@ -10,16 +10,22 @@ override CPPFLAGS += -fPIC
14 CONVERT_OBJS = libv4lconvert.o tinyjpeg.o sn9c10x.o sn9c20x.o pac207.o \
16 mr97310a.o flip.o crop.o jidctflt.o spca561-decompress.o \
17 rgbyuv.o sn9c2028-decomp.o spca501.o sq905c.o bayer.o hm12.o \
18 - stv0680.o cpia1.o se401.o jpgl.o jpeg.o jpeg_memsrcdest.o \
19 + stv0680.o cpia1.o se401.o jpgl.o jpeg.o \
20 control/libv4lcontrol.o processing/libv4lprocessing.o \
21 processing/whitebalance.o processing/autogain.o \
22 processing/gamma.o helper.o
23 TARGETS = $(CONVERT_LIB) libv4lconvert.pc ov511-decomp ov518-decomp
24 INCLUDES = ../include/libv4lconvert.h
26 +ifeq ($(DISABLE_LIBJPEG),1)
27 +override CFLAGS += -DDISABLE_LIBJPEG
29 +LIBS_libv4lconvert += -ljpeg
30 +CONVERT_OBJS += jl2005bcd.o jpeg_memsrcdest.o
33 override CPPFLAGS += -DLIBDIR=\"$(LIBDIR)\" -DLIBSUBDIR=\"$(LIBSUBDIR)\"
36 --- a/lib/libv4lconvert/jpeg.c
37 +++ b/lib/libv4lconvert/jpeg.c
41 #include "libv4lconvert-priv.h"
42 +#ifndef DISABLE_LIBJPEG
43 #include "jpeg_memsrcdest.h"
46 int v4lconvert_decode_jpeg_tinyjpeg(struct v4lconvert_data *data,
47 unsigned char *src, int src_size, unsigned char *dest,
48 @@ -107,6 +109,8 @@ int v4lconvert_decode_jpeg_tinyjpeg(stru
52 +#ifndef DISABLE_LIBJPEG
54 static void jerr_error_exit(j_common_ptr cinfo)
56 struct v4lconvert_data *data = cinfo->client_data;
57 @@ -405,3 +409,6 @@ int v4lconvert_decode_jpeg_libjpeg(struc
64 --- a/lib/libv4lconvert/libv4lconvert-priv.h
65 +++ b/lib/libv4lconvert/libv4lconvert-priv.h
69 #include <sys/types.h>
70 +#ifndef DISABLE_LIBJPEG
74 #include "libv4lconvert.h"
75 #include "control/libv4lcontrol.h"
76 @@ -50,11 +52,13 @@ struct v4lconvert_data {
77 int64_t supported_src_formats; /* bitfield */
78 char error_msg[V4LCONVERT_ERROR_MSG_SIZE];
79 struct jdec_private *tinyjpeg;
80 +#ifndef DISABLE_LIBJPEG
81 struct jpeg_error_mgr jerr;
83 jmp_buf jerr_jmp_state;
84 struct jpeg_decompress_struct cinfo;
85 int cinfo_initialized;
87 struct v4l2_frmsizeenum framesizes[V4LCONVERT_MAX_FRAMESIZES];
88 unsigned int no_framesizes;
90 --- a/lib/libv4lconvert/libv4lconvert.c
91 +++ b/lib/libv4lconvert/libv4lconvert.c
92 @@ -78,7 +78,9 @@ static const struct v4lconvert_pixfmt su
93 { V4L2_PIX_FMT_SN9C2028, 0, 9, 9, 1 },
94 { V4L2_PIX_FMT_PAC207, 0, 9, 9, 1 },
95 { V4L2_PIX_FMT_MR97310A, 0, 9, 9, 1 },
96 +#ifndef DISABLE_LIBJPEG
97 { V4L2_PIX_FMT_JL2005BCD, 0, 9, 9, 1 },
99 { V4L2_PIX_FMT_SQ905C, 0, 9, 9, 1 },
101 { V4L2_PIX_FMT_SE401, 0, 8, 9, 1 },
102 @@ -186,8 +188,10 @@ void v4lconvert_destroy(struct v4lconver
103 tinyjpeg_set_components(data->tinyjpeg, comps, 3);
104 tinyjpeg_free(data->tinyjpeg);
106 +#ifndef DISABLE_LIBJPEG
107 if (data->cinfo_initialized)
108 jpeg_destroy_decompress(&data->cinfo);
110 v4lconvert_helper_cleanup(data);
111 free(data->convert1_buf);
112 free(data->convert2_buf);
113 @@ -634,10 +638,13 @@ static int v4lconvert_convert_pixfmt(str
114 /* JPG and variants */
115 case V4L2_PIX_FMT_MJPEG:
116 case V4L2_PIX_FMT_JPEG:
117 +#ifndef DISABLE_LIBJPEG
118 if (data->flags & V4LCONVERT_USE_TINYJPEG) {
120 result = v4lconvert_decode_jpeg_tinyjpeg(data,
122 fmt, dest_pix_fmt, 0);
123 +#ifndef DISABLE_LIBJPEG
125 result = v4lconvert_decode_jpeg_libjpeg(data,
127 @@ -652,6 +659,7 @@ static int v4lconvert_convert_pixfmt(str
128 fmt, dest_pix_fmt, 0);
133 case V4L2_PIX_FMT_PJPG:
134 result = v4lconvert_decode_jpeg_tinyjpeg(data, src, src_size,
135 @@ -777,7 +785,9 @@ static int v4lconvert_convert_pixfmt(str
136 case V4L2_PIX_FMT_SN9C10X:
137 case V4L2_PIX_FMT_PAC207:
138 case V4L2_PIX_FMT_MR97310A:
139 +#ifndef DISABLE_LIBJPEG
140 case V4L2_PIX_FMT_JL2005BCD:
142 case V4L2_PIX_FMT_SN9C2028:
143 case V4L2_PIX_FMT_SQ905C:
144 case V4L2_PIX_FMT_STV0680: { /* Not compressed but needs some shuffling */
145 @@ -816,6 +826,7 @@ static int v4lconvert_convert_pixfmt(str
147 tmpfmt.fmt.pix.pixelformat = V4L2_PIX_FMT_SBGGR8;
149 +#ifndef DISABLE_LIBJPEG
150 case V4L2_PIX_FMT_JL2005BCD:
151 if (v4lconvert_decode_jl2005bcd(data, src, src_size,
153 @@ -826,6 +837,7 @@ static int v4lconvert_convert_pixfmt(str
155 tmpfmt.fmt.pix.pixelformat = V4L2_PIX_FMT_SRGGB8;
158 case V4L2_PIX_FMT_SN9C2028:
159 v4lconvert_decode_sn9c2028(src, tmpbuf, width, height);
160 tmpfmt.fmt.pix.pixelformat = V4L2_PIX_FMT_SBGGR8;