Upstream patch to fix contrast/brightness in video playback, needed for OLPC

This commit is contained in:
Daniel Drake 2013-05-29 13:07:04 -06:00
parent 264a725c41
commit b54755bc54
2 changed files with 58 additions and 1 deletions

View File

@ -0,0 +1,52 @@
From 2731012d832b593c54a50492a27d328f2de9b596 Mon Sep 17 00:00:00 2001
From: Daniel Drake <dsd@laptop.org>
Date: Wed, 29 May 2013 10:33:48 -0600
Subject: [PATCH] gstplaysink: pass translated color balance value to channel
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
We found a case where untranslated values were being passed from the
proxy to the underlying channel, causing bad color balance values
in some setups.
Thanks to Sebastian Dröge for clarifying how the code works, and
suggesting the fix.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=701202
---
gst/playback/gstplaysink.c | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
Index: gst-plugins-base-1.0.7/gst/playback/gstplaysink.c
===================================================================
--- gst-plugins-base-1.0.7.orig/gst/playback/gstplaysink.c
+++ gst-plugins-base-1.0.7/gst/playback/gstplaysink.c
@@ -1540,6 +1540,7 @@ update_colorbalance (GstPlaySink * plays
GstColorBalanceChannel *proxy = l->data;
GstColorBalanceChannel *channel = NULL;
const GList *channels, *k;
+ gdouble new_val;
channels = gst_color_balance_list_channels (balance);
for (k = channels; k; k = k->next) {
@@ -1553,8 +1554,18 @@ update_colorbalance (GstPlaySink * plays
g_assert (channel);
+ /* Convert to [0, 1] range */
+ new_val =
+ ((gdouble) playsink->colorbalance_values[i] -
+ (gdouble) proxy->min_value) / ((gdouble) proxy->max_value -
+ (gdouble) proxy->min_value);
+ /* Convert to channel range */
+ new_val =
+ channel->min_value + new_val * ((gdouble) channel->max_value -
+ (gdouble) channel->min_value);
+
gst_color_balance_set_value (balance, channel,
- playsink->colorbalance_values[i]);
+ (gint) (new_val + 0.5));
}
g_signal_handlers_unblock_by_func (balance,

View File

@ -2,13 +2,14 @@
Name: gstreamer1-plugins-base
Version: 1.0.7
Release: 1%{?dist}
Release: 2%{?dist}
Summary: GStreamer streaming media framework base plugins
License: LGPLv2+
URL: http://gstreamer.freedesktop.org/
Source0: http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-%{version}.tar.xz
Patch0: 0001-missing-plugins-Remove-the-mpegaudioversion-field.patch
Patch1: 0001-gstplaysink-pass-translated-color-balance-value-to-c.patch
BuildRequires: gstreamer1-devel >= %{version}
BuildRequires: gobject-introspection-devel >= 1.31.1
@ -87,6 +88,7 @@ for the GStreamer Base Plugins library.
%prep
%setup -q -n gst-plugins-base-%{version}
%patch0 -p1
%patch1 -p1
%build
@ -331,6 +333,9 @@ chrpath --delete $RPM_BUILD_ROOT%{_bindir}/gst-discoverer-1.0
%changelog
* Wed May 29 2013 Daniel Drake <dsd@laptop.org> - 1.0.7-2
- Upstream patch to fix contrast/brightness in video playback
* Fri Apr 26 2013 Brian Pepple <bpepple@fedoraproject.org> - 1.0.7-1
- Update to 1.0.7.