Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Backports:SLE-15:Update
noise
noise-0.4.2-gst.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File noise-0.4.2-gst.patch of Package noise
diff -ruN noise-0.4.2.orig/src/GStreamer/CoverImport.vala noise-0.4.2/src/GStreamer/CoverImport.vala --- noise-0.4.2.orig/src/GStreamer/CoverImport.vala 2017-11-27 19:02:59.000000000 +0300 +++ noise-0.4.2/src/GStreamer/CoverImport.vala 2018-03-24 05:29:26.386097981 +0300 @@ -35,7 +35,6 @@ construct { try { discoverer = new Gst.PbUtils.Discoverer ((Gst.ClockTime) (DISCOVERER_TIMEOUT * Gst.SECOND)); - discoverer.discovered.connect (import_media); } catch (Error err) { critical ("Could not create Gst discoverer object: %s", err.message); } @@ -43,16 +42,22 @@ public CoverImport (Album album) { this.album = album; - foreach (var media in album.get_media ()) { - discoverer.discover_uri_async (media.uri); - } - } - - public void start () { - discoverer.start (); + new Thread<void*>(null, () => { + lock (this.album) { + foreach (var media in album.get_media ()) { + try { + var info = discoverer.discover_uri (media.uri); + read_info (info); + } catch (Error err) { + critical ("Error while importing cover for %s: %s", album.name, err.message); + } + } + } + return null; + }); } - private void import_media (Gst.PbUtils.DiscovererInfo info, Error err) { + private void read_info (Gst.PbUtils.DiscovererInfo info) { string uri = info.get_uri (); bool gstreamer_discovery_successful = false; switch (info.get_result ()) { @@ -65,7 +70,7 @@ break; case Gst.PbUtils.DiscovererResult.ERROR: - warning ("GStreamer could not import '%s': %s", uri, err.message); + warning ("GStreamer could not import '%s'", uri); break; case Gst.PbUtils.DiscovererResult.TIMEOUT: @@ -102,9 +107,9 @@ if (buffer != null) { pixbuf = get_pixbuf_from_buffer (buffer); if (pixbuf != null) { - album.save_cover_pixbuf (pixbuf); - debug ("Cover imported for '%s'", info.get_uri ()); - discoverer.stop (); + lock (album) { + album.save_cover_pixbuf (pixbuf); + } } } @@ -151,9 +156,9 @@ } catch (Error err) { warning ("Error processing image data: %s", err.message); } - + buffer.unmap (map_info); - + return pix; } } diff -ruN noise-0.4.2.orig/src/GStreamer/GStreamerTagger.vala noise-0.4.2/src/GStreamer/GStreamerTagger.vala --- noise-0.4.2.orig/src/GStreamer/GStreamerTagger.vala 2017-11-27 19:02:59.000000000 +0300 +++ noise-0.4.2/src/GStreamer/GStreamerTagger.vala 2018-03-24 06:15:31.523855164 +0300 @@ -86,7 +86,7 @@ }); } - private void import_media (Gst.PbUtils.DiscovererInfo info, Error err) { + private void import_media (Gst.PbUtils.DiscovererInfo info, Error? err) { if (cancellable.is_cancelled ()) { d.stop (); lock (uri_queue) { diff -ruN noise-0.4.2.orig/src/LocalBackend/LocalLibrary.vala noise-0.4.2/src/LocalBackend/LocalLibrary.vala --- noise-0.4.2.orig/src/LocalBackend/LocalLibrary.vala 2017-11-27 19:02:59.000000000 +0300 +++ noise-0.4.2/src/LocalBackend/LocalLibrary.vala 2018-03-24 05:37:19.803720112 +0300 @@ -740,8 +740,9 @@ } public override void add_medias (Gee.Collection<Media> new_media) { - if (new_media.is_empty) // happens more often than you would think - return; + if (new_media.is_empty) {// happens more often than you would think + return; + } // make a copy of the media list so that it doesn't get modified before // the async code (e.g. updating the smart playlists) is done with it @@ -752,20 +753,19 @@ (Gee.EqualDataFunc<int64?>?)GLib.int64_equal, null); foreach (var m in media) { var local_m = new LocalMedia.from_media (connection, m); - local_media.set (local_m.rowid, local_m); + local_media[local_m.rowid] = local_m; // Append the media into an album. if (local_m.get_album_hashkey () in album_info.keys) { - var album = album_info.get (local_m.get_album_hashkey ()); + var album = album_info[local_m.get_album_hashkey ()]; album.add_media (local_m); } if (local_m.album_info == null) { var album = new Album.from_media (local_m); album.add_media (local_m); - album_info.set (album.get_hashkey (), album); + album_info[album.get_hashkey ()] = album; if (album.cover_icon == null) { - var cover_import = new CoverImport (album); - cover_import.start (); + new CoverImport (album); } } }
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor