This is an automatic generated email to let you know that the following patch were queued at the http://git.linuxtv.org/v4l-utils.git tree:
Subject: libv4lconvert: Allow to disable the libjpeg dependency Author: Gregor Jasny <[email protected]> Date: Mon Jun 11 23:02:24 2012 +0200 This is useful for Debian when cross compiling 32bit libs. Signed-off-by: Gregor Jasny <[email protected]> lib/libv4lconvert/Makefile | 12 +++++++++--- lib/libv4lconvert/jpeg.c | 7 +++++++ lib/libv4lconvert/libv4lconvert-priv.h | 4 ++++ lib/libv4lconvert/libv4lconvert.c | 12 ++++++++++++ 4 files changed, 32 insertions(+), 3 deletions(-) --- http://git.linuxtv.org/v4l-utils.git?a=commitdiff;h=118a69a8c6f5f45bf1418bb2cac8a726683a74f9 diff --git a/lib/libv4lconvert/Makefile b/lib/libv4lconvert/Makefile index cbd79c0..c08912e 100644 --- a/lib/libv4lconvert/Makefile +++ b/lib/libv4lconvert/Makefile @@ -1,6 +1,6 @@ override CPPFLAGS += -I../include -fvisibility=hidden -LIBS_libv4lconvert = -lrt -lm -ljpeg +LIBS_libv4lconvert = -lrt -lm ifeq ($(LINKTYPE),static) CONVERT_LIB = libv4lconvert.a @@ -10,16 +10,22 @@ override CPPFLAGS += -fPIC endif CONVERT_OBJS = libv4lconvert.o tinyjpeg.o sn9c10x.o sn9c20x.o pac207.o \ - jl2005bcd.o \ mr97310a.o flip.o crop.o jidctflt.o spca561-decompress.o \ rgbyuv.o sn9c2028-decomp.o spca501.o sq905c.o bayer.o hm12.o \ - stv0680.o cpia1.o se401.o jpgl.o jpeg.o jpeg_memsrcdest.o \ + stv0680.o cpia1.o se401.o jpgl.o jpeg.o \ control/libv4lcontrol.o processing/libv4lprocessing.o \ processing/whitebalance.o processing/autogain.o \ processing/gamma.o helper.o TARGETS = $(CONVERT_LIB) libv4lconvert.pc ov511-decomp ov518-decomp INCLUDES = ../include/libv4lconvert.h +ifeq ($(DISABLE_LIBJPEG),1) +override CFLAGS += -DDISABLE_LIBJPEG +else +LIBS_libv4lconvert += -ljpeg +CONVERT_OBJS += jl2005bcd.o jpeg_memsrcdest.o +endif + override CPPFLAGS += -DLIBDIR=\"$(LIBDIR)\" -DLIBSUBDIR=\"$(LIBSUBDIR)\" all: $(TARGETS) diff --git a/lib/libv4lconvert/jpeg.c b/lib/libv4lconvert/jpeg.c index c7e20cc..1546b42 100644 --- a/lib/libv4lconvert/jpeg.c +++ b/lib/libv4lconvert/jpeg.c @@ -19,7 +19,9 @@ #include <errno.h> #include <stdlib.h> #include "libv4lconvert-priv.h" +#ifndef DISABLE_LIBJPEG #include "jpeg_memsrcdest.h" +#endif int v4lconvert_decode_jpeg_tinyjpeg(struct v4lconvert_data *data, unsigned char *src, int src_size, unsigned char *dest, @@ -107,6 +109,8 @@ int v4lconvert_decode_jpeg_tinyjpeg(struct v4lconvert_data *data, return 0; } +#ifndef DISABLE_LIBJPEG + static void jerr_error_exit(j_common_ptr cinfo) { struct v4lconvert_data *data = cinfo->client_data; @@ -405,3 +409,6 @@ int v4lconvert_decode_jpeg_libjpeg(struct v4lconvert_data *data, return result; } + +#endif + diff --git a/lib/libv4lconvert/libv4lconvert-priv.h b/lib/libv4lconvert/libv4lconvert-priv.h index 5b76767..c2284f5 100644 --- a/lib/libv4lconvert/libv4lconvert-priv.h +++ b/lib/libv4lconvert/libv4lconvert-priv.h @@ -22,7 +22,9 @@ #include <stdio.h> #include <stdint.h> #include <sys/types.h> +#ifndef DISABLE_LIBJPEG #include <jpeglib.h> +#endif #include <setjmp.h> #include "libv4lconvert.h" #include "control/libv4lcontrol.h" @@ -50,11 +52,13 @@ struct v4lconvert_data { int64_t supported_src_formats; /* bitfield */ char error_msg[V4LCONVERT_ERROR_MSG_SIZE]; struct jdec_private *tinyjpeg; +#ifndef DISABLE_LIBJPEG struct jpeg_error_mgr jerr; int jerr_errno; jmp_buf jerr_jmp_state; struct jpeg_decompress_struct cinfo; int cinfo_initialized; +#endif struct v4l2_frmsizeenum framesizes[V4LCONVERT_MAX_FRAMESIZES]; unsigned int no_framesizes; int bandwidth; diff --git a/lib/libv4lconvert/libv4lconvert.c b/lib/libv4lconvert/libv4lconvert.c index f44f9ff..902ece0 100644 --- a/lib/libv4lconvert/libv4lconvert.c +++ b/lib/libv4lconvert/libv4lconvert.c @@ -78,7 +78,9 @@ static const struct v4lconvert_pixfmt supported_src_pixfmts[] = { { V4L2_PIX_FMT_SN9C2028, 0, 9, 9, 1 }, { V4L2_PIX_FMT_PAC207, 0, 9, 9, 1 }, { V4L2_PIX_FMT_MR97310A, 0, 9, 9, 1 }, +#ifndef DISABLE_LIBJPEG { V4L2_PIX_FMT_JL2005BCD, 0, 9, 9, 1 }, +#endif { V4L2_PIX_FMT_SQ905C, 0, 9, 9, 1 }, /* special */ { V4L2_PIX_FMT_SE401, 0, 8, 9, 1 }, @@ -186,8 +188,10 @@ void v4lconvert_destroy(struct v4lconvert_data *data) tinyjpeg_set_components(data->tinyjpeg, comps, 3); tinyjpeg_free(data->tinyjpeg); } +#ifndef DISABLE_LIBJPEG if (data->cinfo_initialized) jpeg_destroy_decompress(&data->cinfo); +#endif v4lconvert_helper_cleanup(data); free(data->convert1_buf); free(data->convert2_buf); @@ -635,10 +639,13 @@ static int v4lconvert_convert_pixfmt(struct v4lconvert_data *data, /* JPG and variants */ case V4L2_PIX_FMT_MJPEG: case V4L2_PIX_FMT_JPEG: +#ifndef DISABLE_LIBJPEG if (data->flags & V4LCONVERT_USE_TINYJPEG) { +#endif result = v4lconvert_decode_jpeg_tinyjpeg(data, src, src_size, dest, fmt, dest_pix_fmt, 0); +#ifndef DISABLE_LIBJPEG } else { result = v4lconvert_decode_jpeg_libjpeg(data, src, src_size, dest, @@ -653,6 +660,7 @@ static int v4lconvert_convert_pixfmt(struct v4lconvert_data *data, fmt, dest_pix_fmt, 0); } } +#endif break; case V4L2_PIX_FMT_PJPG: result = v4lconvert_decode_jpeg_tinyjpeg(data, src, src_size, @@ -778,7 +786,9 @@ static int v4lconvert_convert_pixfmt(struct v4lconvert_data *data, case V4L2_PIX_FMT_SN9C10X: case V4L2_PIX_FMT_PAC207: case V4L2_PIX_FMT_MR97310A: +#ifndef DISABLE_LIBJPEG case V4L2_PIX_FMT_JL2005BCD: +#endif case V4L2_PIX_FMT_SN9C2028: case V4L2_PIX_FMT_SQ905C: case V4L2_PIX_FMT_STV0680: { /* Not compressed but needs some shuffling */ @@ -817,6 +827,7 @@ static int v4lconvert_convert_pixfmt(struct v4lconvert_data *data, } tmpfmt.fmt.pix.pixelformat = V4L2_PIX_FMT_SBGGR8; break; +#ifndef DISABLE_LIBJPEG case V4L2_PIX_FMT_JL2005BCD: if (v4lconvert_decode_jl2005bcd(data, src, src_size, tmpbuf, @@ -827,6 +838,7 @@ static int v4lconvert_convert_pixfmt(struct v4lconvert_data *data, } tmpfmt.fmt.pix.pixelformat = V4L2_PIX_FMT_SRGGB8; break; +#endif case V4L2_PIX_FMT_SN9C2028: v4lconvert_decode_sn9c2028(src, tmpbuf, width, height); tmpfmt.fmt.pix.pixelformat = V4L2_PIX_FMT_SBGGR8; _______________________________________________ linuxtv-commits mailing list [email protected] http://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits
