From 6447e7112bbe90c383af8d90985b5c033372acd4 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Jun 13 2013 18:48:14 +0000 Subject: New upstream release 0.9.5 (rhbz#970412) - Modernize specfile a bit --- diff --git a/.gitignore b/.gitignore index a0f0a5c..855efcc 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ /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 diff --git a/0001-dvb-Fix-spelling-errors-found-by-lintian.patch b/0001-dvb-Fix-spelling-errors-found-by-lintian.patch deleted file mode 100644 index fbeadbd..0000000 --- a/0001-dvb-Fix-spelling-errors-found-by-lintian.patch +++ /dev/null @@ -1,55 +0,0 @@ -From ef5beb9f065a3fdd48156df2a02b45a747b52477 Mon Sep 17 00:00:00 2001 -From: Gregor Jasny -Date: Sat, 14 Apr 2012 23:12:15 +0200 -Subject: [PATCH 01/12] dvb: Fix spelling errors found by lintian - -Signed-off-by: Gregor Jasny -(cherry picked from commit 1c900164cca4eac31d7b967289915929bc672ae7) ---- - utils/dvb/README | 2 +- - utils/dvb/dvbv5-scan.c | 2 +- - utils/dvb/dvbv5-zap.c | 2 +- - 3 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/utils/dvb/README b/utils/dvb/README -index c6cbf3e..76bb32a 100644 ---- a/utils/dvb/README -+++ b/utils/dvb/README -@@ -7,7 +7,7 @@ using its latest V5 API. The tools can also work with the DVBv3 API. - The current tools are: - - dvb-fe-tool - a simple test application, that reads from the frontend. -- it also allows to change the default delivery system. -+ it also allows one to change the default delivery system. - In the future, it may be used to change any property - via command line. - -diff --git a/utils/dvb/dvbv5-scan.c b/utils/dvb/dvbv5-scan.c -index c7365bc..dcb5cfe 100644 ---- a/utils/dvb/dvbv5-scan.c -+++ b/utils/dvb/dvbv5-scan.c -@@ -57,7 +57,7 @@ static const struct argp_option options[] = { - {"lnbf", 'l', "LNBf_type", 0, "type of LNBf to use. 'help' lists the available ones", 0}, - {"sat_number", 'S', "satellite_number", 0, "satellite number. If not specified, disable DISEqC", 0}, - {"freq_bpf", 'U', "frequency", 0, "SCR/Unicable band-pass filter frequency to use, in kHz", 0}, -- {"wait", 'W', "time", 0, "adds aditional wait time for DISEqC command completion", 0}, -+ {"wait", 'W', "time", 0, "adds additional wait time for DISEqC command completion", 0}, - {"nit", 'N', NULL, 0, "use data from NIT table on the output file", 0}, - {"get_frontend",'G', NULL, 0, "use data from get_frontend on the output file", 0}, - {"verbose", 'v', NULL, 0, "be (very) verbose", 0}, -diff --git a/utils/dvb/dvbv5-zap.c b/utils/dvb/dvbv5-zap.c -index 0dc6d20..c8aaf9d 100644 ---- a/utils/dvb/dvbv5-zap.c -+++ b/utils/dvb/dvbv5-zap.c -@@ -65,7 +65,7 @@ static const struct argp_option options[] = { - {"lnbf", 'l', "LNBf_type", 0, "type of LNBf to use. 'help' lists the available ones", 0}, - {"sat_number", 'S', "satellite_number", 0, "satellite number. If not specified, disable DISEqC", 0}, - {"freq_bpf", 'U', "frequency", 0, "SCR/Unicable band-pass filter frequency to use, in kHz", 0}, -- {"wait", 'W', "time", 0, "adds aditional wait time for DISEqC command completion", 0}, -+ {"wait", 'W', "time", 0, "adds additional wait time for DISEqC command completion", 0}, - {"channels", 'c', "file", 0, "read channels list from 'file'", 0}, - {"exit", 'x', NULL, 0, "exit after tuning", 0}, - {"record", 'r', NULL, 0, "set up /dev/dvb/adapterX/dvr0 for TS recording", 0}, --- -1.7.10 - diff --git a/0002-libv4lconvert-Fix-decoding-of-160x120-Pixart-JPEG-im.patch b/0002-libv4lconvert-Fix-decoding-of-160x120-Pixart-JPEG-im.patch deleted file mode 100644 index b1b132f..0000000 --- a/0002-libv4lconvert-Fix-decoding-of-160x120-Pixart-JPEG-im.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 40a6547a0f93f571772672fed2de8de17e02d1bb Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Mon, 23 Apr 2012 19:43:07 +0200 -Subject: [PATCH 02/12] libv4lconvert: Fix decoding of 160x120 Pixart JPEG - images - -Signed-off-by: Hans de Goede ---- - lib/libv4lconvert/tinyjpeg.c | 16 +++++++++++++--- - 1 file changed, 13 insertions(+), 3 deletions(-) - -diff --git a/lib/libv4lconvert/tinyjpeg.c b/lib/libv4lconvert/tinyjpeg.c -index 2c2d4af..d2a7d3f 100644 ---- a/lib/libv4lconvert/tinyjpeg.c -+++ b/lib/libv4lconvert/tinyjpeg.c -@@ -2101,7 +2101,17 @@ static int pixart_filter(struct jdec_private *priv, unsigned char *dest, - { - int chunksize, copied = 0; - -- /* Skip mysterious first data byte */ -+ /* The first data bytes encodes the image size: -+ 0x60: 160x120 -+ 0x61: 320x240 -+ 0x62: 640x480 -+ 160x120 images are not chunked due to their small size! -+ */ -+ if (src[0] == 0x60) { -+ memcpy(dest, src + 1, n - 1); -+ return n - 1; -+ } -+ - src++; - n--; - -@@ -2124,8 +2134,8 @@ kernel: 0xff 0xff 0x00 0xff 0x96, and we skip one unknown byte */ - - if (src[0] != 0xff || src[1] != 0xff || src[2] != 0xff) - error("Missing Pixart ff ff ff xx header, " -- "got: %02x %02x %02x %02x\n", -- src[0], src[1], src[2], src[3]); -+ "got: %02x %02x %02x %02x, copied sofar: %d\n", -+ src[0], src[1], src[2], src[3], copied); - if (src[3] > 6) - error("Unexpected Pixart chunk size: %d\n", src[3]); - --- -1.7.10 - diff --git a/0003-Revert-tinyjpeg-Better-luminance-quantization-table-.patch b/0003-Revert-tinyjpeg-Better-luminance-quantization-table-.patch deleted file mode 100644 index 9192b77..0000000 --- a/0003-Revert-tinyjpeg-Better-luminance-quantization-table-.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 09dfce3c1ed184326c5ac2acde61bc5ba3798058 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Sat, 21 Apr 2012 14:39:58 +0200 -Subject: [PATCH 03/12] Revert "tinyjpeg: Better luminance quantization table - for Pixart JPEG" - -This reverts commit e186777daeaa717b7d919e932f7d3be10156d572. ---- - lib/libv4lconvert/tinyjpeg.c | 16 ++++++++-------- - 1 file changed, 8 insertions(+), 8 deletions(-) - -diff --git a/lib/libv4lconvert/tinyjpeg.c b/lib/libv4lconvert/tinyjpeg.c -index d2a7d3f..756ad9c 100644 ---- a/lib/libv4lconvert/tinyjpeg.c -+++ b/lib/libv4lconvert/tinyjpeg.c -@@ -206,14 +206,14 @@ static const unsigned char val_ac_chrominance[] = { - }; - - const unsigned char pixart_quantization[][64] = { { -- 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x10, 0x10, -- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, -- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, -- 0x10, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 0x40, -- 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, -- 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, -+ 0x07, 0x07, 0x08, 0x0a, 0x09, 0x07, 0x0d, 0x0b, -+ 0x0c, 0x0d, 0x11, 0x10, 0x0f, 0x12, 0x17, 0x27, -+ 0x1a, 0x18, 0x16, 0x16, 0x18, 0x31, 0x23, 0x25, -+ 0x1d, 0x28, 0x3a, 0x33, 0x3d, 0x3c, 0x39, 0x33, -+ 0x38, 0x37, 0x40, 0x48, 0x5c, 0x4e, 0x40, 0x44, -+ 0x57, 0x45, 0x37, 0x38, 0x50, 0x6d, 0x51, 0x57, -+ 0x5f, 0x62, 0x67, 0x68, 0x67, 0x3e, 0x4d, 0x71, -+ 0x79, 0x70, 0x64, 0x78, 0x5c, 0x65, 0x67, 0x63, - }, - { - 0x11, 0x12, 0x12, 0x18, 0x15, 0x18, 0x2f, 0x1a, --- -1.7.10 - diff --git a/0004-libv4lconvert-Dynamic-quantization-tables-for-Pixart.patch b/0004-libv4lconvert-Dynamic-quantization-tables-for-Pixart.patch deleted file mode 100644 index 47a3380..0000000 --- a/0004-libv4lconvert-Dynamic-quantization-tables-for-Pixart.patch +++ /dev/null @@ -1,150 +0,0 @@ -From 7b9ee388ca510e818dc9f248c8cd6c2ffe40fa94 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Mon, 23 Apr 2012 23:03:40 +0200 -Subject: [PATCH 04/12] libv4lconvert: Dynamic quantization tables for Pixart - JPEG -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Inspired by a patch from Jean-François Moine , I've spend -4 days on a row investigating (through trial and error) Pixart's JPEG -compression. This patch accumulates what I've learned from this, giving 2 -important improvements: -1) Support for properly decompressing pac7302 generated images where some - of the MCU-s are compressed with a lower quality / higher quantization - values -2) Proper chrominance quantization tables for Pixart JPEG, getting rid of - the sometimes horribly over saturation our decompression code was causing - -The support for dynamic quantization tables this patch adds also allows us to -enable lower compression ratios in the kernel driver when running at a lower -framerate, resulting in better image quality. - -Signed-off-by: Hans de Goede ---- - lib/libv4lconvert/tinyjpeg-internal.h | 1 + - lib/libv4lconvert/tinyjpeg.c | 77 ++++++++++++++++++++++----------- - 2 files changed, 53 insertions(+), 25 deletions(-) - -diff --git a/lib/libv4lconvert/tinyjpeg-internal.h b/lib/libv4lconvert/tinyjpeg-internal.h -index 702a2a2..4041251 100644 ---- a/lib/libv4lconvert/tinyjpeg-internal.h -+++ b/lib/libv4lconvert/tinyjpeg-internal.h -@@ -103,6 +103,7 @@ struct jdec_private { - #if SANITY_CHECK - unsigned int current_cid; /* For planar JPEG */ - #endif -+ unsigned char marker; /* for PJPG (Pixart JPEG) */ - - /* Temp space used after the IDCT to store each components */ - uint8_t Y[64 * 4], Cr[64], Cb[64]; -diff --git a/lib/libv4lconvert/tinyjpeg.c b/lib/libv4lconvert/tinyjpeg.c -index 756ad9c..dd77d0f 100644 ---- a/lib/libv4lconvert/tinyjpeg.c -+++ b/lib/libv4lconvert/tinyjpeg.c -@@ -205,9 +205,11 @@ static const unsigned char val_ac_chrominance[] = { - 0xf9, 0xfa - }; - --const unsigned char pixart_quantization[][64] = { { -- 0x07, 0x07, 0x08, 0x0a, 0x09, 0x07, 0x0d, 0x0b, -- 0x0c, 0x0d, 0x11, 0x10, 0x0f, 0x12, 0x17, 0x27, -+/* Standard JPEG quantization tables from Annex K of the JPEG standard. -+ Note unlike in Annex K the entries here are in zigzag order! */ -+const unsigned char standard_quantization[][64] = { { -+ 0x10, 0x0b, 0x0c, 0x0e, 0x0c, 0x0a, 0x10, 0x0e, -+ 0x0d, 0x0e, 0x12, 0x11, 0x10, 0x13, 0x18, 0x28, - 0x1a, 0x18, 0x16, 0x16, 0x18, 0x31, 0x23, 0x25, - 0x1d, 0x28, 0x3a, 0x33, 0x3d, 0x3c, 0x39, 0x33, - 0x38, 0x37, 0x40, 0x48, 0x5c, 0x4e, 0x40, 0x44, -@@ -1376,25 +1378,57 @@ static void decode_MCU_2x1_3planes(struct jdec_private *priv) - IDCT(&priv->component_infos[cCr], priv->Cr, 8); - } - -+static void build_quantization_table(float *qtable, const unsigned char *ref_table); -+ - static void pixart_decode_MCU_2x1_3planes(struct jdec_private *priv) - { - unsigned char marker; - -- look_nbits(priv->reservoir, priv->nbits_in_reservoir, priv->stream, 8, marker); -- /* I think the marker indicates which quantization table to use, iow -- a Pixart JPEG may have a different quantization table per MCU, most -- MCU's have 0x44 as marker for which our special Pixart quantization -- tables are correct. Unfortunately with a 7302 some blocks also have 0x48, -- and sometimes even other values. As 0x48 is quite common too, we really -- need to find out the correct table for that, as currently the blocks -- with a 0x48 marker look wrong. During normal operation the marker stays -- within the range below, if it gets out of this range we're most likely -- decoding garbage */ -- if (marker < 0x20 || marker > 0x7f) { -- snprintf(priv->error_string, sizeof(priv->error_string), -- "Pixart JPEG error: invalid MCU marker: 0x%02x\n", -- (unsigned int)marker); -- longjmp(priv->jump_state, -EIO); -+ look_nbits(priv->reservoir, priv->nbits_in_reservoir, priv->stream, -+ 8, marker); -+ -+ /* Pixart JPEG MCU-s are preceded by a marker indicating the quality -+ setting with which the MCU is compressed, IOW the MCU-s may have a -+ different quantization table per MCU. So if the marker changes we -+ need to rebuild the quantization tables. */ -+ if (marker != priv->marker) { -+ int i, j, comp; -+ unsigned char qt[64]; -+ /* These values have been found by trial and error and seem to -+ work reasonably. Markers with index 0 - 7 are never -+ generated by the hardware, so they are likely wrong. */ -+ const int qfactor[32] = { -+ 10, 12, 14, 16, 18, 20, 22, 24, -+ 25, 30, 35, 40, 45, 50, 55, 60, -+ 64, 68, 80, 90, 100, 120, 140, 160, -+ 180, 200, 220, 240, 260, 280, 300, 320 -+ }; -+ -+ i = (marker & 0x7c) >> 2; /* Bits 0 and 1 are always 0 */ -+ comp = qfactor[i]; -+ -+ /* And another special Pixart feature, the DC quantization -+ factor is fixed! */ -+ qt[0] = 7; -+ for (i = 1; i < 64; i++) { -+ j = (standard_quantization[0][i] * comp + 50) / 100; -+ qt[i] = (j < 255) ? j : 255; -+ } -+ build_quantization_table(priv->Q_tables[0], qt); -+ -+ /* And yet another Pixart JPEG special feature, Pixart JPEG -+ uses the luminance table for chrominance too! Either -+ as is or with all values multiplied by 2, this is encoded -+ in bit 7 of the marker. */ -+ if (!(marker & 0x80)) { -+ for (i = 0; i < 64; i++) { -+ j = qt[i] * 2; -+ qt[i] = (j < 255) ? j : 255; -+ } -+ } -+ build_quantization_table(priv->Q_tables[1], qt); -+ -+ priv->marker = marker; - } - skip_nbits(priv->reservoir, priv->nbits_in_reservoir, priv->stream, 8); - -@@ -1944,13 +1978,6 @@ static int parse_JFIF(struct jdec_private *priv, const unsigned char *stream) - (!dqt_marker_found && !(priv->flags & TINYJPEG_FLAGS_PIXART_JPEG))) - goto bogus_jpeg_format; - -- if (priv->flags & TINYJPEG_FLAGS_PIXART_JPEG) { -- if (!priv->default_huffman_table_initialized) { -- build_quantization_table(priv->Q_tables[0], pixart_quantization[0]); -- build_quantization_table(priv->Q_tables[1], pixart_quantization[1]); -- } -- } -- - if (!dht_marker_found) { - trace("No Huffman table loaded, using the default one\n"); - if (build_default_huffman_tables(priv)) --- -1.7.10 - diff --git a/0005-libv4lconvert-Drop-Pixart-JPEG-frames-with-changing-.patch b/0005-libv4lconvert-Drop-Pixart-JPEG-frames-with-changing-.patch deleted file mode 100644 index 7939680..0000000 --- a/0005-libv4lconvert-Drop-Pixart-JPEG-frames-with-changing-.patch +++ /dev/null @@ -1,59 +0,0 @@ -From e2821f4bce9db15fcb463ba945fe7433773b9901 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Mon, 23 Apr 2012 23:18:24 +0200 -Subject: [PATCH 05/12] libv4lconvert: Drop Pixart JPEG frames with changing - chrominance setting - -Sometimes the pac7302 switches chrominance setting halfway though a -frame, with a quite ugly looking result, so lets drop such frames. - -Signed-off-by: Hans de Goede ---- - lib/libv4lconvert/tinyjpeg-internal.h | 1 + - lib/libv4lconvert/tinyjpeg.c | 11 +++++++++++ - 2 files changed, 12 insertions(+) - -diff --git a/lib/libv4lconvert/tinyjpeg-internal.h b/lib/libv4lconvert/tinyjpeg-internal.h -index 4041251..dcbcf27 100644 ---- a/lib/libv4lconvert/tinyjpeg-internal.h -+++ b/lib/libv4lconvert/tinyjpeg-internal.h -@@ -104,6 +104,7 @@ struct jdec_private { - unsigned int current_cid; /* For planar JPEG */ - #endif - unsigned char marker; /* for PJPG (Pixart JPEG) */ -+ unsigned char first_marker; /* for PJPG (Pixart JPEG) */ - - /* Temp space used after the IDCT to store each components */ - uint8_t Y[64 * 4], Cr[64], Cb[64]; -diff --git a/lib/libv4lconvert/tinyjpeg.c b/lib/libv4lconvert/tinyjpeg.c -index dd77d0f..8fc484e 100644 ---- a/lib/libv4lconvert/tinyjpeg.c -+++ b/lib/libv4lconvert/tinyjpeg.c -@@ -1387,6 +1387,16 @@ static void pixart_decode_MCU_2x1_3planes(struct jdec_private *priv) - look_nbits(priv->reservoir, priv->nbits_in_reservoir, priv->stream, - 8, marker); - -+ /* Sometimes the pac7302 switches chrominance setting halfway though a -+ frame, with a quite ugly looking result, so we drop such frames. */ -+ if (priv->first_marker == 0) -+ priv->first_marker = marker; -+ else if ((marker & 0x80) != (priv->first_marker & 0x80)) { -+ snprintf(priv->error_string, sizeof(priv->error_string), -+ "Pixart JPEG error: chrominance changed halfway\n"); -+ longjmp(priv->jump_state, -EIO); -+ } -+ - /* Pixart JPEG MCU-s are preceded by a marker indicating the quality - setting with which the MCU is compressed, IOW the MCU-s may have a - different quantization table per MCU. So if the marker changes we -@@ -2224,6 +2234,7 @@ int tinyjpeg_decode(struct jdec_private *priv, int pixfmt) - return length; - priv->stream = priv->stream_filtered; - priv->stream_end = priv->stream + length; -+ priv->first_marker = 0; - - decode_mcu_table = pixart_decode_mcu_3comp_table; - } --- -1.7.10 - diff --git a/0006-libv4lconvert-Further-Pixart-JPEG-decompression-twea.patch b/0006-libv4lconvert-Further-Pixart-JPEG-decompression-twea.patch deleted file mode 100644 index a5ce93a..0000000 --- a/0006-libv4lconvert-Further-Pixart-JPEG-decompression-twea.patch +++ /dev/null @@ -1,132 +0,0 @@ -From 33b272f8b45e8639f567e9aa24a7079b567e20de Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Fri, 27 Apr 2012 14:56:18 +0200 -Subject: [PATCH 06/12] libv4lconvert: Further Pixart JPEG decompression - tweaks -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Many thanks to Jean-François Moine for digging the -quantization tables out of the windows driver. - -Signed-off-by: Hans de Goede ---- - lib/libv4lconvert/tinyjpeg.c | 71 ++++++++++++++++++++++++++++++++---------- - 1 file changed, 54 insertions(+), 17 deletions(-) - -diff --git a/lib/libv4lconvert/tinyjpeg.c b/lib/libv4lconvert/tinyjpeg.c -index 8fc484e..d227c79 100644 ---- a/lib/libv4lconvert/tinyjpeg.c -+++ b/lib/libv4lconvert/tinyjpeg.c -@@ -205,6 +205,7 @@ static const unsigned char val_ac_chrominance[] = { - 0xf9, 0xfa - }; - -+#if 0 /* unused */ - /* Standard JPEG quantization tables from Annex K of the JPEG standard. - Note unlike in Annex K the entries here are in zigzag order! */ - const unsigned char standard_quantization[][64] = { { -@@ -228,6 +229,7 @@ const unsigned char standard_quantization[][64] = { { - 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, - }, - }; -+#endif - - /* - * 4 functions to manage the stream -@@ -1402,39 +1404,74 @@ static void pixart_decode_MCU_2x1_3planes(struct jdec_private *priv) - different quantization table per MCU. So if the marker changes we - need to rebuild the quantization tables. */ - if (marker != priv->marker) { -- int i, j, comp; -+ int i, j, comp, lumi, chroma; - unsigned char qt[64]; - /* These values have been found by trial and error and seem to - work reasonably. Markers with index 0 - 7 are never - generated by the hardware, so they are likely wrong. */ - const int qfactor[32] = { -- 10, 12, 14, 16, 18, 20, 22, 24, - 25, 30, 35, 40, 45, 50, 55, 60, -- 64, 68, 80, 90, 100, 120, 140, 160, -- 180, 200, 220, 240, 260, 280, 300, 320 -+ 65, 70, 75, 80, 85, 90, 95, 100, -+ 100, 100, 120, 140, 160, 180, 210, 240, -+ 270, 300, 330, 360, 390, 420, 450, 480 - }; -+ /* These tables were found in SPC230NC.SYS */ -+ const unsigned char pixart_q[][64] = { { -+ 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, -+ 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, -+ 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, -+ 0x08, 0x08, 0x08, 0x08, 0x10, 0x10, 0x10, 0x10, -+ 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, -+ 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, -+ 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -+ }, { -+ 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x10, 0x10, -+ 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, -+ 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, -+ 0x10, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 0x40, -+ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, -+ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, -+ }, { -+ 0x08, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x10, 0x10, -+ 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, -+ 0x10, 0x10, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, -+ 0x40, 0x40, 0x40, 0x40, 0x63, 0x63, 0x63, 0x63, -+ 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, -+ 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, -+ 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, -+ }, { -+ 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, -+ 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, -+ 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, -+ 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, -+ 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, -+ 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, -+ 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, -+ } }; - - i = (marker & 0x7c) >> 2; /* Bits 0 and 1 are always 0 */ - comp = qfactor[i]; -+ lumi = (marker & 0x40) ? 1 : 0; -+ chroma = (marker & 0x80) ? 2 : 3; -+ /* printf("marker %02x comp %d lumi %d chroma %d\n", marker, comp, lumi, chroma); */ - -- /* And another special Pixart feature, the DC quantization -- factor is fixed! */ -- qt[0] = 7; -+ /* Note the DC quantization factor is fixed! */ -+ qt[0] = pixart_q[lumi][0]; - for (i = 1; i < 64; i++) { -- j = (standard_quantization[0][i] * comp + 50) / 100; -+ j = (pixart_q[lumi][i] * comp + 50) / 100; - qt[i] = (j < 255) ? j : 255; - } - build_quantization_table(priv->Q_tables[0], qt); - -- /* And yet another Pixart JPEG special feature, Pixart JPEG -- uses the luminance table for chrominance too! Either -- as is or with all values multiplied by 2, this is encoded -- in bit 7 of the marker. */ -- if (!(marker & 0x80)) { -- for (i = 0; i < 64; i++) { -- j = qt[i] * 2; -- qt[i] = (j < 255) ? j : 255; -- } -+ qt[0] = pixart_q[chroma][0]; -+ for (i = 1; i < 64; i++) { -+ j = (pixart_q[chroma][i] * comp + 50) / 100; -+ qt[i] = (j < 255) ? j : 255; - } - build_quantization_table(priv->Q_tables[1], qt); - --- -1.7.10 - diff --git a/0007-libv4lconvert-Fix-interpretation-of-bit-7-of-the-Pix.patch b/0007-libv4lconvert-Fix-interpretation-of-bit-7-of-the-Pix.patch deleted file mode 100644 index ecdc7c5..0000000 --- a/0007-libv4lconvert-Fix-interpretation-of-bit-7-of-the-Pix.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 6e43a82aee9ec84dfd016586ff8d4a11ac0ccaea Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Fri, 27 Apr 2012 17:40:53 +0200 -Subject: [PATCH 07/12] libv4lconvert: Fix interpretation of bit 7 of the - Pixart JPEG marker - -Signed-off-by: Hans de Goede ---- - lib/libv4lconvert/tinyjpeg.c | 17 ++++++++++------- - 1 file changed, 10 insertions(+), 7 deletions(-) - -diff --git a/lib/libv4lconvert/tinyjpeg.c b/lib/libv4lconvert/tinyjpeg.c -index d227c79..01bd409 100644 ---- a/lib/libv4lconvert/tinyjpeg.c -+++ b/lib/libv4lconvert/tinyjpeg.c -@@ -1404,7 +1404,7 @@ static void pixart_decode_MCU_2x1_3planes(struct jdec_private *priv) - different quantization table per MCU. So if the marker changes we - need to rebuild the quantization tables. */ - if (marker != priv->marker) { -- int i, j, comp, lumi, chroma; -+ int i, j, comp, lumi; - unsigned char qt[64]; - /* These values have been found by trial and error and seem to - work reasonably. Markers with index 0 - 7 are never -@@ -1457,8 +1457,7 @@ static void pixart_decode_MCU_2x1_3planes(struct jdec_private *priv) - i = (marker & 0x7c) >> 2; /* Bits 0 and 1 are always 0 */ - comp = qfactor[i]; - lumi = (marker & 0x40) ? 1 : 0; -- chroma = (marker & 0x80) ? 2 : 3; -- /* printf("marker %02x comp %d lumi %d chroma %d\n", marker, comp, lumi, chroma); */ -+ /* printf("marker %02x comp %d lumi %d\n", marker, comp, lumi); */ - - /* Note the DC quantization factor is fixed! */ - qt[0] = pixart_q[lumi][0]; -@@ -1468,10 +1467,14 @@ static void pixart_decode_MCU_2x1_3planes(struct jdec_private *priv) - } - build_quantization_table(priv->Q_tables[0], qt); - -- qt[0] = pixart_q[chroma][0]; -- for (i = 1; i < 64; i++) { -- j = (pixart_q[chroma][i] * comp + 50) / 100; -- qt[i] = (j < 255) ? j : 255; -+ /* If bit 7 of the marker is set chrominance uses the -+ luminance quantization table */ -+ if (!(marker & 0x80)) { -+ qt[0] = pixart_q[3][0]; -+ for (i = 1; i < 64; i++) { -+ j = (pixart_q[3][i] * comp + 50) / 100; -+ qt[i] = (j < 255) ? j : 255; -+ } - } - build_quantization_table(priv->Q_tables[1], qt); - --- -1.7.10 - diff --git a/0008-libv4lcontrol-Add-another-USB-ID-to-ASUS-table.patch b/0008-libv4lcontrol-Add-another-USB-ID-to-ASUS-table.patch deleted file mode 100644 index 844419c..0000000 --- a/0008-libv4lcontrol-Add-another-USB-ID-to-ASUS-table.patch +++ /dev/null @@ -1,26 +0,0 @@ -From a03edd3d4f87d792fc3476081f21cb1ab627d3fc Mon Sep 17 00:00:00 2001 -From: Gregor Jasny -Date: Thu, 10 May 2012 20:15:25 +0200 -Subject: [PATCH 08/12] libv4lcontrol: Add another USB ID to ASUS table - -Signed-off-by: Gregor Jasny -(cherry picked from commit 2ba650f05f83f08885fcd7cada608b089c4776e4) ---- - lib/libv4lconvert/control/libv4lcontrol.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/lib/libv4lconvert/control/libv4lcontrol.c b/lib/libv4lconvert/control/libv4lcontrol.c -index 7b2150f..3648d91 100644 ---- a/lib/libv4lconvert/control/libv4lcontrol.c -+++ b/lib/libv4lconvert/control/libv4lcontrol.c -@@ -284,6 +284,7 @@ static const struct v4lcontrol_usb_id asus_camera_id[] = { - { 0x04f2, 0xb071 }, - { 0x04f2, 0xb072 }, - { 0x04f2, 0xb106 }, -+ { 0x04f2, 0xb169 }, - { 0x04f2, 0xb16b }, - { 0x04f2, 0xb1b9 }, - { 0x04f2, 0xb1bb }, --- -1.7.10 - diff --git a/0009-libv4lcontrol-Add-Lenovo-Thinkpad-X220-Tablet-to-ups.patch b/0009-libv4lcontrol-Add-Lenovo-Thinkpad-X220-Tablet-to-ups.patch deleted file mode 100644 index 4b04e4c..0000000 --- a/0009-libv4lcontrol-Add-Lenovo-Thinkpad-X220-Tablet-to-ups.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 310e4b64d3116600c1bc085ac750098ec111141f Mon Sep 17 00:00:00 2001 -From: Jakob Haufe -Date: Thu, 10 May 2012 20:26:48 +0200 -Subject: [PATCH 09/12] libv4lcontrol: Add Lenovo Thinkpad X220 Tablet to - upside down table - -Signed-off-by: Gregor Jasny -(cherry picked from commit c8dc32601812326646e4e8fd1388a0cc9d2a512c) ---- - lib/libv4lconvert/control/libv4lcontrol.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/lib/libv4lconvert/control/libv4lcontrol.c b/lib/libv4lconvert/control/libv4lcontrol.c -index 3648d91..8795e2f 100644 ---- a/lib/libv4lconvert/control/libv4lcontrol.c -+++ b/lib/libv4lconvert/control/libv4lcontrol.c -@@ -132,6 +132,8 @@ static const struct v4lcontrol_flags_info v4lcontrol_flags[] = { - { 0x04f2, 0xb213, 0, "FUJITSU", "FJNBB19", - V4LCONTROL_HFLIPPED | V4LCONTROL_VFLIPPED, 0, - "FUJITSU", "LIFEBOOK NH751" }, -+ { 0x04f2, 0xb217, 0, "LENOVO", "42982YG", -+ V4LCONTROL_HFLIPPED | V4LCONTROL_VFLIPPED }, - { 0x04f2, 0xb217, 0, "LENOVO", "42992QG", - V4LCONTROL_HFLIPPED | V4LCONTROL_VFLIPPED }, - { 0x04f2, 0xb27c, 0, "LENOVO", "12973MG", --- -1.7.10 - diff --git a/0010-libv4l2-Improve-VIDIOC_-_FMT-logging.patch b/0010-libv4l2-Improve-VIDIOC_-_FMT-logging.patch deleted file mode 100644 index 7c2b6d2..0000000 --- a/0010-libv4l2-Improve-VIDIOC_-_FMT-logging.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 947f108f0860b5d55e4e506fa9521a797257d2b2 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Fri, 11 May 2012 13:51:03 +0200 -Subject: [PATCH 10/12] libv4l2: Improve VIDIOC_*_FMT logging - -Signed-off-by: Hans de Goede ---- - lib/libv4l2/log.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/lib/libv4l2/log.c b/lib/libv4l2/log.c -index f7ce06f..377f553 100644 ---- a/lib/libv4l2/log.c -+++ b/lib/libv4l2/log.c -@@ -154,6 +154,8 @@ void v4l2_log_ioctl(unsigned long int request, void *arg, int result) - (int)fmt->fmt.pix.sizeimage); - fprintf(v4l2_log_file, " colorspace: %d, priv: %x\n", - (int)fmt->fmt.pix.colorspace, (int)fmt->fmt.pix.priv); -+ } else { -+ fprintf(v4l2_log_file, " type: %d\n", (int)fmt->type); - } - break; - } --- -1.7.10 - diff --git a/0011-libv4lconvert-replace-strndupa-with-more-portable-st.patch b/0011-libv4lconvert-replace-strndupa-with-more-portable-st.patch deleted file mode 100644 index a1761f7..0000000 --- a/0011-libv4lconvert-replace-strndupa-with-more-portable-st.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 1539b9211634f3546d08fa36593b02bf2fa3903a Mon Sep 17 00:00:00 2001 -From: Gregor Jasny -Date: Thu, 2 Feb 2012 20:25:07 +0100 -Subject: [PATCH 11/12] libv4lconvert: replace strndupa with more portable - strndup - -Signed-off-by: Gregor Jasny ---- - lib/libv4lconvert/control/libv4lcontrol.c | 12 ++++++++---- - 1 file changed, 8 insertions(+), 4 deletions(-) - -diff --git a/lib/libv4lconvert/control/libv4lcontrol.c b/lib/libv4lconvert/control/libv4lcontrol.c -index 8795e2f..f312354 100644 ---- a/lib/libv4lconvert/control/libv4lcontrol.c -+++ b/lib/libv4lconvert/control/libv4lcontrol.c -@@ -452,6 +452,7 @@ static int find_dmi_string(const char **table_entries, const char *dmi_value) - const char **entry_ptr; - char *trimmed_dmi; - size_t n; -+ int found = 0; - - if (!start) return 0; - -@@ -459,16 +460,19 @@ static int find_dmi_string(const char **table_entries, const char *dmi_value) - while (isspace(*start)) start++; - n = strlen(start); - while (n > 0 && isspace(start[n-1])) --n; -- trimmed_dmi = strndupa(start, n); -+ trimmed_dmi = strndup(start, n); - - /* find trimmed value */ - for (entry_ptr = table_entries; *entry_ptr; entry_ptr++) { -- const int found = fnmatch(*entry_ptr, trimmed_dmi, 0) == 0; -+ found = fnmatch(*entry_ptr, trimmed_dmi, 0) == 0; - /* fprintf(stderr, "find_dmi_string('%s', '%s'->'%s')=%i\n", *entry_ptr, dmi_value, trimmed_dmi, found); */ - if (found) -- return 1; -+ break; - } -- return 0; -+ -+ free(trimmed_dmi); -+ -+ return found; - } - - /* --- -1.7.10 - diff --git a/0012-libdvbv5-Add-missing-includes.patch b/0012-libdvbv5-Add-missing-includes.patch deleted file mode 100644 index 1dcae8c..0000000 --- a/0012-libdvbv5-Add-missing-includes.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 9475926b6e50f60ac56175915cf82dd4f97d00ae Mon Sep 17 00:00:00 2001 -From: Gregor Jasny -Date: Tue, 15 May 2012 21:24:51 +0200 -Subject: [PATCH 12/12] libdvbv5: Add missing includes - -Signed-off-by: Gregor Jasny ---- - utils/dvb/dvb-v5-std.h | 1 + - utils/dvb/dvb-v5.h | 3 +++ - 2 files changed, 4 insertions(+) - -diff --git a/utils/dvb/dvb-v5-std.h b/utils/dvb/dvb-v5-std.h -index 6403ad2..166bf55 100644 ---- a/utils/dvb/dvb-v5-std.h -+++ b/utils/dvb/dvb-v5-std.h -@@ -20,6 +20,7 @@ - * http://linuxtv.org/downloads/v4l-dvb-apis/FE_GET_SET_PROPERTY.html - */ - -+#include - #include "dvb_frontend.h" - - const unsigned int sys_dvbt_props[] = { -diff --git a/utils/dvb/dvb-v5.h b/utils/dvb/dvb-v5.h -index 6ba6730..67cd725 100644 ---- a/utils/dvb/dvb-v5.h -+++ b/utils/dvb/dvb-v5.h -@@ -3,7 +3,10 @@ - */ - #ifndef _DVB_V5_CONSTS_H - #define _DVB_V5_CONSTS_H -+ -+#include - #include "dvb_frontend.h" -+ - struct fe_caps_name { - unsigned idx; - char *name; --- -1.7.10 - diff --git a/0013-libv4l2-Ensure-we-always-set-buf-length-when-convert.patch b/0013-libv4l2-Ensure-we-always-set-buf-length-when-convert.patch deleted file mode 100644 index f7f2b73..0000000 --- a/0013-libv4l2-Ensure-we-always-set-buf-length-when-convert.patch +++ /dev/null @@ -1,125 +0,0 @@ -From 6662f9f04e529ddeae3828fe18b49f7b239fdb10 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Mon, 9 Jul 2012 10:13:11 +0200 -Subject: [PATCH 13/14] libv4l2: Ensure we always set buf->length when - converting - -Some apps blindly use buf->length when calling munmap, even if a previous -call (ie dqbuf) on the buffer failed. We used to not set buf->length to -our conversion buffer length when the actual ioctl call to the device, or -the format conversion failed. - -When a dqbuf succeeded and the conversion failed this which would cause -us to leave buf->length set to the real buffer length rather then the -conversion buffer length, if the app then wrongly uses buf->length (*) -for a munmap we would not recognize this as munmap of the conversion -buffer and pass it through to the real munmap unmapping a part of -our conversion buf without being aware of this! - -*) After from the point of the app a failed dqbuf, so it should not trust the -contents of buf at all. - -This patch makes things work even for buggy apps, by always setting -buf->length when converting even if things fail. - -Signed-off-by: Hans de Goede - -Conflicts: - lib/libv4l2/libv4l2.c ---- - lib/libv4l2/libv4l2.c | 52 +++++++++++++++++++++++++++++-------------------- - 1 file changed, 31 insertions(+), 21 deletions(-) - -diff --git a/lib/libv4l2/libv4l2.c b/lib/libv4l2/libv4l2.c -index 089fc38..a8f17ed 100644 ---- a/lib/libv4l2/libv4l2.c -+++ b/lib/libv4l2/libv4l2.c -@@ -486,6 +486,23 @@ static int v4l2_needs_conversion(int index) - return 0; - } - -+static void v4l2_set_conversion_buf_params(int index, struct v4l2_buffer *buf) -+{ -+ if (!v4l2_needs_conversion(index)) -+ return; -+ -+ /* This may happen if the ioctl failed */ -+ if (buf->index >= devices[index].no_frames) -+ buf->index = 0; -+ -+ buf->m.offset = V4L2_MMAP_OFFSET_MAGIC | buf->index; -+ buf->length = V4L2_FRAME_BUF_SIZE; -+ if (devices[index].frame_map_count[buf->index]) -+ buf->flags |= V4L2_BUF_FLAG_MAPPED; -+ else -+ buf->flags &= ~V4L2_BUF_FLAG_MAPPED; -+} -+ - static int v4l2_buffers_mapped(int index) - { - unsigned int i; -@@ -1182,19 +1199,14 @@ int v4l2_ioctl(int fd, unsigned long int request, ...) - /* Do a real query even when converting to let the driver fill in - things like buf->field */ - result = SYS_IOCTL(devices[index].fd, VIDIOC_QUERYBUF, buf); -- if (result || !v4l2_needs_conversion(index)) -- break; - -- buf->m.offset = V4L2_MMAP_OFFSET_MAGIC | buf->index; -- buf->length = V4L2_FRAME_BUF_SIZE; -- if (devices[index].frame_map_count[buf->index]) -- buf->flags |= V4L2_BUF_FLAG_MAPPED; -- else -- buf->flags &= ~V4L2_BUF_FLAG_MAPPED; -+ v4l2_set_conversion_buf_params(index, buf); - break; - } - -- case VIDIOC_QBUF: -+ case VIDIOC_QBUF: { -+ struct v4l2_buffer *buf = arg; -+ - if (devices[index].flags & V4L2_STREAM_CONTROLLED_BY_READ) { - result = v4l2_deactivate_read_stream(index); - if (result) -@@ -1209,7 +1221,10 @@ int v4l2_ioctl(int fd, unsigned long int request, ...) - } - - result = SYS_IOCTL(devices[index].fd, VIDIOC_QBUF, arg); -+ -+ v4l2_set_conversion_buf_params(index, buf); - break; -+ } - - case VIDIOC_DQBUF: { - struct v4l2_buffer *buf = arg; -@@ -1248,19 +1263,14 @@ int v4l2_ioctl(int fd, unsigned long int request, ...) - } - } - -- result = v4l2_dequeue_and_convert(index, buf, 0, V4L2_FRAME_BUF_SIZE); -- if (result < 0) -- break; -- -- buf->bytesused = result; -- buf->m.offset = V4L2_MMAP_OFFSET_MAGIC | buf->index; -- buf->length = V4L2_FRAME_BUF_SIZE; -- if (devices[index].frame_map_count[buf->index]) -- buf->flags |= V4L2_BUF_FLAG_MAPPED; -- else -- buf->flags &= ~V4L2_BUF_FLAG_MAPPED; -+ result = v4l2_dequeue_and_convert(index, buf, 0, -+ V4L2_FRAME_BUF_SIZE); -+ if (result >= 0) { -+ buf->bytesused = result; -+ result = 0; -+ } - -- result = 0; -+ v4l2_set_conversion_buf_params(index, buf); - break; - } - --- -1.7.10.4 - diff --git a/0014-libv4l2-dqbuf-Don-t-requeue-buffers-which-we-are-ret.patch b/0014-libv4l2-dqbuf-Don-t-requeue-buffers-which-we-are-ret.patch deleted file mode 100644 index 42ea6f0..0000000 --- a/0014-libv4l2-dqbuf-Don-t-requeue-buffers-which-we-are-ret.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 8fcfbbc58a0b6a0eeb31c02493e164f82236a8e6 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Mon, 9 Jul 2012 13:23:41 +0200 -Subject: [PATCH 14/14] libv4l2: dqbuf: Don't requeue buffers which we are - returning to the app - -We retry dqbuf when we get a short frame or a decode error, but if the retries -are exhausted and the frame is short we will return the (short) buffer to the -caller, since returning a short frame is better then not returning anything -at all. - -This means that we must not re-queue it then! Also see: -https://bugzilla.redhat.com/show_bug.cgi?id=838279 - -Signed-off-by: Hans de Goede ---- - lib/libv4l2/libv4l2.c | 8 +++++++- - 1 file changed, 7 insertions(+), 1 deletion(-) - -diff --git a/lib/libv4l2/libv4l2.c b/lib/libv4l2/libv4l2.c -index a8f17ed..070ac0d 100644 ---- a/lib/libv4l2/libv4l2.c -+++ b/lib/libv4l2/libv4l2.c -@@ -317,7 +317,13 @@ static int v4l2_dequeue_and_convert(int index, struct v4l2_buffer *buf, - V4L2_LOG_ERR("converting / decoding frame data: %s", - v4lconvert_get_error_message(devices[index].convert)); - -- v4l2_queue_read_buffer(index, buf->index); -+ /* -+ * If this is the last try, and the frame is short -+ * we will return the (short) buffer to the caller, -+ * so we must not re-queue it then! -+ */ -+ if (!(tries == 1 && errno == EPIPE)) -+ v4l2_queue_read_buffer(index, buf->index); - errno = saved_err; - } - tries--; --- -1.7.10.4 - diff --git a/sources b/sources index 1f42a50..2b3767f 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -40fdda3f4055ed818012d7a7b5ef5be5 v4l-utils-0.8.8.tar.bz2 +6947bea808b19207d89ec31afc3a9a89 v4l-utils-0.9.5.tar.bz2 diff --git a/v4l-utils.spec b/v4l-utils.spec index b925815..0d4c165 100644 --- a/v4l-utils.spec +++ b/v4l-utils.spec @@ -1,31 +1,16 @@ Name: v4l-utils -Version: 0.8.8 -Release: 6%{?dist} +Version: 0.9.5 +Release: 1%{?dist} Summary: Utilities for video4linux and DVB devices Group: Applications/System # 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 -# Bugfixes from upstream git, these can all be dropped with the next release -Patch1: 0001-dvb-Fix-spelling-errors-found-by-lintian.patch -Patch2: 0002-libv4lconvert-Fix-decoding-of-160x120-Pixart-JPEG-im.patch -Patch3: 0003-Revert-tinyjpeg-Better-luminance-quantization-table-.patch -Patch4: 0004-libv4lconvert-Dynamic-quantization-tables-for-Pixart.patch -Patch5: 0005-libv4lconvert-Drop-Pixart-JPEG-frames-with-changing-.patch -Patch6: 0006-libv4lconvert-Further-Pixart-JPEG-decompression-twea.patch -Patch7: 0007-libv4lconvert-Fix-interpretation-of-bit-7-of-the-Pix.patch -Patch8: 0008-libv4lcontrol-Add-another-USB-ID-to-ASUS-table.patch -Patch9: 0009-libv4lcontrol-Add-Lenovo-Thinkpad-X220-Tablet-to-ups.patch -Patch10: 0010-libv4l2-Improve-VIDIOC_-_FMT-logging.patch -Patch11: 0011-libv4lconvert-replace-strndupa-with-more-portable-st.patch -Patch12: 0012-libdvbv5-Add-missing-includes.patch -Patch13: 0013-libv4l2-Ensure-we-always-set-buf-length-when-convert.patch -Patch14: 0014-libv4l2-dqbuf-Don-t-requeue-buffers-which-we-are-ret.patch BuildRequires: libjpeg-devel qt4-devel kernel-headers desktop-file-utils # For /lib/udev/rules.d ownership Requires: udev -Requires: libv4l = %{version}-%{release} +Requires: libv4l%{?_isa} = %{version}-%{release} %description v4l-utils is a collection of various video4linux (V4L) and DVB utilities. The @@ -37,7 +22,7 @@ v4l2-sysfs-path. Summary: Utilities for v4l2 / DVB driver development and debugging # decode_tm6000 is GPLv2 only License: GPLv2+ and GPLv2 -Requires: libv4l = %{version}-%{release} +Requires: libv4l%{?_isa} = %{version}-%{release} %description devel-tools Utilities for v4l2 / DVB driver authors: decode_tm6000, v4l2-compliance and @@ -47,7 +32,7 @@ v4l2-dbg. %package -n qv4l2 Summary: QT v4l2 test control and streaming test application License: GPLv2+ -Requires: libv4l = %{version}-%{release} +Requires: libv4l%{?_isa} = %{version}-%{release} %description -n qv4l2 QT v4l2 test control and streaming test application. @@ -83,7 +68,7 @@ Summary: Development files for libv4l Group: Development/Libraries License: LGPLv2+ URL: http://hansdegoede.livejournal.com/3636.html -Requires: libv4l = %{version}-%{release} +Requires: libv4l%{?_isa} = %{version}-%{release} %description -n libv4l-devel The libv4l-devel package contains libraries and header files for @@ -92,29 +77,20 @@ developing applications that use libv4l. %prep %setup -q -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 -%patch4 -p1 -%patch5 -p1 -%patch6 -p1 -%patch7 -p1 -%patch8 -p1 -%patch9 -p1 -%patch10 -p1 -%patch11 -p1 -%patch12 -p1 -%patch13 -p1 -%patch14 -p1 %build -make %{?_smp_mflags} CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" \ - PREFIX=%{_prefix} LIBDIR=%{_libdir} +%configure --disable-static +# 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 +make %{?_smp_mflags} %install -make install PREFIX=%{_prefix} LIBDIR=%{_libdir} DESTDIR=$RPM_BUILD_ROOT +%make_install +find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';' +rm $RPM_BUILD_ROOT%{_libdir}/{v4l1compat.so,v4l2convert.so} desktop-file-validate $RPM_BUILD_ROOT%{_datadir}/applications/qv4l2.desktop @@ -136,49 +112,53 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %files -%defattr(-,root,root,-) %doc README %dir %{_sysconfdir}/rc_keymaps -%config(noreplace) %{_sysconfdir}/rc_keymaps/* %config(noreplace) %{_sysconfdir}/rc_maps.cfg -/lib/udev/rules.d/70-infrared.rules +%{_udevrulesdir}/70-infrared.rules +%{_prefix}/lib/udev/rc_keymaps/* %{_bindir}/cx18-ctl %{_bindir}/dvb* %{_bindir}/ir-keytable %{_bindir}/ivtv-ctl +%{_bindir}/rds-ctl %{_bindir}/v4l2-ctl %{_bindir}/v4l2-sysfs-path %{_mandir}/man1/ir-keytable.1* %files devel-tools -%defattr(-,root,root,-) %doc README %{_bindir}/decode_tm6000 %{_bindir}/v4l2-compliance %{_sbindir}/v4l2-dbg %files -n qv4l2 -%defattr(-,root,root,-) %doc README %{_bindir}/qv4l2 %{_datadir}/applications/qv4l2.desktop %{_datadir}/icons/hicolor/*/apps/qv4l2.* %files -n libv4l -%defattr(-,root,root,-) %doc COPYING.LIB COPYING ChangeLog README.lib TODO -%{_libdir}/libv4l*.so.* +%{_libdir}/libdvbv5.so.* %{_libdir}/libv4l +%{_libdir}/libv4l*.so.* %files -n libv4l-devel -%defattr(-,root,root,-) %doc README.lib-multi-threading +%{_includedir}/dvb*.h %{_includedir}/libv4l*.h +%{_libdir}/libdvbv5.so %{_libdir}/libv4l*.so +%{_libdir}/pkgconfig/libdvbv5*.pc %{_libdir}/pkgconfig/libv4l*.pc %changelog +* 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