[gstreamer1-plugins-base] Upstream patch to fix contrast/brightness in video playback, needed for OLPC

Daniel Drake dsd at fedoraproject.org
Wed May 29 19:12:29 UTC 2013


commit b54755bc548a54065e22e955d1165378a11f09c1
Author: Daniel Drake <dsd at laptop.org>
Date:   Wed May 29 13:07:04 2013 -0600

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

 ...-pass-translated-color-balance-value-to-c.patch |   52 ++++++++++++++++++++
 gstreamer1-plugins-base.spec                       |    7 ++-
 2 files changed, 58 insertions(+), 1 deletions(-)
---
diff --git a/0001-gstplaysink-pass-translated-color-balance-value-to-c.patch b/0001-gstplaysink-pass-translated-color-balance-value-to-c.patch
new file mode 100644
index 0000000..a236750
--- /dev/null
+++ b/0001-gstplaysink-pass-translated-color-balance-value-to-c.patch
@@ -0,0 +1,52 @@
+From 2731012d832b593c54a50492a27d328f2de9b596 Mon Sep 17 00:00:00 2001
+From: Daniel Drake <dsd at 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,
diff --git a/gstreamer1-plugins-base.spec b/gstreamer1-plugins-base.spec
index bb4b201..c908ab3 100644
--- a/gstreamer1-plugins-base.spec
+++ b/gstreamer1-plugins-base.spec
@@ -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 at laptop.org> - 1.0.7-2
+- Upstream patch to fix contrast/brightness in video playback
+
 * Fri Apr 26 2013 Brian Pepple <bpepple at fedoraproject.org> - 1.0.7-1
 - Update to 1.0.7.
 


More information about the scm-commits mailing list