Upgrade to version 1.8.1
This commit is contained in:
parent
c18f2b150e
commit
12489f06cf
1
.gitignore
vendored
1
.gitignore
vendored
@ -9,3 +9,4 @@
|
||||
/v4l-utils-1.4.0.tar.bz2
|
||||
/v4l-utils-1.6.0.tar.bz2
|
||||
/v4l-utils-1.6.2.tar.bz2
|
||||
/v4l-utils-1.8.1.tar.bz2
|
||||
|
||||
@ -1,91 +0,0 @@
|
||||
From 757d7910ddf43d9a9187dddae4f51a57fb723e8d Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
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 <hdegoede@redhat.com>
|
||||
---
|
||||
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
|
||||
|
||||
2
sources
2
sources
@ -1 +1 @@
|
||||
9cb3c178f937954e65bf30920af433ef v4l-utils-1.6.2.tar.bz2
|
||||
f86d0938e46fde821dc10d4d2f6636e4 v4l-utils-1.8.1.tar.bz2
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
Name: v4l-utils
|
||||
Version: 1.6.2
|
||||
Release: 3%{?dist}
|
||||
Version: 1.8.1
|
||||
Release: 1%{?dist}
|
||||
Summary: Utilities for video4linux and DVB devices
|
||||
Group: Applications/System
|
||||
# libdvbv5, dvbv5 utils, ir-keytable and v4l2-sysfs-path are GPLv2 only
|
||||
@ -8,7 +8,7 @@ License: GPLv2+ and GPLv2
|
||||
URL: http://www.linuxtv.org/downloads/v4l-utils/
|
||||
Source0: http://linuxtv.org/downloads/v4l-utils/v4l-utils-%{version}.tar.bz2
|
||||
BuildRequires: libjpeg-devel qt4-devel kernel-headers desktop-file-utils
|
||||
BuildRequires: alsa-lib-devel doxygen
|
||||
BuildRequires: alsa-lib-devel doxygen gettext
|
||||
# For /lib/udev/rules.d ownership
|
||||
Requires: udev
|
||||
Requires: libv4l%{?_isa} = %{version}-%{release}
|
||||
@ -116,6 +116,8 @@ 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
|
||||
%find_lang %{name}
|
||||
%find_lang libdvbv5
|
||||
|
||||
|
||||
%post -n libv4l -p /sbin/ldconfig
|
||||
@ -139,7 +141,7 @@ fi
|
||||
gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
|
||||
|
||||
|
||||
%files
|
||||
%files -f %{name}.lang -f libdvbv5.lang
|
||||
%doc README
|
||||
%dir %{_sysconfdir}/rc_keymaps
|
||||
%config(noreplace) %{_sysconfdir}/rc_maps.cfg
|
||||
@ -154,11 +156,14 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
|
||||
%{_bindir}/v4l2-ctl
|
||||
%{_bindir}/v4l2-sysfs-path
|
||||
%{_mandir}/man1/*.1*
|
||||
%exclude %{_mandir}/man1/qv4l2.1*
|
||||
%exclude %{_mandir}/man1/v4l2-compliance.1*
|
||||
|
||||
%files devel-tools
|
||||
%doc README
|
||||
%{_bindir}/decode_tm6000
|
||||
%{_bindir}/v4l2-compliance
|
||||
%{_mandir}/man1/v4l2-compliance.1*
|
||||
%{_sbindir}/v4l2-dbg
|
||||
|
||||
%files -n qv4l2
|
||||
@ -166,6 +171,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
|
||||
%{_bindir}/qv4l2
|
||||
%{_datadir}/applications/qv4l2.desktop
|
||||
%{_datadir}/icons/hicolor/*/apps/qv4l2.*
|
||||
%{_mandir}/man1/qv4l2.1*
|
||||
|
||||
%files -n libv4l
|
||||
%doc COPYING.libv4l COPYING ChangeLog README.libv4l TODO
|
||||
@ -190,6 +196,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
|
||||
|
||||
|
||||
%changelog
|
||||
* Mon Oct 12 2015 Gregor Jasny <gjasny@googlemail.com> - 1.8.1-1
|
||||
- Upgrade to version 1.8.1
|
||||
|
||||
* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.6.2-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user