diff options
-rw-r--r-- | multimedia/gnome-mplayer/README | 13 | ||||
-rw-r--r-- | multimedia/gnome-mplayer/gnome-mplayer-fixes.diff | 210 | ||||
-rw-r--r-- | multimedia/gnome-mplayer/gnome-mplayer.SlackBuild | 5 | ||||
-rw-r--r-- | multimedia/gnome-mplayer/gnome-mplayer.info | 2 |
4 files changed, 220 insertions, 10 deletions
diff --git a/multimedia/gnome-mplayer/README b/multimedia/gnome-mplayer/README index 8c994def6b..6cc49667ce 100644 --- a/multimedia/gnome-mplayer/README +++ b/multimedia/gnome-mplayer/README @@ -10,12 +10,9 @@ information contained in the file. Gnome MPlayer has a rich API that is exposed via DBus. Using DBus you can control a single or multiple instances of GNOME MPlayer from a -single command. +single command. Gnome MPlayer is not dependent on any Gnome libraries. +However, the look and feel of the application is based on the Gnome HIG. -Gnome MPlayer is not dependent on any Gnome libraries. However, the look -and feel of the application is based on the Gnome HIG. - -Either dconf or gconf is required for the program to save settings. They -are no longer stored in a .conf file. If you plan to use gconf pass - GCONF=YES -to the script. libmusicbrainz3 is an optional dependency. +Either dconf or gconf is required for the program to save settings; they +are no longer stored in a flat text .conf file. If you plan to use gconf, +pass "GCONF=YES" to the script. libmusicbrainz3 is an optional dependency. diff --git a/multimedia/gnome-mplayer/gnome-mplayer-fixes.diff b/multimedia/gnome-mplayer/gnome-mplayer-fixes.diff new file mode 100644 index 0000000000..fab0415eef --- /dev/null +++ b/multimedia/gnome-mplayer/gnome-mplayer-fixes.diff @@ -0,0 +1,210 @@ +diff -ru gnome-mplayer-1.0.4-orig/ChangeLog gnome-mplayer-1.0.4/ChangeLog +--- gnome-mplayer-1.0.4-orig/ChangeLog 2011-07-01 12:37:25.000000000 -0400 ++++ gnome-mplayer-1.0.4/ChangeLog 2011-07-09 21:02:50.000000000 -0400 +@@ -1,3 +1,6 @@ ++Development ++ Raise event on incomplete QuickTime file, and mark it for retry ++ Fix compile issue with alsa is not being used + 1.0.4 + Remove vdpau failure detection as it doesn't work + Quit mplayer on vdpau restart, mplayer doesn't want to die +diff -ru gnome-mplayer-1.0.4-orig/src/gui.c gnome-mplayer-1.0.4/src/gui.c +--- gnome-mplayer-1.0.4-orig/src/gui.c 2011-06-27 10:59:45.000000000 -0400 ++++ gnome-mplayer-1.0.4/src/gui.c 2011-07-09 21:04:12.000000000 -0400 +@@ -5073,7 +5073,7 @@ + gtk_spin_button_set_value(GTK_SPIN_BUTTON(config_volume), gm_pref_store_get_int(gm_store, VOLUME)); + gm_pref_store_free(gm_store); + gtk_entry_set_width_chars(GTK_ENTRY(config_volume), 6); +- gtk_entry_set_editable(GTK_ENTRY(config_volume), FALSE); ++ gtk_editable_set_editable(GTK_EDITABLE(config_volume), FALSE); + gtk_entry_set_alignment(GTK_ENTRY(config_volume), 1); + gtk_widget_show(config_volume); + i++; +@@ -6052,6 +6052,11 @@ + g_strlcpy(idledata->media_info, text, 1024); + g_thread_create(get_cover_art, metadata, FALSE, NULL); + break; ++ ++ case ATTRIBUTE_RETRY_ON_FULL_CACHE: ++ idledata->retry_on_full_cache = gmtk_media_player_get_attribute_boolean (GMTK_MEDIA_PLAYER(media), ATTRIBUTE_RETRY_ON_FULL_CACHE); ++ break; ++ + default: + if (verbose) { + printf("Unhandled attribute change %i\n", attribute); +diff -ru gnome-mplayer-1.0.4-orig/src/libgmtk/gmtk_media_player.c gnome-mplayer-1.0.4/src/libgmtk/gmtk_media_player.c +--- gnome-mplayer-1.0.4-orig/src/libgmtk/gmtk_media_player.c 2011-06-28 12:19:18.000000000 -0400 ++++ gnome-mplayer-1.0.4/src/libgmtk/gmtk_media_player.c 2011-07-09 21:04:50.000000000 -0400 +@@ -69,15 +69,27 @@ + + if (event && event->event_name != NULL + && (event->player->restart == FALSE || event->event_data_int == ATTRIBUTE_AF_EXPORT_FILENAME)) { +- if (g_strcasecmp(event->event_name, "position-changed") == 0 || +- g_strcasecmp(event->event_name, "cache-percent-changed") == 0) { +- g_signal_emit_by_name(event->player, event->event_name, event->event_data_double); +- } else if (g_strcasecmp(event->event_name, "size_allocate") == 0) { +- g_signal_emit_by_name(event->player, event->event_name, event->event_allocation); +- } else { +- g_signal_emit_by_name(event->player, event->event_name, event->event_data_int); +- } + ++ switch (event->type) { ++ case EVENT_TYPE_INT: ++ g_signal_emit_by_name(event->player, event->event_name, event->event_data_int); ++ break; ++ ++ case EVENT_TYPE_DOUBLE: ++ g_signal_emit_by_name(event->player, event->event_name, event->event_data_double); ++ break; ++ ++ case EVENT_TYPE_BOOLEAN: ++ g_signal_emit_by_name(event->player, event->event_name, event->event_data_boolean); ++ break; ++ ++ case EVENT_TYPE_ALLOCATION: ++ g_signal_emit_by_name(event->player, event->event_name, event->event_allocation); ++ break; ++ ++ default: ++ printf("undefined event %s\n", event->event_name); ++ } + g_free(event->event_name); + } + if (event) +@@ -93,6 +105,7 @@ + + event = g_new0(GmtkMediaPlayerEvent, 1); + event->player = player; ++ event->type = EVENT_TYPE_INT; + event->event_name = g_strdup(name); + event->event_data_int = value; + g_idle_add(signal_event, event); +@@ -104,17 +117,31 @@ + + event = g_new0(GmtkMediaPlayerEvent, 1); + event->player = player; ++ event->type = EVENT_TYPE_DOUBLE; + event->event_name = g_strdup(name); + event->event_data_double = value; + g_idle_add(signal_event, event); + } + ++void create_event_boolean(GmtkMediaPlayer * player, const gchar * name, gboolean value) ++{ ++ GmtkMediaPlayerEvent *event; ++ ++ event = g_new0(GmtkMediaPlayerEvent, 1); ++ event->player = player; ++ event->type = EVENT_TYPE_BOOLEAN; ++ event->event_name = g_strdup(name); ++ event->event_data_boolean = value; ++ g_idle_add(signal_event, event); ++} ++ + void create_event_allocation(GmtkMediaPlayer * player, const gchar * name, GtkAllocation * allocation) + { + GmtkMediaPlayerEvent *event; + + event = g_new0(GmtkMediaPlayerEvent, 1); + event->player = player; ++ event->type = EVENT_TYPE_ALLOCATION; + event->event_name = g_strdup(name); + event->event_allocation = allocation; + g_idle_add(signal_event, event); +@@ -300,6 +327,7 @@ + player->channel_in = NULL; + player->channel_out = NULL; + player->channel_err = NULL; ++ player->retry_on_full_cache = FALSE; + } + + static void gmtk_media_player_dispose(GObject * object) +@@ -993,6 +1021,10 @@ + ret = player->hardware_ac3; + break; + ++ case ATTRIBUTE_RETRY_ON_FULL_CACHE: ++ ret = player->retry_on_full_cache; ++ break; ++ + default: + if (player->debug) + printf("Unsupported Attribute\n"); +@@ -1788,6 +1820,7 @@ + player->title_is_menu = FALSE; + player->enable_divx = TRUE; + player->disable_xvmc = FALSE; ++ player->retry_on_full_cache = FALSE; + + g_mutex_lock(player->thread_running); + +@@ -2477,6 +2510,11 @@ + error_msg = g_strdup_printf(_("Compressed SWF format not supported")); + } + ++ if (strstr(mplayer_output->str, "MOV: missing header (moov/cmov) chunk") != NULL) { ++ player->retry_on_full_cache = TRUE; ++ create_event_boolean(player, "attribute-changed", ATTRIBUTE_RETRY_ON_FULL_CACHE); ++ } ++ + if (strstr(mplayer_output->str, "Title: ") != 0) { + buf = strstr(mplayer_output->str, "Title:"); + buf = strstr(mplayer_output->str, "Title: ") + strlen("Title: "); +diff -ru gnome-mplayer-1.0.4-orig/src/libgmtk/gmtk_media_player.h gnome-mplayer-1.0.4/src/libgmtk/gmtk_media_player.h +--- gnome-mplayer-1.0.4-orig/src/libgmtk/gmtk_media_player.h 2011-06-28 09:29:18.000000000 -0400 ++++ gnome-mplayer-1.0.4/src/libgmtk/gmtk_media_player.h 2011-07-09 21:04:50.000000000 -0400 +@@ -170,7 +170,8 @@ + ATTRIBUTE_ENABLE_FRAME_DROP, + ATTRIBUTE_TITLE, + ATTRIBUTE_ARTIST, +- ATTRIBUTE_ALBUM ++ ATTRIBUTE_ALBUM, ++ ATTRIBUTE_RETRY_ON_FULL_CACHE + } GmtkMediaPlayerMediaAttributes; + + typedef enum { +@@ -201,6 +202,13 @@ + COMMAND_SWITCH_FRAME_DROP + } GmtkMediaPlayerCommand; + ++typedef enum { ++ EVENT_TYPE_INT, ++ EVENT_TYPE_DOUBLE, ++ EVENT_TYPE_BOOLEAN, ++ EVENT_TYPE_ALLOCATION ++} GmtkMediaPlayerEventType; ++ + typedef struct _GmtkMediaPlayer GmtkMediaPlayer; + typedef struct _GmtkMediaPlayerClass GmtkMediaPlayerClass; + +@@ -222,9 +230,11 @@ + + typedef struct _GmtkMediaPlayerEvent { + GmtkMediaPlayer *player; ++ GmtkMediaPlayerEventType type; + gchar *event_name; + gint event_data_int; + gdouble event_data_double; ++ gboolean event_data_boolean; + GtkAllocation *event_allocation; + } GmtkMediaPlayerEvent; + +@@ -304,6 +314,7 @@ + gchar *album; + gboolean enable_divx; + gboolean disable_xvmc; ++ gboolean retry_on_full_cache; + + gboolean deinterlace; + gboolean frame_drop; +diff -ru gnome-mplayer-1.0.4-orig/src/main.c gnome-mplayer-1.0.4/src/main.c +--- gnome-mplayer-1.0.4-orig/src/main.c 2011-06-27 10:59:45.000000000 -0400 ++++ gnome-mplayer-1.0.4/src/main.c 2011-07-09 21:04:12.000000000 -0400 +@@ -534,6 +534,7 @@ + idledata->width = width; + idledata->height = height; + ++ idledata->retry_on_full_cache = FALSE; + idledata->cachepercent = -1.0; + g_strlcpy(idledata->info, uri, 1024); + set_media_info(idledata); diff --git a/multimedia/gnome-mplayer/gnome-mplayer.SlackBuild b/multimedia/gnome-mplayer/gnome-mplayer.SlackBuild index a56ba6049e..63925f89e9 100644 --- a/multimedia/gnome-mplayer/gnome-mplayer.SlackBuild +++ b/multimedia/gnome-mplayer/gnome-mplayer.SlackBuild @@ -5,7 +5,7 @@ PRGNAM=gnome-mplayer VERSION=${VERSION:-1.0.4} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} TAG=${TAG:-_SBo} if [ -z "$ARCH" ]; then @@ -53,6 +53,9 @@ find . \ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 \ -o -perm 400 \) -exec chmod 644 {} \; +# Misc fixes that did not make it into 1.0.4 +patch -p1 < $CWD/gnome-mplayer-fixes.diff + # If GCONF=YES above, then enable gconf; otherwise, disable it. if [ "$GCONF" = "YES" ]; then do_gconf="with" diff --git a/multimedia/gnome-mplayer/gnome-mplayer.info b/multimedia/gnome-mplayer/gnome-mplayer.info index 3373aba337..47faeb8220 100644 --- a/multimedia/gnome-mplayer/gnome-mplayer.info +++ b/multimedia/gnome-mplayer/gnome-mplayer.info @@ -7,4 +7,4 @@ DOWNLOAD_x86_64="" MD5SUM_x86_64="" MAINTAINER="Phillip Warner" EMAIL="pc_warner@yahoo.com" -APPROVED="dsomero" +APPROVED="rworkman" |