From 3f0c4efbf72adbd091565fcc39ad1d09c92be5d0 Mon Sep 17 00:00:00 2001 From: root Date: Thu, 6 Dec 2012 02:18:52 -0800 Subject: Thu Dec 6 02:15:36 PST 2012 --- .../shotwell/0001-Port-to-GStreamer-1.0.patch | 159 +++++++++++++++++++++ community/shotwell/PKGBUILD | 19 ++- 2 files changed, 171 insertions(+), 7 deletions(-) create mode 100644 community/shotwell/0001-Port-to-GStreamer-1.0.patch (limited to 'community/shotwell') diff --git a/community/shotwell/0001-Port-to-GStreamer-1.0.patch b/community/shotwell/0001-Port-to-GStreamer-1.0.patch new file mode 100644 index 000000000..7d7ac742d --- /dev/null +++ b/community/shotwell/0001-Port-to-GStreamer-1.0.patch @@ -0,0 +1,159 @@ +From 9cb0726dd0873e3664f3589aabadea8bb7c8ff37 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Olivier=20Cr=C3=AAte?= +Date: Tue, 25 Sep 2012 18:15:02 -0400 +Subject: [PATCH] Port to GStreamer 1.0 + +--- + Makefile | 21 +++++++++++---------- + src/VideoSupport.vala | 8 ++++---- + src/libshotwell.deps | 5 +++-- + thumbnailer/shotwell-video-thumbnailer.vala | 18 ++++++++---------- + 4 files changed, 26 insertions(+), 26 deletions(-) + +diff --git a/Makefile b/Makefile +index 1bd09e0..06059e3 100644 +--- a/Makefile ++++ b/Makefile +@@ -37,7 +37,7 @@ EXTRAS_SUPPORTED_LANGUAGES=fr de it es pl et sv sk lv pt bg bn nl da zh_CN el ru + LOCAL_LANG_DIR=locale-langpack + SYSTEM_LANG_DIR := $(DESTDIR)$(PREFIX)/share/locale + +-VALAFLAGS := -g --enable-checking --thread --fatal-warnings --enable-deprecated $(USER_VALAFLAGS) ++VALAFLAGS := -g --enable-checking --thread --enable-deprecated $(USER_VALAFLAGS) + ifdef UNITY_SUPPORT + VALAFLAGS := $(VALAFLAGS) --define UNITY_SUPPORT + endif +@@ -293,9 +293,9 @@ EXT_PKGS = \ + gio-unix-2.0 \ + glib-2.0 \ + gmodule-2.0 \ +- gstreamer-0.10 \ +- gstreamer-base-0.10 \ +- gstreamer-pbutils-0.10 \ ++ gstreamer-1.0 \ ++ gstreamer-base-1.0 \ ++ gstreamer-pbutils-1.0 \ + gtk+-3.0 \ + gudev-1.0 \ + libexif \ +@@ -314,8 +314,9 @@ endif + THUMBNAILER_PKGS = \ + gtk+-3.0 \ + gee-1.0 \ +- gstreamer-0.10 \ +- gstreamer-base-0.10 ++ gstreamer-1.0 \ ++ gstreamer-base-1.0 \ ++ gstreamer-app-1.0 \ + + DIRECT_LIBS = + +@@ -325,10 +326,10 @@ EXT_PKG_VERSIONS = \ + gio-unix-2.0 >= 2.20 \ + glib-2.0 >= $(MIN_GLIB_VERSION) \ + gmodule-2.0 >= 2.24.0 \ +- gstreamer-0.10 >= 0.10.28 \ +- gstreamer-base-0.10 >= 0.10.28 \ +- gstreamer-plugins-base-0.10 >= 0.10.32 \ +- gstreamer-pbutils-0.10 >= 0.10.32 \ ++ gstreamer-1.0 >= 1.0.0 \ ++ gstreamer-base-1.0 >= 1.0.0 \ ++ gstreamer-plugins-base-1.0 >= 1.0.0 \ ++ gstreamer-pbutils-1.0 >= 1.0.0 \ + gtk+-3.0 >= 3.0.11 \ + gudev-1.0 >= 145 \ + libexif >= 0.6.16 \ +diff --git a/src/VideoSupport.vala b/src/VideoSupport.vala +index deb45e2..f679bd0 100644 +--- a/src/VideoSupport.vala ++++ b/src/VideoSupport.vala +@@ -163,8 +163,8 @@ public class VideoReader { + file.get_path())); + + try { +- Gst.Discoverer d = new Gst.Discoverer((Gst.ClockTime) (Gst.SECOND * 5)); +- Gst.DiscovererInfo info = d.discover_uri(file.get_uri()); ++ Gst.PbUtils.Discoverer d = new Gst.PbUtils.Discoverer((Gst.ClockTime) (Gst.SECOND * 5)); ++ Gst.PbUtils.DiscovererInfo info = d.discover_uri(file.get_uri()); + + clip_duration = ((double) info.get_duration()) / 1000000000.0; + +@@ -172,7 +172,7 @@ public class VideoReader { + // TODO: Note that TAG_DATE can be changed to TAG_DATE_TIME in the future + // (and the corresponding output struct) in order to implement #2836. + Date? video_date = null; +- if (info.get_tags() != null && info.get_tags().get_date(Gst.TAG_DATE, out video_date)) { ++ if (info.get_tags() != null && info.get_tags().get_date(Gst.Tags.DATE, out video_date)) { + timestamp = new DateTime.local(video_date.get_year(), video_date.get_month(), + video_date.get_day(), 0, 0, 0); + } +@@ -323,7 +323,7 @@ public class Video : VideoSource, Flaggable, Monitorable, Dateable { + Gst.init(ref fake_unowned_args); + + int saved_state = Config.Facade.get_instance().get_video_interpreter_state_cookie(); +- current_state = (int) Gst.Registry.get_default().get_feature_list_cookie(); ++ current_state = (int) Gst.Registry.get().get_feature_list_cookie(); + if (saved_state == Config.Facade.NO_VIDEO_INTERPRETER_STATE) { + message("interpreter state cookie not found; assuming all video thumbnails are out of date"); + interpreter_state_changed = true; +diff --git a/thumbnailer/shotwell-video-thumbnailer.vala b/thumbnailer/shotwell-video-thumbnailer.vala +index a4d7dc2..c12784e 100644 +--- a/thumbnailer/shotwell-video-thumbnailer.vala ++++ b/thumbnailer/shotwell-video-thumbnailer.vala +@@ -10,11 +10,7 @@ + // Shotwell Thumbnailer takes in a video file and returns a thumbnail to stdout. This is + // a replacement for totem-video-thumbnailer + class ShotwellThumbnailer { +- const string caps_string = """video/x-raw-rgb,bpp = (int) 32, depth = (int) 32, +- endianness = (int) BIG_ENDIAN, +- red_mask = (int) 0xFF000000, +- green_mask = (int) 0x00FF0000, +- blue_mask = (int) 0x0000FF00, ++ const string caps_string = """video/x-raw, format=RGBA, + width = (int) [ 1, max ], + height = (int) [ 1, max ], + framerate = (fraction) [ 0, max ]"""; +@@ -36,7 +32,7 @@ class ShotwellThumbnailer { + return 1; + } + +- descr = "filesrc location=\"%s\" ! decodebin2 ! ffmpegcolorspace ! ".printf(args[1]) + ++ descr = "filesrc location=\"%s\" ! decodebin ! videoconvert ! ".printf(args[1]) + + "appsink name=sink caps=\"%s\"".printf(caps_string); + + try { +@@ -69,7 +65,7 @@ class ShotwellThumbnailer { + // by seeking to somewhere else we have a bigger chance of getting something + // more interesting. An optimization would be to detect black images and then + // seek a little more. +- position = (int64) (Gst.Format.PERCENT_MAX * 0.05); ++ position = (int64) (Gst.FORMAT_PERCENT_MAX * 0.05); + pipeline.seek_simple(Gst.Format.PERCENT, Gst.SeekFlags.KEY_UNIT | Gst.SeekFlags.FLUSH , position); + + // Get the preroll buffer from appsink, this block untils appsink really +@@ -86,7 +82,7 @@ class ShotwellThumbnailer { + // that it can only be an rgb buffer. The only thing we have not specified + // on the caps is the height, which is dependant on the pixel-aspect-ratio + // of the source material. +- caps = buffer.get_caps(); ++ caps = (sink as Gst.App.Sink).caps; + if (caps == null) { + stderr.printf("could not get snapshot format\n"); + return 5; +@@ -104,9 +100,11 @@ class ShotwellThumbnailer { + + // Create pixmap from buffer and save, gstreamer video buffers have a stride + // that is rounded up to the nearest multiple of 4. +- pixbuf = new Gdk.Pixbuf.from_data(buffer.data, Gdk.Colorspace.RGB, true, 8, ++ Gst.MapInfo info; ++ buffer.map(out info, Gst.MapFlags.READ); ++ pixbuf = new Gdk.Pixbuf.from_data(info.data, Gdk.Colorspace.RGB, true, 8, + width, height, width * 4, null); +- ++ buffer.unmap(info); + // Save the pixbuf. + pixbuf.save("/dev/stdout", "png"); + } else { +-- +1.7.11.4 + diff --git a/community/shotwell/PKGBUILD b/community/shotwell/PKGBUILD index f156811aa..14a61356c 100644 --- a/community/shotwell/PKGBUILD +++ b/community/shotwell/PKGBUILD @@ -1,30 +1,35 @@ -# $Id: PKGBUILD 79739 2012-11-11 19:39:26Z spupykin $ +# $Id: PKGBUILD 80877 2012-12-05 06:02:30Z bgyorgy $ # Maintainer: Sergej Pupykin # Maintainer : Ionut Biru # Contributor: Joeny Ang pkgname=shotwell pkgver=0.13.1 -pkgrel=3 +pkgrel=4 pkgdesc="A digital photo organizer designed for the GNOME desktop environment" arch=('i686' 'x86_64') url="http://yorba.org/shotwell/" license=('LGPL2.1') -depends=('libgee' 'libunique3' 'libwebkit3' 'libgexiv2' 'libraw' 'rest' +depends=('libgee' 'libwebkit3' 'libgexiv2' 'libraw' 'rest' 'desktop-file-utils' 'dconf' 'hicolor-icon-theme' 'json-glib' - 'gstreamer0.10-base-plugins' 'libgphoto2') -makedepends=('intltool' 'vala>=0.17.2') + 'gst-plugins-base' 'libgphoto2') +makedepends=('intltool' 'vala>=0.17.2' 'libunique3') install=shotwell.install source=("http://yorba.org/download/shotwell/0.13/shotwell-${pkgver}.tar.xz" - "no-libexec.patch") + "no-libexec.patch" + "0001-Port-to-GStreamer-1.0.patch") md5sums=('71eb1346093705ca2b37c12a21994d14' - 'b4124e022c98b4382530e6fbcef965e2') + 'b4124e022c98b4382530e6fbcef965e2' + '86e47eade2b5a49bd6503294751d95f0') build() { cd "${srcdir}/${pkgname}-${pkgver}" patch -p1 <$srcdir/no-libexec.patch + # http://redmine.yorba.org/issues/5548 + patch -p1 <$srcdir/0001-Port-to-GStreamer-1.0.patch + ./configure --prefix=/usr \ --disable-schemas-compile \ --disable-desktop-update \ -- cgit v1.2.3-54-g00ecf