From 4b01adc581228c7fcd5416f3719c21b1e3fb98ea Mon Sep 17 00:00:00 2001 From: Koen Kooi Date: Wed, 4 Nov 2009 09:03:54 +0100 Subject: gecko-media-player: add missing patch --- .../gecko-mediaplayer/gecko-mplayer-svn.diff | 480 +++++++++++++++++++++ 1 file changed, 480 insertions(+) create mode 100644 recipes/gnome-mplayer/gecko-mediaplayer/gecko-mplayer-svn.diff (limited to 'recipes/gnome-mplayer') diff --git a/recipes/gnome-mplayer/gecko-mediaplayer/gecko-mplayer-svn.diff b/recipes/gnome-mplayer/gecko-mediaplayer/gecko-mplayer-svn.diff new file mode 100644 index 0000000000..929d02540a --- /dev/null +++ b/recipes/gnome-mplayer/gecko-mediaplayer/gecko-mplayer-svn.diff @@ -0,0 +1,480 @@ +Index: configure +=================================================================== +--- configure (revision 328) ++++ configure (working copy) +@@ -639,6 +639,7 @@ + am__EXEEXT_TRUE + LTLIBOBJS + LIBOBJS ++plugindir + GIO_DEFINES + GIO_LIBS + GIO_CFLAGS +@@ -775,6 +776,7 @@ + enable_schemas_install + with_gconf + with_gio ++with_plugin_dir + enable_caching + ' + ac_precious_vars='build_alias +@@ -1444,6 +1446,7 @@ + Directory for installing schema files. + --with-gconf Use Gconf to store preferences + --with-gio Use GIO for file I/O ++ --with-plugin-dir=dir Directory where plugins are stored + + Some influential environment variables: + CC C compiler command +@@ -9640,6 +9643,16 @@ + fi + + ++ ++# Check whether --with-plugin_dir was given. ++if test "${with_plugin_dir+set}" = set; then ++ withval=$with_plugin_dir; plugindir=$withval ++else ++ plugindir='$(libdir)/mozilla/plugins' ++fi ++ ++ ++ + # Check whether --enable-caching was given. + if test "${enable_caching+set}" = set; then + enableval=$enable_caching; usecache=$enableval +Index: Makefile.in +=================================================================== +--- Makefile.in (revision 328) ++++ Makefile.in (working copy) +@@ -239,6 +239,7 @@ + mkdir_p = @mkdir_p@ + oldincludedir = @oldincludedir@ + pdfdir = @pdfdir@ ++plugindir = @plugindir@ + prefix = @prefix@ + program_transform_name = @program_transform_name@ + psdir = @psdir@ +Index: configure.in +=================================================================== +--- configure.in (revision 328) ++++ configure.in (working copy) +@@ -114,6 +114,13 @@ + AC_SUBST(GIO_LIBS) + ]) + ++AC_ARG_WITH([plugin_dir], ++ [AS_HELP_STRING([--with-plugin-dir=dir], ++ [Directory where plugins are stored])], ++ [plugindir=$withval], ++ [plugindir='$(libdir)/mozilla/plugins']) ++AC_SUBST(plugindir) ++ + AC_ARG_ENABLE(caching, + AC_HELP_STRING([--disable-caching],[Disable caching of remote media to local storage]), + [usecache=$enableval],[usecache=yes]) +Index: src/plugin.cpp +=================================================================== +--- src/plugin.cpp (revision 328) ++++ src/plugin.cpp (working copy) +@@ -42,9 +42,9 @@ + #include "plugin_setup.h" + #include "plugin_types.h" + #include "plugin_dbus.h" +-#include "nsIPrefBranch.h" +-#include "nsIPrefService.h" +-#include "nsIServiceManager.h" ++#include ++#include ++#include + + nsIPrefBranch *prefBranch = NULL; + nsIPrefService *prefService = NULL; +@@ -170,9 +170,9 @@ + { + gchar *jscript; + +- jscript = g_strdup_printf("javascript:obj=document.getElementById('%s');" +- "e=document.createEvent('Events');" +- "e.initEvent('%s',true,true);" "obj.dispatchEvent(e);", id, event); ++ jscript = g_strdup_printf("javascript:obj_gmp=document.getElementById('%s');" ++ "e_gmp=document.createEvent('Events');" ++ "e_gmp.initEvent('%s',true,true);" "obj_gmp.dispatchEvent(e_gmp);", id, event); + NPN_GetURL(mInstance, jscript, NULL); + g_free(jscript); + } +@@ -259,6 +259,7 @@ + console(NULL), + controls(NULL), + user_agent(NULL), ++player_backend(NULL), + disable_context_menu(FALSE), + disable_fullscreen(FALSE), + post_dom_events(FALSE), +@@ -354,6 +355,8 @@ + store = gm_pref_store_new("gecko-mediaplayer"); + if (store != NULL) { + debug_level = gm_pref_store_get_int(store, DEBUG_LEVEL); ++ player_backend = gm_pref_store_get_string(store, PLAYER_BACKEND); ++ printf("Using player backend of '%s'\n",player_backend); + gm_pref_store_free(store); + } + +@@ -458,10 +461,16 @@ + } + + if (!player_launched && mWidth > 0 && mHeight > 0) { +- app_name = g_find_program_in_path("gnome-mplayer"); +- if (app_name == NULL) +- app_name = g_find_program_in_path("gnome-mplayer-minimal"); +- ++ app_name = NULL; ++ if (player_backend != NULL) { ++ app_name = g_find_program_in_path(player_backend); ++ } ++ if (app_name == NULL) { ++ app_name = g_find_program_in_path("gnome-mplayer"); ++ if (app_name == NULL) ++ app_name = g_find_program_in_path("gnome-mplayer-minimal"); ++ } ++ + argvn[arg++] = g_strdup_printf("%s", app_name); + g_free(app_name); + argvn[arg++] = g_strdup_printf("--window=%i", (gint) mWindow); +@@ -643,6 +652,14 @@ + g_free(path); + } + //printf("Leaving destroy stream src = %s\n", item->src); ++ ++ } else if (reason == NPRES_NETWORK_ERR) { ++ item = (ListItem *) stream->notifyData; ++ if (item) { ++ printf("Destroy Stream, network error, item is %s\n", item->src); ++ } else { ++ printf("Destory Stream, network error, item is NULL\n"); ++ } + } else { + item = (ListItem *) stream->notifyData; + // item = list_find(playlist, (gchar*)stream->url); +@@ -692,9 +709,19 @@ + */ + } + } else { +- if (item) ++ if (item) { + item->played = TRUE; +- if (!item->streaming) { ++ if (!item->streaming) { ++ item = list_find_next_playable(playlist); ++ if (item) { ++ if (item->retrieved) { ++ open_location(this, item, TRUE); ++ } else { ++ NPN_GetURLNotify(mInstance, item->src, NULL, item); ++ } ++ } ++ } ++ } else { + item = list_find_next_playable(playlist); + if (item) { + if (item->retrieved) { +@@ -703,7 +730,7 @@ + NPN_GetURLNotify(mInstance, item->src, NULL, item); + } + } +- } ++ } + } + } + +Index: src/Makefile.in +=================================================================== +--- src/Makefile.in (revision 328) ++++ src/Makefile.in (working copy) +@@ -57,34 +57,45 @@ + $(am__objects_1) + gecko_mediaplayer_dvx_so_OBJECTS = \ + $(am_gecko_mediaplayer_dvx_so_OBJECTS) +-gecko_mediaplayer_dvx_so_DEPENDENCIES = libgmlib/libgmlib.a ++am__DEPENDENCIES_1 = ++gecko_mediaplayer_dvx_so_DEPENDENCIES = libgmlib/libgmlib.a \ ++ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ ++ $(am__DEPENDENCIES_1) + gecko_mediaplayer_dvx_so_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ + $(gecko_mediaplayer_dvx_so_LDFLAGS) $(LDFLAGS) -o $@ + am_gecko_mediaplayer_qt_so_OBJECTS = plugin_types_qt.$(OBJEXT) \ + $(am__objects_1) + gecko_mediaplayer_qt_so_OBJECTS = \ + $(am_gecko_mediaplayer_qt_so_OBJECTS) +-gecko_mediaplayer_qt_so_DEPENDENCIES = libgmlib/libgmlib.a ++gecko_mediaplayer_qt_so_DEPENDENCIES = libgmlib/libgmlib.a \ ++ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ ++ $(am__DEPENDENCIES_1) + gecko_mediaplayer_qt_so_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ + $(gecko_mediaplayer_qt_so_LDFLAGS) $(LDFLAGS) -o $@ + am_gecko_mediaplayer_rm_so_OBJECTS = plugin_types_rm.$(OBJEXT) \ + $(am__objects_1) + gecko_mediaplayer_rm_so_OBJECTS = \ + $(am_gecko_mediaplayer_rm_so_OBJECTS) +-gecko_mediaplayer_rm_so_DEPENDENCIES = libgmlib/libgmlib.a ++gecko_mediaplayer_rm_so_DEPENDENCIES = libgmlib/libgmlib.a \ ++ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ ++ $(am__DEPENDENCIES_1) + gecko_mediaplayer_rm_so_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ + $(gecko_mediaplayer_rm_so_LDFLAGS) $(LDFLAGS) -o $@ + am_gecko_mediaplayer_wmp_so_OBJECTS = plugin_types_wmp.$(OBJEXT) \ + $(am__objects_1) + gecko_mediaplayer_wmp_so_OBJECTS = \ + $(am_gecko_mediaplayer_wmp_so_OBJECTS) +-gecko_mediaplayer_wmp_so_DEPENDENCIES = libgmlib/libgmlib.a ++gecko_mediaplayer_wmp_so_DEPENDENCIES = libgmlib/libgmlib.a \ ++ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ ++ $(am__DEPENDENCIES_1) + gecko_mediaplayer_wmp_so_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ + $(gecko_mediaplayer_wmp_so_LDFLAGS) $(LDFLAGS) -o $@ + am_gecko_mediaplayer_so_OBJECTS = plugin_types_std.$(OBJEXT) \ + $(am__objects_1) + gecko_mediaplayer_so_OBJECTS = $(am_gecko_mediaplayer_so_OBJECTS) +-gecko_mediaplayer_so_DEPENDENCIES = libgmlib/libgmlib.a ++gecko_mediaplayer_so_DEPENDENCIES = libgmlib/libgmlib.a \ ++ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ ++ $(am__DEPENDENCIES_1) + gecko_mediaplayer_so_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ + $(gecko_mediaplayer_so_LDFLAGS) $(LDFLAGS) -o $@ + DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +@@ -265,6 +276,7 @@ + mkdir_p = @mkdir_p@ + oldincludedir = @oldincludedir@ + pdfdir = @pdfdir@ ++plugindir = @plugindir@ + prefix = @prefix@ + program_transform_name = @program_transform_name@ + psdir = @psdir@ +@@ -312,42 +324,42 @@ + npp_gate.cpp \ + npupp.h + +-install_libexecdir = $(libdir)/mozilla/plugins ++install_libexecdir = $(plugindir) + gecko_mediaplayer_so_SOURCES = \ + plugin_types_std.cpp \ + $(COMMONCODE) + + gecko_mediaplayer_so_CFLAGS = -fPIC +-gecko_mediaplayer_so_LDFLAGS = -shared $(GLIB_LIBS) $(DBUS_LIBS) $(GCONF_LIBS) -fPIC +-gecko_mediaplayer_so_LDADD = libgmlib/libgmlib.a ++gecko_mediaplayer_so_LDFLAGS = -shared -fPIC ++gecko_mediaplayer_so_LDADD = libgmlib/libgmlib.a $(GLIB_LIBS) $(DBUS_LIBS) $(GCONF_LIBS) + gecko_mediaplayer_qt_so_SOURCES = \ + plugin_types_qt.cpp \ + $(COMMONCODE) + + gecko_mediaplayer_qt_so_CFLAGS = -fPIC +-gecko_mediaplayer_qt_so_LDFLAGS = -shared $(GLIB_LIBS) $(DBUS_LIBS) $(GCONF_LIBS) -fPIC +-gecko_mediaplayer_qt_so_LDADD = libgmlib/libgmlib.a ++gecko_mediaplayer_qt_so_LDFLAGS = -shared -fPIC ++gecko_mediaplayer_qt_so_LDADD = libgmlib/libgmlib.a $(GLIB_LIBS) $(DBUS_LIBS) $(GCONF_LIBS) + gecko_mediaplayer_wmp_so_SOURCES = \ + plugin_types_wmp.cpp \ + $(COMMONCODE) + + gecko_mediaplayer_wmp_so_CFLAGS = -fPIC +-gecko_mediaplayer_wmp_so_LDFLAGS = -shared $(GLIB_LIBS) $(DBUS_LIBS) $(GCONF_LIBS) -fPIC +-gecko_mediaplayer_wmp_so_LDADD = libgmlib/libgmlib.a ++gecko_mediaplayer_wmp_so_LDFLAGS = -shared -fPIC ++gecko_mediaplayer_wmp_so_LDADD = libgmlib/libgmlib.a $(GLIB_LIBS) $(DBUS_LIBS) $(GCONF_LIBS) + gecko_mediaplayer_dvx_so_SOURCES = \ + plugin_types_dvx.cpp \ + $(COMMONCODE) + + gecko_mediaplayer_dvx_so_CFLAGS = -fPIC +-gecko_mediaplayer_dvx_so_LDFLAGS = -shared $(GLIB_LIBS) $(DBUS_LIBS) $(GCONF_LIBS) -fPIC +-gecko_mediaplayer_dvx_so_LDADD = libgmlib/libgmlib.a ++gecko_mediaplayer_dvx_so_LDFLAGS = -shared -fPIC ++gecko_mediaplayer_dvx_so_LDADD = libgmlib/libgmlib.a $(GLIB_LIBS) $(DBUS_LIBS) $(GCONF_LIBS) + gecko_mediaplayer_rm_so_SOURCES = \ + plugin_types_rm.cpp \ + $(COMMONCODE) + + gecko_mediaplayer_rm_so_CFLAGS = -fPIC +-gecko_mediaplayer_rm_so_LDFLAGS = -shared $(GLIB_LIBS) $(DBUS_LIBS) $(GCONF_LIBS) -fPIC +-gecko_mediaplayer_rm_so_LDADD = libgmlib/libgmlib.a ++gecko_mediaplayer_rm_so_LDFLAGS = -shared -fPIC ++gecko_mediaplayer_rm_so_LDADD = libgmlib/libgmlib.a $(GLIB_LIBS) $(DBUS_LIBS) $(GCONF_LIBS) + all: all-recursive + + .SUFFIXES: +Index: src/plugin.h +=================================================================== +--- src/plugin.h (revision 328) ++++ src/plugin.h (working copy) +@@ -84,6 +84,7 @@ + #define DISABLE_DVX "disable_dvx" + #define DEBUG_LEVEL "debug_level" + #define DISABLE_MIDI "disable_midi" ++#define PLAYER_BACKEND "player_backend" + + typedef enum { + PLAYING, +@@ -189,6 +190,7 @@ + gchar *console; + gchar *controls; + gchar *user_agent; ++ gchar *player_backend; + + // events + gboolean post_dom_events; +Index: src/plugin_dbus.cpp +=================================================================== +--- src/plugin_dbus.cpp (revision 328) ++++ src/plugin_dbus.cpp (working copy) +@@ -109,6 +109,14 @@ + return DBUS_HANDLER_RESULT_HANDLED; + } + ++ if (g_ascii_strcasecmp(dbus_message_get_member(message), "ListDump") == 0) { ++ ++ printf("playlist:\n"); ++ list_dump(instance->playlist); ++ ++ return DBUS_HANDLER_RESULT_HANDLED; ++ } ++ + if (g_ascii_strcasecmp(dbus_message_get_member(message), "RequestById") == 0) { + dbus_error_init(&error); + if (dbus_message_get_args(message, &error, DBUS_TYPE_STRING, &s, DBUS_TYPE_INVALID)) { +@@ -773,6 +781,10 @@ + + result = TRUE; + ++ } else if (g_ascii_strcasecmp(message, "/DEBUG") == 0) { ++ ++ result = TRUE; ++ + } else { + + if (instance->playlist != NULL) { +Index: src/Makefile.am +=================================================================== +--- src/Makefile.am (revision 328) ++++ src/Makefile.am (working copy) +@@ -39,7 +39,7 @@ + npp_gate.cpp \ + npupp.h + +-install_libexecdir = $(libdir)/mozilla/plugins ++install_libexecdir = $(plugindir) + install_libexec_PROGRAMS = \ + gecko-mediaplayer.so \ + gecko-mediaplayer-qt.so \ +@@ -52,40 +52,40 @@ + $(COMMONCODE) + + gecko_mediaplayer_so_CFLAGS = -fPIC +-gecko_mediaplayer_so_LDFLAGS = -shared $(GLIB_LIBS) $(DBUS_LIBS) $(GCONF_LIBS) -fPIC +-gecko_mediaplayer_so_LDADD = libgmlib/libgmlib.a ++gecko_mediaplayer_so_LDFLAGS = -shared -fPIC ++gecko_mediaplayer_so_LDADD = libgmlib/libgmlib.a $(GLIB_LIBS) $(DBUS_LIBS) $(GCONF_LIBS) + + gecko_mediaplayer_qt_so_SOURCES = \ + plugin_types_qt.cpp \ + $(COMMONCODE) + + gecko_mediaplayer_qt_so_CFLAGS = -fPIC +-gecko_mediaplayer_qt_so_LDFLAGS = -shared $(GLIB_LIBS) $(DBUS_LIBS) $(GCONF_LIBS) -fPIC +-gecko_mediaplayer_qt_so_LDADD = libgmlib/libgmlib.a ++gecko_mediaplayer_qt_so_LDFLAGS = -shared -fPIC ++gecko_mediaplayer_qt_so_LDADD = libgmlib/libgmlib.a $(GLIB_LIBS) $(DBUS_LIBS) $(GCONF_LIBS) + + gecko_mediaplayer_wmp_so_SOURCES = \ + plugin_types_wmp.cpp \ + $(COMMONCODE) + + gecko_mediaplayer_wmp_so_CFLAGS = -fPIC +-gecko_mediaplayer_wmp_so_LDFLAGS = -shared $(GLIB_LIBS) $(DBUS_LIBS) $(GCONF_LIBS) -fPIC +-gecko_mediaplayer_wmp_so_LDADD = libgmlib/libgmlib.a ++gecko_mediaplayer_wmp_so_LDFLAGS = -shared -fPIC ++gecko_mediaplayer_wmp_so_LDADD = libgmlib/libgmlib.a $(GLIB_LIBS) $(DBUS_LIBS) $(GCONF_LIBS) + + gecko_mediaplayer_dvx_so_SOURCES = \ + plugin_types_dvx.cpp \ + $(COMMONCODE) + + gecko_mediaplayer_dvx_so_CFLAGS = -fPIC +-gecko_mediaplayer_dvx_so_LDFLAGS = -shared $(GLIB_LIBS) $(DBUS_LIBS) $(GCONF_LIBS) -fPIC +-gecko_mediaplayer_dvx_so_LDADD = libgmlib/libgmlib.a ++gecko_mediaplayer_dvx_so_LDFLAGS = -shared -fPIC ++gecko_mediaplayer_dvx_so_LDADD = libgmlib/libgmlib.a $(GLIB_LIBS) $(DBUS_LIBS) $(GCONF_LIBS) + + gecko_mediaplayer_rm_so_SOURCES = \ + plugin_types_rm.cpp \ + $(COMMONCODE) + + gecko_mediaplayer_rm_so_CFLAGS = -fPIC +-gecko_mediaplayer_rm_so_LDFLAGS = -shared $(GLIB_LIBS) $(DBUS_LIBS) $(GCONF_LIBS) -fPIC +-gecko_mediaplayer_rm_so_LDADD = libgmlib/libgmlib.a ++gecko_mediaplayer_rm_so_LDFLAGS = -shared -fPIC ++gecko_mediaplayer_rm_so_LDADD = libgmlib/libgmlib.a $(GLIB_LIBS) $(DBUS_LIBS) $(GCONF_LIBS) + + indent: + indent -kr -l100 -i4 -nut *.cpp +Index: src/plugin_list.cpp +=================================================================== +--- src/plugin_list.cpp (revision 328) ++++ src/plugin_list.cpp (working copy) +@@ -356,7 +356,7 @@ + return list; + } else { + while (p != NULL) { +- urlptr = (gchar *) memmem(p,datalen - (p - data), "url ", 4); ++ urlptr = (gchar *) memmem_compat(p,datalen - (p - data), "url ", 4); + + + if (urlptr == NULL) { +@@ -385,7 +385,7 @@ + item->id = -1; + list = g_list_append(list, newitem); + } +- p = (gchar *) memmem(urlptr,datalen - (urlptr - data),"mmdr",4); ++ p = (gchar *) memmem_compat(urlptr,datalen - (urlptr - data),"mmdr",4); + } + + } +Index: ChangeLog +=================================================================== +--- ChangeLog (revision 328) ++++ ChangeLog (working copy) +@@ -1,3 +1,11 @@ ++Developement ++ Allow for configurable backend (fosfor or gnome-mplayer or something else) ++ Make dom event javascript a little more unique ++ React to Network Errors in DestroyStream differently ++ Added /DEBUG path for debugging purposes ++ Added ListDump dbus method ++ konqueror patch from Christian.Morales.Vega ++ plugin-dir patch from Christian.Morales.Vega + 0.9.8 + When cancelling a stream (USER_BREAK) and the cancelled one is streaming + don't automatically load the next item on the playlist +Index: gecko-mediaplayer.schemas +=================================================================== +--- gecko-mediaplayer.schemas (revision 328) ++++ gecko-mediaplayer.schemas (working copy) +@@ -62,5 +62,17 @@ + + + ++ ++ /schemas/apps/gecko-mediaplayer/preferences/player_backend ++ /apps/gecko-mediaplayer/preferences/player_backend ++ gecko-mediaplayer ++ string ++ ++ ++ Backend to use ++ Backend to use ++ ++ ++ + + -- cgit 1.2.3-korg