[Pkg-gstreamer-commits] [pitivi] 01/01: Non-maintainer upload

Sebastian Dröge slomo at moszumanska.debian.org
Mon Nov 10 16:18:33 UTC 2014


This is an automated email from the git hooks/post-receive script.

slomo pushed a commit to branch master
in repository pitivi.

commit d2efa24987955d11041c67b83da7c582d5a65eeb
Author: Sebastian Dröge <sebastian at centricular.com>
Date:   Mon Nov 10 16:29:17 2014 +0100

    Non-maintainer upload
---
 debian/changelog                                   |  23 +++
 debian/control                                     |   2 +-
 ...-fix-crash-in-non-GNOME-Shell-WMs.-timeli.patch |  25 +++
 ...ct-Fix-setting-of-restriction-caps-values.patch |  46 +++++
 ...i-Start-using-glimagesink-as-default-sink.patch | 116 +++++++++++
 ...implement-connectWithViewer-for-glimagesi.patch |  79 ++++++++
 ...02_elements_Dont_use_path_round_rectangle.patch |  47 +++++
 .../03_elements_Dont_use_Cogl_anymore.patch        | 216 +++++++++++++++++++++
 debian/patches/series                              |   6 +
 9 files changed, 559 insertions(+), 1 deletion(-)

diff --git a/debian/changelog b/debian/changelog
index 6612db9..ec998ba 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,26 @@
+pitivi (0.93-4.2) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * Import Ubuntu patches to fix issues (Closes: #763961) (Closes: #760710)
+    - 0001-work-around-fix-crash-in-non-GNOME-Shell-WMs.-timeli.patch
+    - 0002-project-Fix-setting-of-restriction-caps-values.patch
+      + Use set_value, not assignment as GstStructure doesn't support the
+        latter.
+    - 0005-pitivi-Start-using-glimagesink-as-default-sink.patch
+    - 0006-pipeline-Reimplement-connectWithViewer-for-glimagesi.patch
+      + Use glimagesink instead of cluttersink which resolves serious
+        rendering problems with the preview window.
+        > Depend on gstreamer1.0-plugins-bad for this.
+
+ -- Timo Jyrinki <timo at debian.org>  Wed, 29 Oct 2014 12:06:05 +0200
+
+pitivi (0.93-4.1) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * Apply upstream patches to remove dependency on Cogl (Closes: #747009)
+
+ -- Antonio Terceiro <terceiro at debian.org>  Thu, 04 Sep 2014 18:41:31 -0300
+
 pitivi (0.93-4) unstable; urgency=medium
 
   * debian/control:
diff --git a/debian/control b/debian/control
index 9b29008..62f705e 100644
--- a/debian/control
+++ b/debian/control
@@ -44,12 +44,12 @@ Depends: ${misc:Depends},
         python-dbus,
         gstreamer1.0-plugins-base (>= 1.2.3),
         gstreamer1.0-plugins-good (>= 1.2.3),
+        gstreamer1.0-plugins-bad (>= 1.2.3),
         gstreamer1.0-pulseaudio | gstreamer1.0-audiosink,
         gstreamer1.0-x | gstreamer1.0-videosink,
         gstreamer1.0-gnonlin (>= 1.2.0),
         gnome-icon-theme
 Suggests: gstreamer1.0-plugins-ugly,
-          gstreamer1.0-plugins-bad,
           gstreamer1.0-libav,
           frei0r-plugins,
           gir1.2-notify-0.7,
diff --git a/debian/patches/0001-work-around-fix-crash-in-non-GNOME-Shell-WMs.-timeli.patch b/debian/patches/0001-work-around-fix-crash-in-non-GNOME-Shell-WMs.-timeli.patch
new file mode 100644
index 0000000..c80db94
--- /dev/null
+++ b/debian/patches/0001-work-around-fix-crash-in-non-GNOME-Shell-WMs.-timeli.patch
@@ -0,0 +1,25 @@
+From cae13b0fa9f9367f7a3a30af45e99943b1ca0573 Mon Sep 17 00:00:00 2001
+From: Lubosz Sarnecki <lubosz at gmail.com>
+Date: Fri, 30 May 2014 16:42:34 +0200
+Subject: [PATCH 3/3] work around: fix crash in non GNOME Shell WMs. timeline
+ is distached.
+
+Bug-Upstream: https://bugzilla.gnome.org/show_bug.cgi?id=727851
+
+Index: b/pitivi/check.py
+===================================================================
+--- a/pitivi/check.py
++++ b/pitivi/check.py
+@@ -251,10 +251,10 @@
+     """
+     from gi.repository import Gdk
+     Gdk.init([])
+-    from gi.repository import GtkClutter
+-    GtkClutter.init([])
+     from gi.repository import ClutterGst
+     ClutterGst.init([])
++    from gi.repository import GtkClutter
++    GtkClutter.init([])
+ 
+     import gi
+     if not gi.version_info >= (3, 11):
diff --git a/debian/patches/0002-project-Fix-setting-of-restriction-caps-values.patch b/debian/patches/0002-project-Fix-setting-of-restriction-caps-values.patch
new file mode 100644
index 0000000..e515cc0
--- /dev/null
+++ b/debian/patches/0002-project-Fix-setting-of-restriction-caps-values.patch
@@ -0,0 +1,46 @@
+From 9e39466d93e6693edbb25fcf917a8e29d84712f3 Mon Sep 17 00:00:00 2001
+From: Thibault Saunier <tsaunier at gnome.org>
+Date: Wed, 24 Sep 2014 16:11:51 +0200
+Subject: [PATCH] project: Fix setting of restriction caps values
+
+---
+ pitivi/project.py | 11 ++++++-----
+ 1 file changed, 6 insertions(+), 5 deletions(-)
+
+diff --git a/pitivi/project.py b/pitivi/project.py
+index 46d70e7..c554927 100644
+--- a/pitivi/project.py
++++ b/pitivi/project.py
+@@ -709,9 +709,10 @@ class Project(Loggable, GES.Project):
+     def set_video_restriction_value(self, name, value):
+         if self.video_profile.get_restriction()[0][name] != value and value:
+             restriction = self.video_profile.get_restriction().copy_nth(0)
+-            restriction[0][name] = value
++            restriction.set_value(name, value)
+             self.video_profile.set_restriction(restriction)
+             return True
++
+         return False
+ 
+     def set_audio_restriction_value(self, name, value):
+@@ -1086,13 +1087,13 @@ class Project(Loggable, GES.Project):
+             self.timeline.append_layer()
+ 
+     def _ensureVideoRestrictions(self):
+-        if not self.videowidth:
++        if self.videowidth is None:
+             self.videowidth = 720
+-        if not self.videoheight:
++        if self.videoheight is None:
+             self.videoheight = 576
+-        if not self.videorate:
++        if self.videorate is None:
+             self.videorate = Gst.Fraction(25, 1)
+-        if not self.videopar:
++        if self.videopar is None:
+             self.videopar = Gst.Fraction(1, 1)
+ 
+     def _ensureAudioRestrictions(self):
+-- 
+2.1.0
+
diff --git a/debian/patches/0005-pitivi-Start-using-glimagesink-as-default-sink.patch b/debian/patches/0005-pitivi-Start-using-glimagesink-as-default-sink.patch
new file mode 100644
index 0000000..3df7bab
--- /dev/null
+++ b/debian/patches/0005-pitivi-Start-using-glimagesink-as-default-sink.patch
@@ -0,0 +1,116 @@
+From ddefc36f4ebad8a87190fba091a525943e93b896 Mon Sep 17 00:00:00 2001
+From: Mathieu Duponchelle <mathieu.duponchelle at opencreed.com>
+Date: Tue, 9 Sep 2014 21:19:03 +0200
+Subject: [PATCH] pitivi: Start using glimagesink as default sink
+
+---
+ pitivi/utils/pipeline.py | 18 ++++++------------
+ pitivi/viewer.py         | 24 +++++++++++++-----------
+ 2 files changed, 19 insertions(+), 23 deletions(-)
+
+Index: b/pitivi/utils/pipeline.py
+===================================================================
+--- a/pitivi/utils/pipeline.py
++++ b/pitivi/utils/pipeline.py
+@@ -176,17 +176,11 @@
+ 
+         # Create a cluttersink element used for display. Subclasses must connect
+         # it to self._pipeline themselves
+-        self._clutter_sink = Gst.ElementFactory.make("cluttersink", None)
++        self._opengl_sink = Gst.ElementFactory.make("glimagesink", None)
+         if isinstance(pipeline, GES.Pipeline):
+-            self._pipeline.preview_set_video_sink(self._clutter_sink)
++            self._pipeline.preview_set_video_sink(self._opengl_sink)
+         else:
+-            self._pipeline.set_property("video_sink", self._clutter_sink)
+-
+-    def connectWithViewer(self, viewer):
+-        """
+-        Connect the specified ViewerWidget so this pipeline can be displayed.
+-        """
+-        self._clutter_sink.props.texture = viewer.texture
++            self._pipeline.set_property("video_sink", self._opengl_sink)
+ 
+     def release(self):
+         """
+@@ -276,7 +270,7 @@
+         else:
+             self.play()
+ 
+-    #{ Position and Seeking methods
++    # { Position and Seeking methods
+ 
+     def getPosition(self, format=Gst.Format.TIME):
+         """
+@@ -420,8 +414,8 @@
+         seekvalue = max(0, min(self.getPosition() + time, self.getDuration()))
+         self.simple_seek(seekvalue)
+ 
+-    #}
+-    ## Private methods
++    # }
++    # Private methods
+ 
+     def _busMessageCb(self, unused_bus, message):
+         if message.type == Gst.MessageType.EOS:
+Index: b/pitivi/viewer.py
+===================================================================
+--- a/pitivi/viewer.py
++++ b/pitivi/viewer.py
+@@ -39,6 +39,8 @@
+ from pitivi.utils.ui import SPACING, hex_to_rgb
+ from pitivi.utils.widgets import TimeWidget
+ 
++import platform
++
+ GlobalSettings.addConfigSection("viewer")
+ GlobalSettings.addConfigOption("viewerDocked", section="viewer",
+     key="docked",
+@@ -130,6 +132,8 @@
+         self.pipeline.connect("position", self._positionCb)
+         self.pipeline.connect("duration-changed", self._durationChangedCb)
+ 
++        self.sink = pipeline._opengl_sink
++
+         self._switch_output_window()
+         self._setUiActive()
+ 
+@@ -459,7 +463,13 @@
+ 
+         if self.target.get_realized():
+             self.debug("Connecting the pipeline to the viewer's texture")
+-            self.pipeline.connectWithViewer(self.target)
++            if platform.system() == 'Windows':
++                xid = self.target.drawing_area.get_window().get_handle()
++            else:
++                xid = self.target.drawing_area.get_window().get_xid()
++
++            self.sink.set_window_handle(xid)
++            self.sink.expose()
+         else:
+             # Show the widget and wait for the realized callback
+             self.log("Target is not realized, showing the widget")
+@@ -796,7 +806,7 @@
+                                  ratio=4.0 / 3.0, obey_child=False)
+         Loggable.__init__(self)
+ 
+-        self.drawing_area = GtkClutter.Embed()
++        self.drawing_area = Gtk.DrawingArea()
+         self.drawing_area.set_double_buffered(False)
+         # We keep the ViewerWidget hidden initially, or the desktop wallpaper
+         # would show through the non-double-buffered widget!
+@@ -804,14 +814,6 @@
+             self.drawing_area.connect("realize", realizedCb, self)
+         self.add(self.drawing_area)
+ 
+-        layout_manager = Clutter.BinLayout(x_align=Clutter.BinAlignment.FILL, y_align=Clutter.BinAlignment.FILL)
+-        self.drawing_area.get_stage().set_layout_manager(layout_manager)
+-        self.texture = Clutter.Texture()
+-        # This is a trick to make the viewer appear darker at the start.
+-        self.texture.set_from_rgb_data(data=[0] * 3, has_alpha=False,
+-                width=1, height=1, rowstride=3, bpp=3,
+-                flags=Clutter.TextureFlags.NONE)
+-        self.drawing_area.get_stage().add_child(self.texture)
+         self.drawing_area.show()
+ 
+         self.seeker = Seeker()
diff --git a/debian/patches/0006-pipeline-Reimplement-connectWithViewer-for-glimagesi.patch b/debian/patches/0006-pipeline-Reimplement-connectWithViewer-for-glimagesi.patch
new file mode 100644
index 0000000..f9ec6b6
--- /dev/null
+++ b/debian/patches/0006-pipeline-Reimplement-connectWithViewer-for-glimagesi.patch
@@ -0,0 +1,79 @@
+From 13809971498fa11c3aceba8005e97c56a199f457 Mon Sep 17 00:00:00 2001
+From: Thibault Saunier <tsaunier at gnome.org>
+Date: Wed, 24 Sep 2014 16:12:43 +0200
+Subject: [PATCH] pipeline: Reimplement connectWithViewer for glimagesink
+
+---
+ pitivi/mediafilespreviewer.py |  7 +++----
+ pitivi/utils/pipeline.py      | 11 +++++++++++
+ 2 files changed, 14 insertions(+), 4 deletions(-)
+
+diff --git a/pitivi/mediafilespreviewer.py b/pitivi/mediafilespreviewer.py
+index d7105c6..fc55ea5 100644
+--- a/pitivi/mediafilespreviewer.py
++++ b/pitivi/mediafilespreviewer.py
+@@ -89,13 +89,13 @@ class PreviewWidget(Gtk.Grid, Loggable):
+ 
+         self.discoverer = GstPbutils.Discoverer.new(Gst.SECOND)
+ 
+-        #playbin for play pics
++        # playbin for play pics
+         self.player = AssetPipeline(clip=None, name="preview-player")
+         self.player.connect('eos', self._pipelineEosCb)
+         self.player.connect('error', self._pipelineErrorCb)
+         self.player._bus.connect('message::tag', self._tag_found_cb)
+ 
+-        #some global variables for preview handling
++        # some global variables for preview handling
+         self.is_playing = False
+         self.original_dims = (PREVIEW_WIDTH, PREVIEW_HEIGHT)
+         self.countinuous_seek = False
+@@ -125,7 +125,7 @@ class PreviewWidget(Gtk.Grid, Loggable):
+         self.play_button.connect("clicked", self._on_start_stop_clicked_cb)
+         self.bbox.pack_start(self.play_button, False, False, 0)
+ 
+-        #Scale for position handling
++        # Scale for position handling
+         self.pos_adj = Gtk.Adjustment()
+         self.seeker = Gtk.Scale.new(Gtk.Orientation.HORIZONTAL, self.pos_adj)
+         self.seeker.connect('button-press-event', self._on_seeker_press_cb)
+@@ -246,7 +246,6 @@ class PreviewWidget(Gtk.Grid, Loggable):
+                 self.preview_video.set_size_request(w, h)
+                 self.preview_video.setDisplayAspectRatio(float(video_width) / video_height)
+                 self.preview_video.show()
+-                self.player.connectWithViewer(self.preview_video)
+                 self.bbox.show()
+                 self.play_button.show()
+                 self.seeker.show()
+diff --git a/pitivi/utils/pipeline.py b/pitivi/utils/pipeline.py
+index 93255f9..77c625c 100644
+--- a/pitivi/utils/pipeline.py
++++ b/pitivi/utils/pipeline.py
+@@ -24,6 +24,9 @@
+ """
+ High-level pipelines
+ """
++
++import platform
++
+ from pitivi.utils.loggable import Loggable
+ from pitivi.utils.signal import Signallable
+ from pitivi.utils.misc import format_ns
+@@ -517,6 +520,14 @@ class AssetPipeline(SimplePipeline):
+     def setClipUri(self, uri):
+         self._pipeline.set_property("uri", uri)
+ 
++    def connectWithViewer(self, widget):
++        if platform.system() == 'Windows':
++            handle = widget.drawing_area.get_window().get_handle()
++        else:
++            handle = widget.drawing_area.get_window().get_xid()
++
++        self._opengl_sink.set_window_handle(handle)
++
+ 
+ class Pipeline(GES.Pipeline, SimplePipeline):
+     """
+-- 
+2.1.0
+
diff --git a/debian/patches/02_elements_Dont_use_path_round_rectangle.patch b/debian/patches/02_elements_Dont_use_path_round_rectangle.patch
new file mode 100644
index 0000000..a3a4adc
--- /dev/null
+++ b/debian/patches/02_elements_Dont_use_path_round_rectangle.patch
@@ -0,0 +1,47 @@
+From c4c11dedd3cc966f8fa75fad080aff3abf1cf3f6 Mon Sep 17 00:00:00 2001
+From: Mathieu Duponchelle <mathieu.duponchelle at opencreed.com>
+Date: Wed, 2 Apr 2014 18:09:14 +0200
+Subject: elements: Don't use path_round_rectangle.
+
+We didn't actually make rounded rectangles anyway.
+
+This class will need to go altogether at some point.
+
+diff --git a/pitivi/timeline/elements.py b/pitivi/timeline/elements.py
+index 955cba8..189ef0a 100644
+--- a/pitivi/timeline/elements.py
++++ b/pitivi/timeline/elements.py
+@@ -86,12 +86,10 @@ class RoundedRectangle(Clutter.Actor):
+         if self._border_color:
+             # draw the rectangle for the border which is the same size as the
+             # object
+-            Cogl.path_round_rectangle(0, 0, self.props.width, self.props.height,
+-                                      self._arc, self._step)
+-            Cogl.path_round_rectangle(self._border_width, self._border_width,
+-                                      self.props.width - self._border_width,
+-                                      self.props.height - self._border_width,
+-                                      self._arc, self._step)
++            Cogl.path_rectangle(0, 0, self.props.width, self.props.height)
++            Cogl.path_rectangle(self._border_width, self._border_width,
++                                self.props.width - self._border_width,
++                                self.props.height - self._border_width)
+             Cogl.path_set_fill_rule(Cogl.PathFillRule.EVEN_ODD)
+             Cogl.path_close()
+ 
+@@ -102,10 +100,9 @@ class RoundedRectangle(Clutter.Actor):
+         if self._color:
+             # draw the content with is the same size minus the width of the border
+             # finish the clip
+-            Cogl.path_round_rectangle(self._border_width, self._border_width,
+-                                      self.props.width - self._border_width,
+-                                      self.props.height - self._border_width,
+-                                      self._arc, self._step)
++            Cogl.path_rectangle(self._border_width, self._border_width,
++                                self.props.width - self._border_width,
++                                self.props.height - self._border_width)
+             Cogl.path_close()
+ 
+             # set the color of the filled area
+-- 
+cgit v0.10.1
+
diff --git a/debian/patches/03_elements_Dont_use_Cogl_anymore.patch b/debian/patches/03_elements_Dont_use_Cogl_anymore.patch
new file mode 100644
index 0000000..5445a46
--- /dev/null
+++ b/debian/patches/03_elements_Dont_use_Cogl_anymore.patch
@@ -0,0 +1,216 @@
+From af65ef5317e2b7a0492ef165f2686c47b7011279 Mon Sep 17 00:00:00 2001
+From: Mathieu Duponchelle <mathieu.duponchelle at opencreed.com>
+Date: Wed, 2 Apr 2014 20:56:08 +0200
+Subject: elements: Don't use Cogl anymore.
+
+
+--- a/pitivi/timeline/elements.py
++++ b/pitivi/timeline/elements.py
+@@ -33,12 +33,12 @@ from datetime import datetime
+ 
+ import weakref
+ 
+-from gi.repository import Clutter, Gtk, GtkClutter, Cogl, GES, Gdk, Gst, GstController
++from gi.repository import Clutter, Gtk, GtkClutter, GES, Gdk, Gst, GstController
+ from pitivi.utils.timeline import Zoomable, EditingContext, SELECT, UNSELECT, SELECT_ADD, Selected
+ from previewers import AudioPreviewer, VideoPreviewer
+ 
+ import pitivi.configure as configure
+-from pitivi.utils.ui import EXPANDED_SIZE, SPACING, KEYFRAME_SIZE, CONTROL_WIDTH, create_cogl_color
++from pitivi.utils.ui import EXPANDED_SIZE, SPACING, KEYFRAME_SIZE, CONTROL_WIDTH
+ 
+ # Colors for keyframes and clips (RGBA)
+ KEYFRAME_LINE_COLOR = (237, 212, 0, 255)  # "Tango" yellow
+@@ -46,10 +46,10 @@ KEYFRAME_NORMAL_COLOR = Clutter.Color.ne
+ KEYFRAME_SELECTED_COLOR = Clutter.Color.new(200, 200, 200, 200)
+ CLIP_SELECTED_OVERLAY_COLOR = Clutter.Color.new(60, 60, 60, 100)
+ GHOST_CLIP_COLOR = Clutter.Color.new(255, 255, 255, 50)
+-TRANSITION_COLOR = create_cogl_color(35, 85, 125, 125)  # light blue
++TRANSITION_COLOR = Clutter.Color.new(35, 85, 125, 125)  # light blue
+ 
+-BORDER_NORMAL_COLOR = create_cogl_color(100, 100, 100, 255)
+-BORDER_SELECTED_COLOR = create_cogl_color(200, 200, 10, 255)
++BORDER_NORMAL_COLOR = Clutter.Color.new(100, 100, 100, 255)
++BORDER_SELECTED_COLOR = Clutter.Color.new(200, 200, 10, 255)
+ 
+ NORMAL_CURSOR = Gdk.Cursor.new(Gdk.CursorType.LEFT_PTR)
+ DRAG_CURSOR = Gdk.Cursor.new(Gdk.CursorType.HAND1)
+@@ -57,79 +57,6 @@ DRAG_LEFT_HANDLEBAR_CURSOR = Gdk.Cursor.
+ DRAG_RIGHT_HANDLEBAR_CURSOR = Gdk.Cursor.new(Gdk.CursorType.RIGHT_SIDE)
+ 
+ 
+-class RoundedRectangle(Clutter.Actor):
+-    """
+-    Custom actor used to draw a rectangle that can have rounded corners
+-    """
+-    __gtype_name__ = 'RoundedRectangle'
+-
+-    def __init__(self, width, height, arc, step,
+-                 color=None, border_color=None, border_width=0):
+-        """
+-        Creates a new rounded rectangle
+-        """
+-        Clutter.Actor.__init__(self)
+-
+-        self.props.width = width
+-        self.props.height = height
+-
+-        self._arc = arc
+-        self._step = step
+-        self._border_width = border_width
+-        self._color = color
+-        self._border_color = border_color
+-
+-    def do_paint(self):
+-        # Set a rectangle for the clipping
+-        Cogl.clip_push_rectangle(0, 0, self.props.width, self.props.height)
+-
+-        if self._border_color:
+-            # draw the rectangle for the border which is the same size as the
+-            # object
+-            Cogl.path_rectangle(0, 0, self.props.width, self.props.height)
+-            Cogl.path_rectangle(self._border_width, self._border_width,
+-                                self.props.width - self._border_width,
+-                                self.props.height - self._border_width)
+-            Cogl.path_set_fill_rule(Cogl.PathFillRule.EVEN_ODD)
+-            Cogl.path_close()
+-
+-            # set color to border color
+-            Cogl.set_source_color(self._border_color)
+-            Cogl.path_fill()
+-
+-        if self._color:
+-            # draw the content with is the same size minus the width of the border
+-            # finish the clip
+-            Cogl.path_rectangle(self._border_width, self._border_width,
+-                                self.props.width - self._border_width,
+-                                self.props.height - self._border_width)
+-            Cogl.path_close()
+-
+-            # set the color of the filled area
+-            Cogl.set_source_color(self._color)
+-            Cogl.path_fill()
+-
+-        Cogl.clip_pop()
+-
+-    def get_color(self):
+-        return self._color
+-
+-    def set_color(self, color):
+-        self._color = color
+-        self.queue_redraw()
+-
+-    def get_border_width(self):
+-        return self._border_width
+-
+-    def set_border_width(self, width):
+-        self._border_width = width
+-        self.queue_redraw()
+-
+-    def set_border_color(self, color):
+-        self._border_color = color
+-        self.queue_redraw()
+-
+-
+ class Ghostclip(Clutter.Actor):
+     """
+     The concept of a ghostclip is to represent future actions without
+@@ -343,7 +270,7 @@ class TimelineElement(Clutter.Actor, Zoo
+         size = self.bElement.get_duration()
+ 
+         self.background = self._createBackground()
+-        self.background.set_position(0, 0)
++        self.background.set_position(1, 1)
+         self.add_child(self.background)
+ 
+         self.preview = self._createPreview()
+@@ -352,6 +279,8 @@ class TimelineElement(Clutter.Actor, Zoo
+         self.border = self._createBorder()
+         self.add_child(self.border)
+ 
++        self.set_child_below_sibling(self.border, self.background)
++
+         self.marquee = self._createMarquee()
+         self.add_child(self.marquee)
+ 
+@@ -386,13 +315,13 @@ class TimelineElement(Clutter.Actor, Zoo
+                 self.rightHandle.set_easing_duration(600)
+ 
+         self.marquee.set_size(width, height)
+-        self.background.props.width = width
+-        self.background.props.height = height
++        self.background.props.width = width - 2
++        self.background.props.height = height - 2
+         self.border.props.width = width
+         self.border.props.height = height
+         self.props.width = width
+         self.props.height = height
+-        self.preview.set_size(width, height)
++        self.preview.set_size(width - 2, height - 2)
+         if self.rightHandle:
+             self.rightHandle.set_position(width - self.rightHandle.props.width, 0)
+ 
+@@ -576,10 +505,9 @@ class TimelineElement(Clutter.Actor, Zoo
+         pass
+ 
+     def _createBorder(self):
+-        border = RoundedRectangle(0, 0, 0, 0)
++        border = Clutter.Actor()
+         border.bElement = self.bElement
+-        border.set_border_color(BORDER_NORMAL_COLOR)
+-        border.set_border_width(1)
++        border.set_background_color(BORDER_NORMAL_COLOR)
+         border.set_position(0, 0)
+         return border
+ 
+@@ -660,7 +588,7 @@ class TimelineElement(Clutter.Actor, Zoo
+             self.hideKeyframes()
+         self.marquee.props.visible = isSelected
+         color = BORDER_SELECTED_COLOR if isSelected else BORDER_NORMAL_COLOR
+-        self.border.set_border_color(color)
++        self.border.set_background_color(color)
+ 
+ 
+ class Gradient(Clutter.Actor):
+@@ -1145,11 +1073,15 @@ class TransitionElement(TimelineElement)
+         self.set_reactive(True)
+ 
+     def _createBackground(self):
+-        background = RoundedRectangle(0, 0, 0, 0)
+-        background.set_color(TRANSITION_COLOR)
+-        background.set_border_width(1)
++        background = Clutter.Actor()
++        background.set_background_color(TRANSITION_COLOR)
+         return background
+ 
++    def _createBorder(self):
++        border = Clutter.Actor()
++        border.set_background_color(Clutter.Color.new(0, 0, 0, 0))
++        return border
++
+     def _selectedChangedCb(self, selected, isSelected):
+         TimelineElement._selectedChangedCb(self, selected, isSelected)
+ 
+--- a/pitivi/utils/ui.py
++++ b/pitivi/utils/ui.py
+@@ -35,7 +35,6 @@ import urllib
+ from gettext import ngettext, gettext as _
+ 
+ from gi.repository import Clutter
+-from gi.repository import Cogl
+ from gi.repository import GLib
+ from gi.repository import GES
+ from gi.repository import Gdk
+@@ -199,12 +198,6 @@ def hex_to_rgb(value):
+     return tuple(float(int(value[i:i + 2], 16)) / 255.0 for i in range(0, 6, 2))
+ 
+ 
+-def create_cogl_color(red, green, blue, alpha):
+-    color = Cogl.Color()
+-    color.init_from_4ub(red, green, blue, alpha)
+-    return color
+-
+-
+ def set_cairo_color(context, color):
+     if type(color) is Clutter.Color:
+         color = (color.red, color.green, color.blue)
diff --git a/debian/patches/series b/debian/patches/series
index edc48b7..8979333 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1 +1,7 @@
 01_disable-devel-mode.patch
+02_elements_Dont_use_path_round_rectangle.patch
+03_elements_Dont_use_Cogl_anymore.patch
+0001-work-around-fix-crash-in-non-GNOME-Shell-WMs.-timeli.patch
+0002-project-Fix-setting-of-restriction-caps-values.patch
+0005-pitivi-Start-using-glimagesink-as-default-sink.patch
+0006-pipeline-Reimplement-connectWithViewer-for-glimagesi.patch

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-gstreamer/pitivi.git



More information about the Pkg-gstreamer-commits mailing list