[meego-commits] 9135: Changes to Trunk:Netbook/banshee-1

Han Dai no_reply at build.meego.com
Tue Nov 2 03:16:08 UTC 2010


Hi,
I have made the following changes to banshee-1 in project Trunk:Netbook. Please review and accept ASAP.

Thank You,
Han Dai

[This message was auto-generated]

---

Request #9135:

  submit:   home:daihan:branches:Trunk:Netbook/banshee-1(r2)(cleanup) -> Trunk:Netbook/banshee-1


Message:
    Add patches to fix BMC#5591  BMC#6228 BMC#7394 BMC#8383

State:   new          2010-11-01T20:16:07 daihan
Comment: None



changes files:
--------------
--- banshee-1.changes
+++ banshee-1.changes
@@ -1,0 +2,16 @@
+Tue Nov  2 10:45:47 UTC 2010 - ting.z.zhou at intel.com
+
+- Added start-as-meego-client-bmc7394.patch, fix banshee failed to 
+  start with option "--show-import-media" (bmc#7394)
+
+- Replaced separate-video-rpgain-mutexes-bmc1115.patch with 
+  move-video-mutex-in-func-bmc5591.patch, which combines the fix
+  for bmc#1115 and bmc#5591 (bmc#1115, bmc#5591)
+
+- Added search-unknown-artist-album-bmc6228.patch, fixing
+  crash when searching unknown artist or album (bmc#6228)
+
+- Added import-video-playlist-bmc8383.patch, fixing video playlist 
+  can not be imported (bmc#8383)
+
+-------------------------------------------------------------------

old:
----
  separate-video-rpgain-mutexes-bmc1115.patch

new:
----
  import-video-playlist-bmc8383.patch
  move-video-mutex-in-func-bmc5591.patch
  search-unknown-artist-album-bmc6228.patch
  start-as-meego-client-bmc7394.patch

spec files:
-----------
--- banshee-1.spec
+++ banshee-1.spec
@@ -1,6 +1,6 @@
 # 
 # Do NOT Edit the Auto-generated Part!
-# Generated by: spectacle version 0.19~pre
+# Generated by: spectacle version 0.20
 # 
 # >> macros
 # << macros
@@ -16,12 +16,15 @@
 Source100:  banshee-1.yaml
 Patch0:     enable-library-watcher-by-default.patch
 Patch1:     meego-aware-context-menu-positions-bmc869.patch
-Patch2:     separate-video-rpgain-mutexes-bmc1115.patch
+Patch2:     move-video-mutex-in-func-bmc5591.patch
 Patch3:     increase-pipeline-ready-timeout-bmc193.patch
 Patch4:     play-next-track-after-unsupported-codec-bmc802.patch
 Patch5:     close-player-engine-on-fsq-clear-bmc2684.patch
 Patch6:     moblin-to-meego-rename.patch
 Patch7:     media-as-meego-icon-name.patch
+Patch8:     start-as-meego-client-bmc7394.patch
+Patch9:     import-video-playlist-bmc8383.patch
+Patch10:    search-unknown-artist-album-bmc6228.patch
 Requires:   %{name}-core = %{version}
 Requires:   %{name}-backend-platform-unix = %{version}
 Requires:   gst-plugins-good
@@ -194,7 +197,7 @@
 %patch0 -p1
 # meego-aware-context-menu-positions-bmc869.patch
 %patch1 -p1
-# separate-video-rpgain-mutexes-bmc1115.patch
+# move-video-mutex-in-func-bmc5591.patch
 %patch2 -p1
 # increase-pipeline-ready-timeout-bmc193.patch
 %patch3 -p1
@@ -206,6 +209,12 @@
 %patch6 -p1
 # media-as-meego-icon-name.patch
 %patch7 -p1
+# start-as-meego-client-bmc7394.patch
+%patch8 -p1
+# import-video-playlist-bmc8383.patch
+%patch9 -p1
+# search-unknown-artist-album-bmc6228.patch
+%patch10 -p1
 # >> setup
 # << setup
 

other changes:
--------------

++++++ banshee-1.yaml
--- banshee-1.yaml
+++ banshee-1.yaml
@@ -27,7 +27,7 @@
     # MEEGO SPECIFIC
     - meego-aware-context-menu-positions-bmc869.patch
     # UPSTREAM (master)
-    - separate-video-rpgain-mutexes-bmc1115.patch
+    - move-video-mutex-in-func-bmc5591.patch
     # MEEGO SPECIFIC (EVALUATE UPSTREAM)
     - increase-pipeline-ready-timeout-bmc193.patch
     # MEEGO SPECIFIC (EVALUATE UPSTREAM)
@@ -38,6 +38,12 @@
     - moblin-to-meego-rename.patch
     # INTEL MEEGO SPECIFIC
     - media-as-meego-icon-name.patch
+    # UPSTREAM (master)
+    - start-as-meego-client-bmc7394.patch
+    # UPSTREAM (master)
+    - import-video-playlist-bmc8383.patch
+    # MEEGO SPECIFIC (EVALUATE UPSTREAM)
+    - search-unknown-artist-album-bmc6228.patch
 
 Requires:
     - "%{name}-core = %{version}"

++++++ import-video-playlist-bmc8383.patch (new)
--- import-video-playlist-bmc8383.patch
+++ import-video-playlist-bmc8383.patch
+diff -Nur old/src/Core/Banshee.Services/Banshee.Playlist/PlaylistFileUtil.cs new/src/Core/Banshee.Services/Banshee.Playlist/PlaylistFileUtil.cs
+--- old/src/Core/Banshee.Services/Banshee.Playlist/PlaylistFileUtil.cs	2009-11-23 00:19:34.000000000 +0800
++++ new/src/Core/Banshee.Services/Banshee.Playlist/PlaylistFileUtil.cs	2010-09-15 16:22:53.000000000 +0800
+@@ -15,6 +15,7 @@
+ using Banshee.Playlists.Formats;
+ using Banshee.Collection;
+ using Banshee.Collection.Database;
++using Banshee.Streaming;
+ 
+ namespace Banshee.Playlist
+ {
+@@ -179,7 +180,7 @@
+ 
+         public static void ImportPlaylistToLibrary (string path)
+         {
+-            ImportPlaylistToLibrary (path, ServiceManager.SourceManager.MusicLibrary, null);
++            ImportPlaylistToLibrary (path, null, null);
+         }
+ 
+         public static void ImportPlaylistToLibrary (string path, PrimarySource source, DatabaseImportManager importer)
+@@ -198,10 +199,34 @@
+                         uris.Add (((Uri)element["uri"]).LocalPath);
+                     }
+ 
+-                    ImportPlaylistWorker worker = new ImportPlaylistWorker (
+-                        parser.Title,
+-                        uris.ToArray (), source, importer);
+-                    worker.Import ();
++                    if (source == null) {
++                        if (uris.Count > 0) {
++                            // Get the media attribute of the 1st Uri in Playlist
++                            // and then determine whether the playlist belongs to Video or Music
++                            SafeUri uri1 = new SafeUri (uris[0]);
++                            var track = new TrackInfo ();
++                            StreamTagger.TrackInfoMerge (track, uri1);
++
++                            if (track.HasAttribute (TrackMediaAttributes.VideoStream)) {
++                                source = ServiceManager.SourceManager.VideoLibrary;
++                            } else {
++                                source = ServiceManager.SourceManager.MusicLibrary;
++                            }
++                        }
++                    }
++
++                    // Give source a fallback value - MusicLibrary when it's null
++                    if (source == null) {
++                        source = ServiceManager.SourceManager.MusicLibrary;
++                    }
++
++                    // Only import an non-empty playlist
++                    if (uris.Count > 0) {
++                        ImportPlaylistWorker worker = new ImportPlaylistWorker (
++                            parser.Title,
++                            uris.ToArray (), source, importer);
++                        worker.Import ();
++                    }
+                 }
+             } catch (Exception e) {
+                 Hyena.Log.Exception (e);

++++++ move-video-mutex-in-func-bmc5591.patch (new)
--- move-video-mutex-in-func-bmc5591.patch
+++ move-video-mutex-in-func-bmc5591.patch
+diff -Nur old/libbanshee/banshee-player.c new/libbanshee/banshee-player.c
+--- old/libbanshee/banshee-player.c	2010-06-24 05:06:14.000000000 +0800
++++ new/libbanshee/banshee-player.c	2010-10-13 12:46:21.000000000 +0800
+@@ -57,11 +57,15 @@
+ bp_destroy (BansheePlayer *player)
+ {
+     g_return_if_fail (IS_BANSHEE_PLAYER (player));
+-    
+-    if (player->mutex != NULL) {
+-        g_mutex_free (player->mutex);
++
++    if (player->video_mutex != NULL) {
++        g_mutex_free (player->video_mutex);
+     }
+-    
++
++    if (player->replaygain_mutex != NULL) {
++        g_mutex_free (player->replaygain_mutex);
++    }
++
+     if (player->cdda_device != NULL) {
+         g_free (player->cdda_device);
+     }
+@@ -81,9 +85,10 @@
+ bp_new ()
+ {
+     BansheePlayer *player = g_new0 (BansheePlayer, 1);
+-    
+-    player->mutex = g_mutex_new ();
+-    
++
++    player->video_mutex = g_mutex_new ();
++    player->replaygain_mutex = g_mutex_new ();
++
+     return player;
+ }
+ 
+diff -Nur old/libbanshee/banshee-player-private.h new/libbanshee/banshee-player-private.h
+--- old/libbanshee/banshee-player-private.h	2010-06-24 05:06:14.000000000 +0800
++++ new/libbanshee/banshee-player-private.h	2010-10-12 16:56:17.000000000 +0800
+@@ -143,7 +143,8 @@
+     gint equalizer_status;
+     
+     // Pipeline/Playback State
+-    GMutex *mutex;
++    GMutex *video_mutex;
++    GMutex *replaygain_mutex;
+     GstState target_state;
+     gboolean buffering;
+     gchar *cdda_device;
+diff -Nur old/libbanshee/banshee-player-replaygain.c new/libbanshee/banshee-player-replaygain.c
+--- old/libbanshee/banshee-player-replaygain.c	2010-05-18 01:04:22.000000000 +0800
++++ new/libbanshee/banshee-player-replaygain.c	2010-10-12 21:23:45.000000000 +0800
+@@ -94,12 +94,12 @@
+     // The pad_block_cb can get triggered multiple times, on different threads.
+     // Lock around the link/unlink code, so we don't end up going through here
+     // with inconsistent state.
+-    g_mutex_lock (player->mutex);
++    g_mutex_lock (player->replaygain_mutex);
+ 
+     if ((player->replaygain_enabled && player->rgvolume_in_pipeline) ||
+         (!player->replaygain_enabled && !player->rgvolume_in_pipeline)) {
+         // The pipeline is already in the correct state.  Unblock the pad, and return.
+-        g_mutex_unlock (player->mutex);
++        g_mutex_unlock (player->replaygain_mutex);
+         if (gst_pad_is_blocked (srcPad)) {
+             gst_pad_set_blocked_async (srcPad, FALSE, &pad_block_cb, player);
+         }
+@@ -139,7 +139,7 @@
+     }
+ 
+     // Our state is now consistent
+-    g_mutex_unlock (player->mutex);
++    g_mutex_unlock (player->replaygain_mutex);
+ 
+     if (gst_pad_is_blocked (srcPad)) {
+         gst_pad_set_blocked_async (srcPad, FALSE, &pad_block_cb, player);
+diff -Nur old/libbanshee/banshee-player-video.c new/libbanshee/banshee-player-video.c
+--- old/libbanshee/banshee-player-video.c	2010-05-18 01:04:32.000000000 +0800
++++ new/libbanshee/banshee-player-video.c	2010-10-13 12:54:00.000000000 +0800
+@@ -42,17 +42,19 @@
+     GstElement *video_sink = NULL;
+     GstElement *xoverlay;
+     GstXOverlay *previous_xoverlay;
++    gboolean    found_xoverlay;
+ 
+-    previous_xoverlay = player->xoverlay;
+-    
+     g_object_get (player->playbin, "video-sink", &video_sink, NULL);
+-    
++
++    g_mutex_lock (player->video_mutex);
++    previous_xoverlay = player->xoverlay;
++
+     if (video_sink == NULL) {
+         player->xoverlay = NULL;
+         if (previous_xoverlay != NULL) {
+             gst_object_unref (previous_xoverlay);
+         }
+-
++        g_mutex_unlock (player->video_mutex);
+         return FALSE;
+     }
+     
+@@ -79,8 +81,10 @@
+     }
+ 
+     gst_object_unref (video_sink);
++    found_xoverlay = (player->xoverlay != NULL) ? TRUE : FALSE;
+ 
+-    return player->xoverlay != NULL;
++    g_mutex_unlock (player->video_mutex);
++    return found_xoverlay;
+ }
+ 
+ #endif /* GDK_WINDOWING_X11 || GDK_WINDOWING_WIN32 */
+@@ -91,9 +95,7 @@
+     g_return_if_fail (IS_BANSHEE_PLAYER (player));
+ 
+     #if defined(GDK_WINDOWING_X11) || defined(GDK_WINDOWING_WIN32)
+-    g_mutex_lock (player->mutex);
+     bp_video_find_xoverlay (player);
+-    g_mutex_unlock (player->mutex);    
+     #endif
+ }
+ 
+@@ -110,9 +112,7 @@
+         return;
+     }
+ 
+-    g_mutex_lock (player->mutex);
+     found_xoverlay = bp_video_find_xoverlay (player);
+-    g_mutex_unlock (player->mutex);
+ 
+     if (found_xoverlay) {
+         gst_x_overlay_set_xwindow_id (player->xoverlay, player->video_window_xid);
+@@ -318,16 +318,12 @@
+         gst_x_overlay_expose (player->xoverlay);
+         return;
+     }
+-   
+-    g_mutex_lock (player->mutex);
+-   
++
+     if (player->xoverlay == NULL && !bp_video_find_xoverlay (player)) {
+-        g_mutex_unlock (player->mutex);
+         return;
+     }
+     
+     gst_object_ref (player->xoverlay);
+-    g_mutex_unlock (player->mutex);
+ 
+     gst_x_overlay_set_xwindow_id (player->xoverlay, player->video_window_xid);
+     gst_x_overlay_expose (player->xoverlay);

++++++ search-unknown-artist-album-bmc6228.patch (new)
--- search-unknown-artist-album-bmc6228.patch
+++ search-unknown-artist-album-bmc6228.patch
+diff -Nur old/src/Core/Banshee.Widgets/Banshee.Widgets/SearchEntry.cs new/src/Core/Banshee.Widgets/Banshee.Widgets/SearchEntry.cs
+--- old/src/Core/Banshee.Widgets/Banshee.Widgets/SearchEntry.cs	2010-04-14 10:35:42.000000000 +0800
++++ new/src/Core/Banshee.Widgets/Banshee.Widgets/SearchEntry.cs	2010-08-30 09:24:14.000000000 +0800
+@@ -384,7 +384,7 @@
+ 
+         public string Query {
+             get { return entry.Text.Trim(); }
+-            set { entry.Text = value.Trim(); }
++            set { entry.Text = String.IsNullOrEmpty (value) ? String.Empty : value.Trim(); }
+         }
+ 
+         public bool IsQueryAvailable {
+diff -Nur old/src/Hyena/Hyena/Hyena.Query/QueryField.cs new/src/Hyena/Hyena/Hyena.Query/QueryField.cs
+--- old/src/Hyena/Hyena/Hyena.Query/QueryField.cs	2010-07-10 07:06:32.000000000 +0800
++++ new/src/Hyena/Hyena/Hyena.Query/QueryField.cs	2010-08-10 12:50:18.000000000 +0800
+@@ -173,11 +173,14 @@
+ 
+         public static string ToTermString (string alias, string op, string value)
+         {
+-            value = String.Format (
+-                "{1}{0}{1}",
+-                value, value.IndexOf (" ") == -1 ? String.Empty : "\""
+-            );
+-
++            if (!String.IsNullOrEmpty (value)) {
++                value = String.Format (
++                    "{1}{0}{1}",
++                    value, value.IndexOf (" ") == -1 ? String.Empty : "\""
++                );
++            } else {
++                value = String.Empty;
++            }
+             return String.IsNullOrEmpty (alias)
+                 ? value
+                 : String.Format ("{0}{1}{2}", alias, op, value);

++++++ start-as-meego-client-bmc7394.patch (new)
--- start-as-meego-client-bmc7394.patch
+++ start-as-meego-client-bmc7394.patch
+diff -Nur old/src/Clients/Booter/Booter/Entry.cs new/src/Clients/Booter/Booter/Entry.cs
+--- old/src/Clients/Booter/Booter/Entry.cs	2010-06-24 05:06:14.000000000 +0800
++++ new/src/Clients/Booter/Booter/Entry.cs	2010-10-17 16:09:38.000000000 +0800
+@@ -99,7 +99,11 @@
+             } else if (ApplicationContext.CommandLine.Contains ("client")) {
+                 BootClient (Path.GetFileNameWithoutExtension (ApplicationContext.CommandLine["client"]));
+             } else {
+-                BootClient ("Nereid");
++                if (PlatformDetection.IsMeeGo) {
++                    BootClient ("MeeGo");
++                } else {
++                    BootClient ("Nereid");
++                }
+             }
+         }
+ 

++++++ deleted files:
--- separate-video-rpgain-mutexes-bmc1115.patch




More information about the MeeGo-commits mailing list