diff --git a/.gitignore b/.gitignore index 15cbf55..64e9daf 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1 @@ -/v4l-utils-0.8.3.tar.bz2 -/v4l-utils-0.8.4.tar.bz2 -/v4l-utils-0.8.5.tar.bz2 -/v4l-utils-0.8.7.tar.bz2 -/v4l-utils-0.8.8.tar.bz2 -/v4l-utils-0.9.5.tar.bz2 -/v4l-utils-1.0.0.tar.bz2 -/v4l-utils-1.2.1.tar.bz2 -/v4l-utils-1.4.0.tar.bz2 -/v4l-utils-1.6.0.tar.bz2 +/v4l-utils-1.6.2.tar.bz2 diff --git a/0001-media-headers-sync.patch b/0001-media-headers-sync.patch new file mode 100644 index 0000000..cd5c5e4 --- /dev/null +++ b/0001-media-headers-sync.patch @@ -0,0 +1,268 @@ +diff --git a/Makefile.am b/Makefile.am +index 03169ce..758d355 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -36,6 +36,7 @@ sync-with-kernel: + cp -a $(KERNEL_DIR)/usr/include/linux/v4l2-common.h $(top_srcdir)/include/linux + cp -a $(KERNEL_DIR)/usr/include/linux/v4l2-subdev.h $(top_srcdir)/include/linux + cp -a $(KERNEL_DIR)/usr/include/linux/v4l2-mediabus.h $(top_srcdir)/include/linux ++ cp -a $(KERNEL_DIR)/usr/include/linux/media-bus-format.h $(top_srcdir)/include/linux + cp -a $(KERNEL_DIR)/usr/include/linux/ivtv.h $(top_srcdir)/include/linux + cp -a $(KERNEL_DIR)/usr/include/linux/dvb/frontend.h $(top_srcdir)/include/linux/dvb + cp -a $(KERNEL_DIR)/usr/include/linux/dvb/dmx.h $(top_srcdir)/include/linux/dvb +diff --git a/contrib/freebsd/include/linux/v4l2-controls.h b/contrib/freebsd/include/linux/v4l2-controls.h +index 8b93021..661f119 100644 +--- a/contrib/freebsd/include/linux/v4l2-controls.h ++++ b/contrib/freebsd/include/linux/v4l2-controls.h +@@ -746,6 +746,8 @@ enum v4l2_auto_focus_range { + V4L2_AUTO_FOCUS_RANGE_INFINITY = 3, + }; + ++#define V4L2_CID_PAN_SPEED (V4L2_CID_CAMERA_CLASS_BASE+32) ++#define V4L2_CID_TILT_SPEED (V4L2_CID_CAMERA_CLASS_BASE+33) + + /* FM Modulator class control IDs */ + +diff --git a/contrib/freebsd/include/linux/videodev2.h b/contrib/freebsd/include/linux/videodev2.h +index 02f2005..98e3615 100644 +--- a/contrib/freebsd/include/linux/videodev2.h ++++ b/contrib/freebsd/include/linux/videodev2.h +@@ -111,6 +111,7 @@ typedef int8_t __s8; + /* Four-character-code (FOURCC) */ + #define v4l2_fourcc(a, b, c, d)\ + ((uint32_t)(a) | ((uint32_t)(b) << 8) | ((uint32_t)(c) << 16) | ((uint32_t)(d) << 24)) ++#define v4l2_fourcc_be(a, b, c, d) (v4l2_fourcc(a, b, c, d) | (1 << 31)) + + /* + * E N U M S +@@ -339,6 +340,8 @@ struct v4l2_pix_format { + #define V4L2_PIX_FMT_XRGB555 v4l2_fourcc('X', 'R', '1', '5') /* 16 XRGB-1-5-5-5 */ + #define V4L2_PIX_FMT_RGB565 v4l2_fourcc('R', 'G', 'B', 'P') /* 16 RGB-5-6-5 */ + #define V4L2_PIX_FMT_RGB555X v4l2_fourcc('R', 'G', 'B', 'Q') /* 16 RGB-5-5-5 BE */ ++#define V4L2_PIX_FMT_ARGB555X v4l2_fourcc_be('A', 'R', '1', '5') /* 16 ARGB-5-5-5 BE */ ++#define V4L2_PIX_FMT_XRGB555X v4l2_fourcc_be('X', 'R', '1', '5') /* 16 XRGB-5-5-5 BE */ + #define V4L2_PIX_FMT_RGB565X v4l2_fourcc('R', 'G', 'B', 'R') /* 16 RGB-5-6-5 BE */ + #define V4L2_PIX_FMT_BGR666 v4l2_fourcc('B', 'G', 'R', 'H') /* 18 BGR-6-6-6 */ + #define V4L2_PIX_FMT_BGR24 v4l2_fourcc('B', 'G', 'R', '3') /* 24 BGR-8-8-8 */ +diff --git a/include/linux/media-bus-format.h b/include/linux/media-bus-format.h +new file mode 100644 +index 0000000..23b4090 +--- /dev/null ++++ b/include/linux/media-bus-format.h +@@ -0,0 +1,125 @@ ++/* ++ * Media Bus API header ++ * ++ * Copyright (C) 2009, Guennadi Liakhovetski ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ */ ++ ++#ifndef __LINUX_MEDIA_BUS_FORMAT_H ++#define __LINUX_MEDIA_BUS_FORMAT_H ++ ++/* ++ * These bus formats uniquely identify data formats on the data bus. Format 0 ++ * is reserved, MEDIA_BUS_FMT_FIXED shall be used by host-client pairs, where ++ * the data format is fixed. Additionally, "2X8" means that one pixel is ++ * transferred in two 8-bit samples, "BE" or "LE" specify in which order those ++ * samples are transferred over the bus: "LE" means that the least significant ++ * bits are transferred first, "BE" means that the most significant bits are ++ * transferred first, and "PADHI" and "PADLO" define which bits - low or high, ++ * in the incomplete high byte, are filled with padding bits. ++ * ++ * The bus formats are grouped by type, bus_width, bits per component, samples ++ * per pixel and order of subsamples. Numerical values are sorted using generic ++ * numerical sort order (8 thus comes before 10). ++ * ++ * As their value can't change when a new bus format is inserted in the ++ * enumeration, the bus formats are explicitly given a numerical value. The next ++ * free values for each category are listed below, update them when inserting ++ * new pixel codes. ++ */ ++ ++#define MEDIA_BUS_FMT_FIXED 0x0001 ++ ++/* RGB - next is 0x100e */ ++#define MEDIA_BUS_FMT_RGB444_2X8_PADHI_BE 0x1001 ++#define MEDIA_BUS_FMT_RGB444_2X8_PADHI_LE 0x1002 ++#define MEDIA_BUS_FMT_RGB555_2X8_PADHI_BE 0x1003 ++#define MEDIA_BUS_FMT_RGB555_2X8_PADHI_LE 0x1004 ++#define MEDIA_BUS_FMT_BGR565_2X8_BE 0x1005 ++#define MEDIA_BUS_FMT_BGR565_2X8_LE 0x1006 ++#define MEDIA_BUS_FMT_RGB565_2X8_BE 0x1007 ++#define MEDIA_BUS_FMT_RGB565_2X8_LE 0x1008 ++#define MEDIA_BUS_FMT_RGB666_1X18 0x1009 ++#define MEDIA_BUS_FMT_RGB888_1X24 0x100a ++#define MEDIA_BUS_FMT_RGB888_2X12_BE 0x100b ++#define MEDIA_BUS_FMT_RGB888_2X12_LE 0x100c ++#define MEDIA_BUS_FMT_ARGB8888_1X32 0x100d ++ ++/* YUV (including grey) - next is 0x2024 */ ++#define MEDIA_BUS_FMT_Y8_1X8 0x2001 ++#define MEDIA_BUS_FMT_UV8_1X8 0x2015 ++#define MEDIA_BUS_FMT_UYVY8_1_5X8 0x2002 ++#define MEDIA_BUS_FMT_VYUY8_1_5X8 0x2003 ++#define MEDIA_BUS_FMT_YUYV8_1_5X8 0x2004 ++#define MEDIA_BUS_FMT_YVYU8_1_5X8 0x2005 ++#define MEDIA_BUS_FMT_UYVY8_2X8 0x2006 ++#define MEDIA_BUS_FMT_VYUY8_2X8 0x2007 ++#define MEDIA_BUS_FMT_YUYV8_2X8 0x2008 ++#define MEDIA_BUS_FMT_YVYU8_2X8 0x2009 ++#define MEDIA_BUS_FMT_Y10_1X10 0x200a ++#define MEDIA_BUS_FMT_UYVY10_2X10 0x2018 ++#define MEDIA_BUS_FMT_VYUY10_2X10 0x2019 ++#define MEDIA_BUS_FMT_YUYV10_2X10 0x200b ++#define MEDIA_BUS_FMT_YVYU10_2X10 0x200c ++#define MEDIA_BUS_FMT_Y12_1X12 0x2013 ++#define MEDIA_BUS_FMT_UYVY8_1X16 0x200f ++#define MEDIA_BUS_FMT_VYUY8_1X16 0x2010 ++#define MEDIA_BUS_FMT_YUYV8_1X16 0x2011 ++#define MEDIA_BUS_FMT_YVYU8_1X16 0x2012 ++#define MEDIA_BUS_FMT_YDYUYDYV8_1X16 0x2014 ++#define MEDIA_BUS_FMT_UYVY10_1X20 0x201a ++#define MEDIA_BUS_FMT_VYUY10_1X20 0x201b ++#define MEDIA_BUS_FMT_YUYV10_1X20 0x200d ++#define MEDIA_BUS_FMT_YVYU10_1X20 0x200e ++#define MEDIA_BUS_FMT_YUV10_1X30 0x2016 ++#define MEDIA_BUS_FMT_AYUV8_1X32 0x2017 ++#define MEDIA_BUS_FMT_UYVY12_2X12 0x201c ++#define MEDIA_BUS_FMT_VYUY12_2X12 0x201d ++#define MEDIA_BUS_FMT_YUYV12_2X12 0x201e ++#define MEDIA_BUS_FMT_YVYU12_2X12 0x201f ++#define MEDIA_BUS_FMT_UYVY12_1X24 0x2020 ++#define MEDIA_BUS_FMT_VYUY12_1X24 0x2021 ++#define MEDIA_BUS_FMT_YUYV12_1X24 0x2022 ++#define MEDIA_BUS_FMT_YVYU12_1X24 0x2023 ++ ++/* Bayer - next is 0x3019 */ ++#define MEDIA_BUS_FMT_SBGGR8_1X8 0x3001 ++#define MEDIA_BUS_FMT_SGBRG8_1X8 0x3013 ++#define MEDIA_BUS_FMT_SGRBG8_1X8 0x3002 ++#define MEDIA_BUS_FMT_SRGGB8_1X8 0x3014 ++#define MEDIA_BUS_FMT_SBGGR10_ALAW8_1X8 0x3015 ++#define MEDIA_BUS_FMT_SGBRG10_ALAW8_1X8 0x3016 ++#define MEDIA_BUS_FMT_SGRBG10_ALAW8_1X8 0x3017 ++#define MEDIA_BUS_FMT_SRGGB10_ALAW8_1X8 0x3018 ++#define MEDIA_BUS_FMT_SBGGR10_DPCM8_1X8 0x300b ++#define MEDIA_BUS_FMT_SGBRG10_DPCM8_1X8 0x300c ++#define MEDIA_BUS_FMT_SGRBG10_DPCM8_1X8 0x3009 ++#define MEDIA_BUS_FMT_SRGGB10_DPCM8_1X8 0x300d ++#define MEDIA_BUS_FMT_SBGGR10_2X8_PADHI_BE 0x3003 ++#define MEDIA_BUS_FMT_SBGGR10_2X8_PADHI_LE 0x3004 ++#define MEDIA_BUS_FMT_SBGGR10_2X8_PADLO_BE 0x3005 ++#define MEDIA_BUS_FMT_SBGGR10_2X8_PADLO_LE 0x3006 ++#define MEDIA_BUS_FMT_SBGGR10_1X10 0x3007 ++#define MEDIA_BUS_FMT_SGBRG10_1X10 0x300e ++#define MEDIA_BUS_FMT_SGRBG10_1X10 0x300a ++#define MEDIA_BUS_FMT_SRGGB10_1X10 0x300f ++#define MEDIA_BUS_FMT_SBGGR12_1X12 0x3008 ++#define MEDIA_BUS_FMT_SGBRG12_1X12 0x3010 ++#define MEDIA_BUS_FMT_SGRBG12_1X12 0x3011 ++#define MEDIA_BUS_FMT_SRGGB12_1X12 0x3012 ++ ++/* JPEG compressed formats - next is 0x4002 */ ++#define MEDIA_BUS_FMT_JPEG_1X8 0x4001 ++ ++/* Vendor specific formats - next is 0x5002 */ ++ ++/* S5C73M3 sensor specific interleaved UYVY and JPEG */ ++#define MEDIA_BUS_FMT_S5C_UYVY_JPEG_1X8 0x5001 ++ ++/* HSV - next is 0x6002 */ ++#define MEDIA_BUS_FMT_AHSV8888_1X32 0x6001 ++ ++#endif /* __LINUX_MEDIA_BUS_FORMAT_H */ +diff --git a/include/linux/v4l2-controls.h b/include/linux/v4l2-controls.h +index 8b93021..661f119 100644 +--- a/include/linux/v4l2-controls.h ++++ b/include/linux/v4l2-controls.h +@@ -746,6 +746,8 @@ enum v4l2_auto_focus_range { + V4L2_AUTO_FOCUS_RANGE_INFINITY = 3, + }; + ++#define V4L2_CID_PAN_SPEED (V4L2_CID_CAMERA_CLASS_BASE+32) ++#define V4L2_CID_TILT_SPEED (V4L2_CID_CAMERA_CLASS_BASE+33) + + /* FM Modulator class control IDs */ + +diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h +index 87b83c3..ef4c72a 100644 +--- a/include/linux/videodev2.h ++++ b/include/linux/videodev2.h +@@ -77,6 +77,7 @@ + /* Four-character-code (FOURCC) */ + #define v4l2_fourcc(a, b, c, d)\ + ((__u32)(a) | ((__u32)(b) << 8) | ((__u32)(c) << 16) | ((__u32)(d) << 24)) ++#define v4l2_fourcc_be(a, b, c, d) (v4l2_fourcc(a, b, c, d) | (1 << 31)) + + /* + * E N U M S +@@ -305,6 +306,8 @@ struct v4l2_pix_format { + #define V4L2_PIX_FMT_XRGB555 v4l2_fourcc('X', 'R', '1', '5') /* 16 XRGB-1-5-5-5 */ + #define V4L2_PIX_FMT_RGB565 v4l2_fourcc('R', 'G', 'B', 'P') /* 16 RGB-5-6-5 */ + #define V4L2_PIX_FMT_RGB555X v4l2_fourcc('R', 'G', 'B', 'Q') /* 16 RGB-5-5-5 BE */ ++#define V4L2_PIX_FMT_ARGB555X v4l2_fourcc_be('A', 'R', '1', '5') /* 16 ARGB-5-5-5 BE */ ++#define V4L2_PIX_FMT_XRGB555X v4l2_fourcc_be('X', 'R', '1', '5') /* 16 XRGB-5-5-5 BE */ + #define V4L2_PIX_FMT_RGB565X v4l2_fourcc('R', 'G', 'B', 'R') /* 16 RGB-5-6-5 BE */ + #define V4L2_PIX_FMT_BGR666 v4l2_fourcc('B', 'G', 'R', 'H') /* 18 BGR-6-6-6 */ + #define V4L2_PIX_FMT_BGR24 v4l2_fourcc('B', 'G', 'R', '3') /* 24 BGR-8-8-8 */ +diff --git a/utils/v4l2-ctl/vivid-tpg.c b/utils/v4l2-ctl/vivid-tpg.c +index 21e7f4e..cbcd625 100644 +--- a/utils/v4l2-ctl/vivid-tpg.c ++++ b/utils/v4l2-ctl/vivid-tpg.c +@@ -183,7 +183,7 @@ bool tpg_s_fourcc(struct tpg_data *tpg, u32 fourcc) + case V4L2_PIX_FMT_XBGR32: + case V4L2_PIX_FMT_ARGB32: + case V4L2_PIX_FMT_ABGR32: +- tpg->is_yuv = 0; ++ tpg->is_yuv = false; + break; + case V4L2_PIX_FMT_NV16M: + case V4L2_PIX_FMT_NV61M: +@@ -193,7 +193,7 @@ bool tpg_s_fourcc(struct tpg_data *tpg, u32 fourcc) + case V4L2_PIX_FMT_UYVY: + case V4L2_PIX_FMT_YVYU: + case V4L2_PIX_FMT_VYUY: +- tpg->is_yuv = 1; ++ tpg->is_yuv = true; + break; + default: + return false; +@@ -249,7 +249,7 @@ void tpg_s_crop_compose(struct tpg_data *tpg, const struct v4l2_rect *crop, + } + + void tpg_reset_source(struct tpg_data *tpg, unsigned width, unsigned height, +- enum v4l2_field field) ++ u32 field) + { + unsigned p; + +diff --git a/utils/v4l2-ctl/vivid-tpg.h.patch b/utils/v4l2-ctl/vivid-tpg.h.patch +index f200203..6348c19 100644 +--- a/utils/v4l2-ctl/vivid-tpg.h.patch ++++ b/utils/v4l2-ctl/vivid-tpg.h.patch +@@ -1,8 +1,8 @@ +-diff --git b/utils/v4l2-ctl/vivid-tpg.h a/utils/v4l2-ctl/vivid-tpg.h +-index 51ef7d1..76c373a 100644 +---- b/utils/v4l2-ctl/vivid-tpg.h +-+++ a/utils/v4l2-ctl/vivid-tpg.h +-@@ -20,13 +20,46 @@ ++diff --git a/devel/v4l/patchwork//drivers/media/platform/vivid/vivid-tpg.h b/utils/v4l2-ctl/vivid-tpg.h ++index 8ef3e52ba3be..76c373a7b4f1 100644 ++--- a/devel/v4l/patchwork//drivers/media/platform/vivid/vivid-tpg.h +++++ b/utils/v4l2-ctl/vivid-tpg.h ++@@ -20,14 +20,46 @@ + #ifndef _VIVID_TPG_H_ + #define _VIVID_TPG_H_ + +@@ -11,6 +11,7 @@ index 51ef7d1..76c373a 100644 + -#include + -#include + -#include ++-#include + #include + + +#include diff --git a/0001-v4lconvert-Fix-decoding-of-jpeg-data-with-no-vertica.patch b/0001-v4lconvert-Fix-decoding-of-jpeg-data-with-no-vertica.patch deleted file mode 100644 index c09fff8..0000000 --- a/0001-v4lconvert-Fix-decoding-of-jpeg-data-with-no-vertica.patch +++ /dev/null @@ -1,91 +0,0 @@ -From 757d7910ddf43d9a9187dddae4f51a57fb723e8d Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Thu, 20 Nov 2014 13:03:35 +0100 -Subject: [PATCH] v4lconvert: Fix decoding of jpeg data with no vertical - sub-sampling - -Our YUV output is always 2x subsampled in both vertical and horizontal -direction, but some cameras generate JPEG data which is only subsampled in -the horizontal direction. - -Since averaging the extra UV data these JPEGs contains is seomwhat slow, -and UV data is not all that important anyways, we simple take every other -line. Or at least that is the intent. - -But before this commit the code was not doing this properly, for each 16 -Y input lines 1 - 16 we also get 16 UV input lines 1 - 16, but we only need -8 output lines. so we should store input line 1 or 2 in output line 1, input -line 3 or 4 in output line 2, etc. Instead we were storing input lines -9 - 16 into output lines 1 - 8, which leads to some unwanted color bleeding. - -More over this also leads for 1920x1080 JPEG to us writing (1080 / 8 + 1) / 2 -* 8 = 544 UV output lines rather then 540, this means that the last 4 U output -lines overwrite the first 4 V output lines, and worse that the last 4 V output -lines overrun the output buffer. - -So far this only lead to some wrong colors in various places, but since that -we dynamically allocate the output buffer to just the right size this actually -causes a crash. - -This commit fixes both the crash, and the wrong colors. - -Signed-off-by: Hans de Goede ---- - lib/libv4lconvert/jpeg.c | 37 ++++++++++++++++++++++++------------- - 1 file changed, 24 insertions(+), 13 deletions(-) - -diff --git a/lib/libv4lconvert/jpeg.c b/lib/libv4lconvert/jpeg.c -index aa9cace..0142d44 100644 ---- a/lib/libv4lconvert/jpeg.c -+++ b/lib/libv4lconvert/jpeg.c -@@ -242,23 +242,34 @@ static int decode_libjpeg_h_samp2(struct v4lconvert_data *data, - y_rows[y] = ydest; - ydest += width; - } -- for (y = 0; y < 8; y++) { -- u_rows[y] = udest; -- v_rows[y] = vdest; -- udest += width / 2; -- vdest += width / 2; -+ /* -+ * For v_samp == 1 were going to get 1 set of uv values per -+ * line, but we need only 1 set per 2 lines since our output -+ * has v_samp == 2. We store every 2 sets in 1 line, -+ * effectively using the second set for each output line. -+ */ -+ if (v_samp == 1) { -+ for (y = 0; y < 8; y++) { -+ u_rows[y] = udest; -+ v_rows[y] = vdest; -+ y++; -+ u_rows[y] = udest; -+ v_rows[y] = vdest; -+ udest += width / 2; -+ vdest += width / 2; -+ } -+ } else { /* v_samp == 2 */ -+ for (y = 0; y < 8; y++) { -+ u_rows[y] = udest; -+ v_rows[y] = vdest; -+ udest += width / 2; -+ vdest += width / 2; -+ } - } -+ - y = jpeg_read_raw_data(cinfo, rows, 8 * v_samp); - if (y != 8 * v_samp) - return -1; -- -- /* For v_samp == 1 were going to get another set of uv values, -- but we need only 1 set since our output has v_samp == 2, so -- rewind u and vdest and overwrite the previous set. */ -- if (cinfo->output_scanline % 16) { -- udest -= width * 8 / 2; -- vdest -= width * 8 / 2; -- } - } - return 0; - } --- -2.1.0 - diff --git a/0002-use-etc-for-keymaps.patch b/0002-use-etc-for-keymaps.patch new file mode 100644 index 0000000..edbc9a0 --- /dev/null +++ b/0002-use-etc-for-keymaps.patch @@ -0,0 +1,126 @@ +diff --git a/configure.ac b/configure.ac +index 069913d..26763f5 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -233,8 +233,7 @@ AC_SUBST([libv4l1privdir], [$libdir/$with_libv4l1subdir]) + AC_SUBST([libv4l2privdir], [$libdir/$with_libv4l2subdir]) + AC_SUBST([libv4l2plugindir], [$libdir/$with_libv4l2subdir/plugins]) + AC_SUBST([libv4lconvertprivdir], [$libdir/$with_libv4lconvertsubdir]) +-AC_SUBST([keytablesystemdir], [$with_udevdir/rc_keymaps]) +-AC_SUBST([keytableuserdir], [$sysconfdir/rc_keymaps]) ++AC_SUBST([keytablesystemdir], [$sysconfdir/rc_keymaps]) + AC_SUBST([udevrulesdir], [$with_udevdir/rules.d]) + AC_SUBST([pkgconfigdir], [$libdir/pkgconfig]) + +@@ -244,7 +243,6 @@ AC_DEFINE_DIR([LIBV4L2_PRIV_DIR], [libv4l2privdir], [libv4l2 private lib directo + AC_DEFINE_DIR([LIBV4L2_PLUGIN_DIR], [libv4l2plugindir], [libv4l2 plugin directory]) + AC_DEFINE_DIR([LIBV4LCONVERT_PRIV_DIR], [libv4lconvertprivdir], [libv4lconvert private lib directory]) + AC_DEFINE_DIR([IR_KEYTABLE_SYSTEM_DIR], [keytablesystemdir], [ir-keytable preinstalled tables directory]) +-AC_DEFINE_DIR([IR_KEYTABLE_USER_DIR], [keytableuserdir], [ir-keytable user defined tables directory]) + + # options + +diff --git a/utils/keytable/Makefile.am b/utils/keytable/Makefile.am +index 3e66eba..9611591 100644 +--- a/utils/keytable/Makefile.am ++++ b/utils/keytable/Makefile.am +@@ -1,7 +1,7 @@ + bin_PROGRAMS = ir-keytable + man_MANS = ir-keytable.1 + sysconf_DATA = rc_maps.cfg +-keytablesystem_DATA = $(srcdir)/rc_keymaps/* ++sysconf_DATA = $(srcdir)/rc_keymaps/* + udevrules_DATA = 70-infrared.rules + + ir_keytable_SOURCES = keytable.c parse.h +@@ -9,10 +9,6 @@ ir_keytable_LDFLAGS = $(ARGP_LIBS) + + EXTRA_DIST = 70-infrared.rules rc_keymaps gen_keytables.pl ir-keytable.1 rc_maps.cfg + +-# custom target +-install-data-local: +- $(install_sh) -d "$(DESTDIR)$(keytableuserdir)" +- + sync-with-kernel: + @if [ ! -f $(KERNEL_DIR)/usr/include/linux/input.h ]; then \ + echo "Error you must set KERNEL_DIR to point to an extracted kernel source dir"; \ +diff --git a/utils/keytable/keytable.c b/utils/keytable/keytable.c +index 1f42316..90faf99 100644 +--- a/utils/keytable/keytable.c ++++ b/utils/keytable/keytable.c +@@ -198,6 +198,7 @@ static error_t parse_keyfile(char *fname, char **table) + + fin = fopen(fname, "r"); + if (!fin) { ++ perror("opening keycode file"); + return errno; + } + +@@ -1610,31 +1611,15 @@ int main(int argc, char *argv[]) + cur->fname); + if (cur->fname[0] == '/' || ((cur->fname[0] == '.') && strchr(cur->fname, '/'))) { + fname = cur->fname; +- rc = parse_keyfile(fname, &name); +- if (rc < 0) { +- fprintf(stderr, "Can't load %s table\n", fname); +- return -1; +- } + } else { +- fname = malloc(strlen(cur->fname) + strlen(IR_KEYTABLE_USER_DIR) + 2); +- strcpy(fname, IR_KEYTABLE_USER_DIR); ++ fname = malloc(strlen(cur->fname) + strlen(IR_KEYTABLE_SYSTEM_DIR) + 2); ++ strcpy(fname, IR_KEYTABLE_SYSTEM_DIR); + strcat(fname, "/"); + strcat(fname, cur->fname); +- rc = parse_keyfile(fname, &name); +- if (rc != 0) { +- fname = malloc(strlen(cur->fname) + strlen(IR_KEYTABLE_SYSTEM_DIR) + 2); +- strcpy(fname, IR_KEYTABLE_SYSTEM_DIR); +- strcat(fname, "/"); +- strcat(fname, cur->fname); +- rc = parse_keyfile(fname, &name); +- } +- if (rc != 0) { +- fprintf(stderr, "Can't load %s table from %s or %s\n", cur->fname, IR_KEYTABLE_USER_DIR, IR_KEYTABLE_SYSTEM_DIR); +- return -1; +- } + } +- if (!keys.next) { +- fprintf(stderr, "Empty table %s\n", fname); ++ rc = parse_keyfile(fname, &name); ++ if (rc < 0 || !keys.next) { ++ fprintf(stderr, "Can't load %s table or empty table\n", fname); + return -1; + } + clear = 1; +diff --git a/configure b/configure +index c577fbfd4379..672c8f8681eb 100755 +--- a/configure ++++ b/configure +@@ -657,7 +657,6 @@ LIBV4L2_PRIV_DIR + LIBV4L1_PRIV_DIR + pkgconfigdir + udevrulesdir +-keytableuserdir + keytablesystemdir + libv4lconvertprivdir + libv4l2plugindir +@@ -19701,9 +19700,7 @@ libv4l2plugindir=$libdir/$with_libv4l2subdir/plugins + + libv4lconvertprivdir=$libdir/$with_libv4lconvertsubdir + +-keytablesystemdir=$with_udevdir/rc_keymaps +- +-keytableuserdir=$sysconfdir/rc_keymaps ++keytablesystemdir=$sysconfdir/rc_keymaps + + udevrulesdir=$with_udevdir/rules.d + +@@ -19805,7 +19802,6 @@ _ACEOF + exec_prefix_NONE= + test "x$prefix" = xNONE && prefix_NONE=yes && prefix=$ac_default_prefix + test "x$exec_prefix" = xNONE && exec_prefix_NONE=yes && exec_prefix=$prefix +- eval ac_define_dir="\"$keytableuserdir\"" + eval ac_define_dir="\"$ac_define_dir\"" + IR_KEYTABLE_USER_DIR="$ac_define_dir" + diff --git a/0003-add-media-header.patch b/0003-add-media-header.patch new file mode 100644 index 0000000..5ad7f17 --- /dev/null +++ b/0003-add-media-header.patch @@ -0,0 +1,164 @@ +commit 6d9ab872c7a936a3042b3872cf10560b6b2950e4 +Author: Mauro Carvalho Chehab +Date: Mon Nov 24 11:13:01 2014 -0200 + + sync-with-kernel: add include/linux/media.h + + Without this, build breaks when compiling a package for RHEL6, + with uses an older media stack. + + Signed-off-by: Mauro Carvalho Chehab + +diff --git a/Makefile.am b/Makefile.am +index 758d355..68c61a0 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -37,6 +37,7 @@ sync-with-kernel: + cp -a $(KERNEL_DIR)/usr/include/linux/v4l2-subdev.h $(top_srcdir)/include/linux + cp -a $(KERNEL_DIR)/usr/include/linux/v4l2-mediabus.h $(top_srcdir)/include/linux + cp -a $(KERNEL_DIR)/usr/include/linux/media-bus-format.h $(top_srcdir)/include/linux ++ cp -a $(KERNEL_DIR)/usr/include/linux/media.h $(top_srcdir)/include/linux + cp -a $(KERNEL_DIR)/usr/include/linux/ivtv.h $(top_srcdir)/include/linux + cp -a $(KERNEL_DIR)/usr/include/linux/dvb/frontend.h $(top_srcdir)/include/linux/dvb + cp -a $(KERNEL_DIR)/usr/include/linux/dvb/dmx.h $(top_srcdir)/include/linux/dvb +diff --git a/include/linux/media.h b/include/linux/media.h +new file mode 100644 +index 0000000..87a0e10 +--- /dev/null ++++ b/include/linux/media.h +@@ -0,0 +1,135 @@ ++/* ++ * Multimedia device API ++ * ++ * Copyright (C) 2010 Nokia Corporation ++ * ++ * Contacts: Laurent Pinchart ++ * Sakari Ailus ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ++ */ ++ ++#ifndef __LINUX_MEDIA_H ++#define __LINUX_MEDIA_H ++ ++#include ++#include ++#include ++ ++#define MEDIA_API_VERSION KERNEL_VERSION(0, 1, 0) ++ ++struct media_device_info { ++ char driver[16]; ++ char model[32]; ++ char serial[40]; ++ char bus_info[32]; ++ __u32 media_version; ++ __u32 hw_revision; ++ __u32 driver_version; ++ __u32 reserved[31]; ++}; ++ ++#define MEDIA_ENT_ID_FLAG_NEXT (1 << 31) ++ ++#define MEDIA_ENT_TYPE_SHIFT 16 ++#define MEDIA_ENT_TYPE_MASK 0x00ff0000 ++#define MEDIA_ENT_SUBTYPE_MASK 0x0000ffff ++ ++#define MEDIA_ENT_T_DEVNODE (1 << MEDIA_ENT_TYPE_SHIFT) ++#define MEDIA_ENT_T_DEVNODE_V4L (MEDIA_ENT_T_DEVNODE + 1) ++#define MEDIA_ENT_T_DEVNODE_FB (MEDIA_ENT_T_DEVNODE + 2) ++#define MEDIA_ENT_T_DEVNODE_ALSA (MEDIA_ENT_T_DEVNODE + 3) ++#define MEDIA_ENT_T_DEVNODE_DVB (MEDIA_ENT_T_DEVNODE + 4) ++ ++#define MEDIA_ENT_T_V4L2_SUBDEV (2 << MEDIA_ENT_TYPE_SHIFT) ++#define MEDIA_ENT_T_V4L2_SUBDEV_SENSOR (MEDIA_ENT_T_V4L2_SUBDEV + 1) ++#define MEDIA_ENT_T_V4L2_SUBDEV_FLASH (MEDIA_ENT_T_V4L2_SUBDEV + 2) ++#define MEDIA_ENT_T_V4L2_SUBDEV_LENS (MEDIA_ENT_T_V4L2_SUBDEV + 3) ++/* A converter of analogue video to its digital representation. */ ++#define MEDIA_ENT_T_V4L2_SUBDEV_DECODER (MEDIA_ENT_T_V4L2_SUBDEV + 4) ++ ++#define MEDIA_ENT_FL_DEFAULT (1 << 0) ++ ++struct media_entity_desc { ++ __u32 id; ++ char name[32]; ++ __u32 type; ++ __u32 revision; ++ __u32 flags; ++ __u32 group_id; ++ __u16 pads; ++ __u16 links; ++ ++ __u32 reserved[4]; ++ ++ union { ++ /* Node specifications */ ++ struct { ++ __u32 major; ++ __u32 minor; ++ } v4l; ++ struct { ++ __u32 major; ++ __u32 minor; ++ } fb; ++ struct { ++ __u32 card; ++ __u32 device; ++ __u32 subdevice; ++ } alsa; ++ int dvb; ++ ++ /* Sub-device specifications */ ++ /* Nothing needed yet */ ++ __u8 raw[184]; ++ }; ++}; ++ ++#define MEDIA_PAD_FL_SINK (1 << 0) ++#define MEDIA_PAD_FL_SOURCE (1 << 1) ++#define MEDIA_PAD_FL_MUST_CONNECT (1 << 2) ++ ++struct media_pad_desc { ++ __u32 entity; /* entity ID */ ++ __u16 index; /* pad index */ ++ __u32 flags; /* pad flags */ ++ __u32 reserved[2]; ++}; ++ ++#define MEDIA_LNK_FL_ENABLED (1 << 0) ++#define MEDIA_LNK_FL_IMMUTABLE (1 << 1) ++#define MEDIA_LNK_FL_DYNAMIC (1 << 2) ++ ++struct media_link_desc { ++ struct media_pad_desc source; ++ struct media_pad_desc sink; ++ __u32 flags; ++ __u32 reserved[2]; ++}; ++ ++struct media_links_enum { ++ __u32 entity; ++ /* Should have enough room for pads elements */ ++ struct media_pad_desc *pads; ++ /* Should have enough room for links elements */ ++ struct media_link_desc *links; ++ __u32 reserved[4]; ++}; ++ ++#define MEDIA_IOC_DEVICE_INFO _IOWR('|', 0x00, struct media_device_info) ++#define MEDIA_IOC_ENUM_ENTITIES _IOWR('|', 0x01, struct media_entity_desc) ++#define MEDIA_IOC_ENUM_LINKS _IOWR('|', 0x02, struct media_links_enum) ++#define MEDIA_IOC_SETUP_LINK _IOWR('|', 0x03, struct media_link_desc) ++ ++#endif /* __LINUX_MEDIA_H */ diff --git a/0004-fix-qtgl-detection.patch b/0004-fix-qtgl-detection.patch new file mode 100644 index 0000000..91e26f8 --- /dev/null +++ b/0004-fix-qtgl-detection.patch @@ -0,0 +1,59 @@ +diff --git a/configure.ac b/configure.ac +index 7411d92..4375f39 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -148,7 +148,7 @@ else + AC_MSG_WARN(Qt4 or higher is not available) + fi + +-PKG_CHECK_MODULES(QTGL, [QtOpenGL >= 4.4 gl], [qt_pkgconfig_gl=true], [qt_pkgconfig_gl=false]) ++PKG_CHECK_MODULES(QTGL, [QtOpenGL >= 4.8 gl], [qt_pkgconfig_gl=true], [qt_pkgconfig_gl=false]) + if test "x$qt_pkgconfig_gl" = "xtrue"; then + AC_DEFINE([HAVE_QTGL], [1], [qt has opengl support]) + else +--- a/configure ++++ b/configure +@@ -18190,12 +18190,12 @@ if test -n "$QTGL_CFLAGS"; then + pkg_cv_QTGL_CFLAGS="$QTGL_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ +- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"QtOpenGL >= 4.4 gl\""; } >&5 +- ($PKG_CONFIG --exists --print-errors "QtOpenGL >= 4.4 gl") 2>&5 ++ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"QtOpenGL >= 4.8 gl\""; } >&5 ++ ($PKG_CONFIG --exists --print-errors "QtOpenGL >= 4.8 gl") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then +- pkg_cv_QTGL_CFLAGS=`$PKG_CONFIG --cflags "QtOpenGL >= 4.4 gl" 2>/dev/null` ++ pkg_cv_QTGL_CFLAGS=`$PKG_CONFIG --cflags "QtOpenGL >= 4.8 gl" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes + else + pkg_failed=yes +@@ -18207,12 +18207,12 @@ if test -n "$QTGL_LIBS"; then + pkg_cv_QTGL_LIBS="$QTGL_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ +- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"QtOpenGL >= 4.4 gl\""; } >&5 +- ($PKG_CONFIG --exists --print-errors "QtOpenGL >= 4.4 gl") 2>&5 ++ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"QtOpenGL >= 4.8 gl\""; } >&5 ++ ($PKG_CONFIG --exists --print-errors "QtOpenGL >= 4.8 gl") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then +- pkg_cv_QTGL_LIBS=`$PKG_CONFIG --libs "QtOpenGL >= 4.4 gl" 2>/dev/null` ++ pkg_cv_QTGL_LIBS=`$PKG_CONFIG --libs "QtOpenGL >= 4.8 gl" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes + else + pkg_failed=yes +@@ -18233,9 +18233,9 @@ else + _pkg_short_errors_supported=no + fi + if test $_pkg_short_errors_supported = yes; then +- QTGL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "QtOpenGL >= 4.4 gl" 2>&1` ++ QTGL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "QtOpenGL >= 4.8 gl" 2>&1` + else +- QTGL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "QtOpenGL >= 4.4 gl" 2>&1` ++ QTGL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "QtOpenGL >= 4.8 gl" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$QTGL_PKG_ERRORS" >&5 diff --git a/sources b/sources index 0ad5f47..8ba1ca2 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -921dab41b8d950fb7d1412e39f48703e v4l-utils-1.6.0.tar.bz2 +9cb3c178f937954e65bf30920af433ef v4l-utils-1.6.2.tar.bz2 diff --git a/v4l-utils.spec b/v4l-utils.spec index 42e0be7..0bc9525 100644 --- a/v4l-utils.spec +++ b/v4l-utils.spec @@ -1,18 +1,22 @@ Name: v4l-utils -Version: 1.6.0 -Release: 2%{?dist} +Version: 1.6.2 +Release: 3%{?dist} Summary: Utilities for video4linux and DVB devices Group: Applications/System # libdvbv5, dvbv5 utils, ir-keytable and v4l2-sysfs-path are GPLv2 only License: GPLv2+ and GPLv2 URL: http://www.linuxtv.org/downloads/v4l-utils/ Source0: http://linuxtv.org/downloads/v4l-utils/v4l-utils-%{version}.tar.bz2 -Patch1: 0001-v4lconvert-Fix-decoding-of-jpeg-data-with-no-vertica.patch +Patch1: 0001-media-headers-sync.patch +Patch2: 0002-use-etc-for-keymaps.patch +Patch3: 0003-add-media-header.patch +Patch4: 0004-fix-qtgl-detection.patch +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: libjpeg-devel qt4-devel kernel-headers desktop-file-utils BuildRequires: alsa-lib-devel doxygen -# For /lib/udev/rules.d ownership +BuildRequires: autoconf +# For /etc/udev/rules.d ownership Requires: udev -Requires: libv4l%{?_isa} = %{version}-%{release} %description v4l-utils is a collection of various video4linux (V4L) and DVB utilities. The @@ -24,7 +28,6 @@ v4l2-sysfs-path. Summary: Utilities for v4l2 / DVB driver development and debugging # decode_tm6000 is GPLv2 only License: GPLv2+ and GPLv2 -Requires: libv4l%{?_isa} = %{version}-%{release} %description devel-tools Utilities for v4l2 / DVB driver authors: decode_tm6000, v4l2-compliance and @@ -34,37 +37,11 @@ v4l2-dbg. %package -n qv4l2 Summary: QT v4l2 test control and streaming test application License: GPLv2+ -Requires: libv4l%{?_isa} = %{version}-%{release} %description -n qv4l2 QT v4l2 test control and streaming test application. -%package -n libv4l -Summary: Collection of video4linux support libraries -Group: System Environment/Libraries -# Some of the decompression helpers are GPLv2, the rest is LGPLv2+ -License: LGPLv2+ and GPLv2 -URL: http://hansdegoede.livejournal.com/3636.html - -%description -n libv4l -libv4l is a collection of libraries which adds a thin abstraction layer on -top of video4linux2 devices. The purpose of this (thin) layer is to make it -easy for application writers to support a wide variety of devices without -having to write separate code for different devices in the same class. libv4l -consists of 3 different libraries: libv4lconvert, libv4l1 and libv4l2. - -libv4lconvert offers functions to convert from any (known) pixel-format -to V4l2_PIX_FMT_BGR24 or V4l2_PIX_FMT_YUV420. - -libv4l1 offers the (deprecated) v4l1 API on top of v4l2 devices, independent -of the drivers for those devices supporting v4l1 compatibility (which many -v4l2 drivers do not). - -libv4l2 offers the v4l2 API on top of v4l2 devices, while adding for the -application transparent libv4lconvert conversion where necessary. - - %package -n libdvbv5 Summary: Libraries to control, scan and zap on Digital TV channels Group: Development/Libraries @@ -73,18 +50,6 @@ License: GPLv2 %description -n libdvbv5 Libraries to control, scan and zap on Digital TV channels -%package -n libv4l-devel -Summary: Development files for libv4l -Group: Development/Libraries -License: LGPLv2+ -URL: http://hansdegoede.livejournal.com/3636.html -Requires: libv4l%{?_isa} = %{version}-%{release} - -%description -n libv4l-devel -The libv4l-devel package contains libraries and header files for -developing applications that use libv4l. - - %package -n libdvbv5-devel Summary: Development files for libdvbv5 Group: Development/Libraries @@ -99,10 +64,13 @@ files for developing applications that use libdvbv5. %prep %setup -q %patch1 -p1 +%patch2 -p1 +%patch3 -p1 +%patch4 -p1 %build -%configure --disable-static --enable-libdvbv5 --enable-doxygen-man +%configure --disable-shared --enable-libdvbv5 --enable-doxygen-man # Don't use rpath! sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool @@ -112,18 +80,13 @@ make doxygen-run %install %make_install +rm $RPM_BUILD_ROOT/usr/include/libv4l*.h $RPM_BUILD_ROOT/%{_libdir}/pkgconfig/libv4l*.pc $RPM_BUILD_ROOT/%{_libdir}/libv4l*.a +rm -r $RPM_BUILD_ROOT/%{_libdir}/libv4l/ find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';' -rm $RPM_BUILD_ROOT%{_libdir}/{v4l1compat.so,v4l2convert.so} mkdir -p $RPM_BUILD_ROOT%{_mandir}/man3/ cp -arv %{_builddir}/%{name}-%{version}/doxygen-doc/man/man3 $RPM_BUILD_ROOT%{_mandir}/ -rm $RPM_BUILD_ROOT%{_mandir}/man3/_*3 desktop-file-validate $RPM_BUILD_ROOT%{_datadir}/applications/qv4l2.desktop - -%post -n libv4l -p /sbin/ldconfig - -%postun -n libv4l -p /sbin/ldconfig - %post -n libdvbv5 -p /sbin/ldconfig %postun -n libdvbv5 -p /sbin/ldconfig @@ -144,9 +107,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %files %doc README %dir %{_sysconfdir}/rc_keymaps +%config(noreplace) %{_sysconfdir}/rc_keymaps/* %config(noreplace) %{_sysconfdir}/rc_maps.cfg -%{_udevrulesdir}/70-infrared.rules -%{_prefix}/lib/udev/rc_keymaps/* +%config(noreplace) /lib/udev/rules.d/70-infrared.rules %{_bindir}/cx18-ctl %{_bindir}/dvb* %{_bindir}/ir-keytable @@ -169,96 +132,30 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_datadir}/applications/qv4l2.desktop %{_datadir}/icons/hicolor/*/apps/qv4l2.* -%files -n libv4l -%doc COPYING.libv4l COPYING ChangeLog README.libv4l TODO -%{_libdir}/libv4l -%{_libdir}/libv4l*.so.* - -%files -n libv4l-devel -%doc README.lib-multi-threading -%{_includedir}/libv4l*.h -%{_libdir}/libv4l*.so -%{_libdir}/pkgconfig/libv4l*.pc - %files -n libdvbv5 %doc COPYING ChangeLog lib/libdvbv5/README -%{_libdir}/libdvbv5*.so.* +%{_libdir}/libdvbv5* %files -n libdvbv5-devel %{_includedir}/libdvbv5/*.h -%{_libdir}/libdvbv5*.so %{_libdir}/pkgconfig/libdvbv5*.pc %{_mandir}/man3/*.3* %changelog -* Thu Nov 20 2014 Hans de Goede - 1.6.0-2 -- Fix crash when decoding 1920x1080 jpeg to YUV420 +* Wed Dec 10 2014 Mauro Carvalho Chehab - 1.6.2-3 +- Remove libv4l from packaging, to avoid override RHEL6 one -* Sun Oct 05 2014 Mauro Carvalho Chehab - 1.6.0-1 -- Upgrade to version 1.6.0 +* Mon Nov 24 2014 Mauro Carvalho Chehab - 1.6.2-2 +- Enable qv4l2 package -* Mon Sep 08 2014 Mauro Carvalho Chehab - 1.4.0-1 -- Upgrade to version 1.4.0 +* Sat Nov 22 2014 Mauro Carvalho Chehab - 1.6.2-1 +- Update to version 1.6.2 with contains several bugfixes -* Fri Aug 22 2014 Mauro Carvalho Chehab - 1.2.1-3 -- Add ALSA support on qv4l2 and fix a couple issues at spec file - -* Thu Aug 21 2014 Mauro Carvalho Chehab - 1.2.1-2 -- Update to version 1.2.1 and add package for libdvbv5 - -* Mon Aug 18 2014 Fedora Release Engineering - 1.0.0-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild - -* Sun Jun 08 2014 Fedora Release Engineering - 1.0.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild - -* Sat Aug 3 2013 Hans de Goede - 1.0.0-1 -- New upstream release 1.0.0 final -- Drop libdvb5 (made private upstream for now) - -* Fri Jun 14 2013 Hans de Goede - 0.9.5-2 -- Add a few libv4l2rds patches from upstream, which bring libv4l2rds to its - final API / ABI, so that apps build against it won't need a rebuild in the - future - -* Sun Jun 9 2013 Hans de Goede - 0.9.5-1 -- New upstream release 0.9.5 (rhbz#970412) -- Modernize specfile a bit - -* Fri Feb 15 2013 Fedora Release Engineering - 0.8.8-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild - -* Mon Jan 21 2013 Adam Tkac - 0.8.8-5 -- rebuild due to "jpeg8-ABI" feature drop - -* Fri Dec 21 2012 Adam Tkac - 0.8.8-4 -- rebuild against new libjpeg - -* Sun Jul 22 2012 Fedora Release Engineering - 0.8.8-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild - -* Mon Jul 9 2012 Hans de Goede - 0.8.8-2 -- Cherry-pick 2 patches from upstream git fixing an exotic crash (rhbz#838279) - -* Tue May 22 2012 Hans de Goede - 0.8.8-1 -- New upstream release 0.8.8 -- Add patches from upstream git to improve Pixart JPEG decoding -- Add patch from upstream git to fix building with latest kernels (rhbz#823863) - -* Mon Apr 9 2012 Hans de Goede - 0.8.7-1 -- New upstream release 0.8.7 -- Fixes rhbz#807656 - -* Sat Jan 14 2012 Fedora Release Engineering - 0.8.5-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild - -* Sun Jul 17 2011 Hans de Goede 0.8.5-1 -- New upstream release 0.8.5 -- Fixes rhbz#711492 - -* Wed Jun 1 2011 Hans de Goede 0.8.4-1 -- New upstream release 0.8.4 +* Fri Oct 7 2011 Mauro Carvalho Chehab 0.9.0.git5f24b816 +- Based on git changeset 5f24b816, this version will allow adding a v4l-utils + package without compiling the libv4l. This avoids a conflict with the + existing libv4l package that is part of the RHEL6 repositories. * Sat Mar 12 2011 Hans de Goede 0.8.3-2 - Add a .desktop file for qv4l2