summaryrefslogtreecommitdiff
path: root/multimedia/gnome-mplayer
diff options
context:
space:
mode:
Diffstat (limited to 'multimedia/gnome-mplayer')
-rw-r--r--multimedia/gnome-mplayer/README13
-rw-r--r--multimedia/gnome-mplayer/gnome-mplayer-fixes.diff210
-rw-r--r--multimedia/gnome-mplayer/gnome-mplayer.SlackBuild5
-rw-r--r--multimedia/gnome-mplayer/gnome-mplayer.info2
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"