From: <sa...@us...> - 2006-08-21 03:04:17
|
Revision: 16935 Author: sadrul Date: 2006-08-20 20:04:12 -0700 (Sun, 20 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=16935&view=rev Log Message: ----------- If gstreamer fails, show an error message and continue to load. Modified Paths: -------------- trunk/gtk/gtksound.c Modified: trunk/gtk/gtksound.c =================================================================== --- trunk/gtk/gtksound.c 2006-08-21 02:55:56 UTC (rev 16934) +++ trunk/gtk/gtksound.c 2006-08-21 03:04:12 UTC (rev 16935) @@ -55,6 +55,10 @@ static guint mute_login_sounds_timeout = 0; static gboolean mute_login_sounds = FALSE; +#ifdef USE_GSTREAMER +static gboolean gst_init_failed; +#endif /* USE_GSTREAMER */ + static struct gaim_sound_event sounds[GAIM_NUM_SOUNDS] = { {N_("Buddy logs in"), "login", "login.wav"}, {N_("Buddy logs out"), "logout", "logout.wav"}, @@ -261,6 +265,9 @@ void *gtk_sound_handle = gaim_gtk_sound_get_handle(); void *blist_handle = gaim_blist_get_handle(); void *conv_handle = gaim_conversations_get_handle(); +#ifdef USE_GSTREAMER + GError *error = NULL; +#endif gaim_signal_connect(gaim_connections_get_handle(), "signed-on", gtk_sound_handle, GAIM_CALLBACK(account_signon_cb), @@ -299,7 +306,16 @@ #ifdef USE_GSTREAMER gaim_debug_info("sound", "Initializing sound output drivers.\n"); - gst_init(NULL, NULL); + if ((gst_init_failed = !gst_init_check(NULL, NULL, &error))) { + gaim_notify_error(NULL, _("GStreamer Failure"), + _("GStreamer failed to initialize."), + error ? error->message : ""); + if (error) { + g_error_free(error); + error = NULL; + } + return; + } #endif /* USE_GSTREAMER */ gaim_signal_connect(blist_handle, "buddy-signed-on", @@ -332,7 +348,8 @@ gaim_gtk_sound_uninit(void) { #ifdef USE_GSTREAMER - gst_deinit(); + if (!gst_init_failed) + gst_deinit(); #endif gaim_signals_disconnect_by_handle(gaim_gtk_sound_get_handle()); @@ -428,6 +445,8 @@ return; } #ifdef USE_GSTREAMER + if (gst_init_failed) /* Perhaps do gdk_beep instead? */ + return; volume = (float)(CLAMP(gaim_prefs_get_int("/gaim/gtk/sound/volume"),0,100)) / 50; if (!strcmp(method, "automatic")) { if (gaim_running_gnome()) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2006-09-09 20:40:16
|
Revision: 17204 http://svn.sourceforge.net/gaim/?rev=17204&view=rev Author: thekingant Date: 2006-09-09 13:40:12 -0700 (Sat, 09 Sep 2006) Log Message: ----------- Doxygen comment fix Modified Paths: -------------- trunk/gtk/gtksound.c Modified: trunk/gtk/gtksound.c =================================================================== --- trunk/gtk/gtksound.c 2006-09-09 20:27:48 UTC (rev 17203) +++ trunk/gtk/gtksound.c 2006-09-09 20:40:12 UTC (rev 17204) @@ -1,5 +1,5 @@ /* - * @file gtksound.h GTK+ Sound + * @file gtksound.c GTK+ Sound * @ingroup gtkui * * gaim This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2006-11-01 07:33:04
|
Revision: 17648 http://svn.sourceforge.net/gaim/?rev=17648&view=rev Author: thekingant Date: 2006-10-31 23:32:41 -0800 (Tue, 31 Oct 2006) Log Message: ----------- After seeing Ka-Hing's patch I figured I'd grep around for the same mistake in other places. I found one in our gstreamer error handling code. Luke (or anyone), are you still having gstreamer problems? If so, can you see if this is less crashy? Modified Paths: -------------- trunk/gtk/gtksound.c Modified: trunk/gtk/gtksound.c =================================================================== --- trunk/gtk/gtksound.c 2006-11-01 07:29:53 UTC (rev 17647) +++ trunk/gtk/gtksound.c 2006-11-01 07:32:41 UTC (rev 17648) @@ -361,7 +361,7 @@ gpointer data) { GstElement *play = data; - GError *err; + GError *err = NULL; switch (GST_MESSAGE_TYPE (msg)) { case GST_MESSAGE_EOS: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2006-12-17 05:44:56
|
Revision: 18013 http://svn.sourceforge.net/gaim/?rev=18013&view=rev Author: thekingant Date: 2006-12-16 21:38:48 -0800 (Sat, 16 Dec 2006) Log Message: ----------- sf patch #1613563, from Ari Pollak, the spunkiest Debian packager this side of Soleil Moon Frye "This patch should fix at least one gstreamer crash, and it also fixes a potential memory leak." Modified Paths: -------------- trunk/gtk/gtksound.c Modified: trunk/gtk/gtksound.c =================================================================== --- trunk/gtk/gtksound.c 2006-12-17 05:04:23 UTC (rev 18012) +++ trunk/gtk/gtksound.c 2006-12-17 05:38:48 UTC (rev 18013) @@ -394,6 +394,7 @@ char *uri; GstElement *sink = NULL; GstElement *play = NULL; + GstBus *bus = NULL; #endif if (gaim_prefs_get_bool("/gaim/gtk/sound/mute")) @@ -434,9 +435,8 @@ command = g_strdup_printf("%s %s", sound_cmd, filename); if(!g_spawn_command_line_async(command, &error)) { - char *tmp = g_strdup_printf("sound command could not be launched: %s\n", error->message); - gaim_debug_error("gtksound", tmp); - g_free(tmp); + gaim_debug_error("gtksound", "sound command could not be launched: %s\n", error->message); + g_free(command); g_error_free(error); } @@ -453,21 +453,35 @@ } if (!sink) sink = gst_element_factory_make("autoaudiosink", "sink"); + if (!sink) { + gaim_debug_error("sound", "Unable to create GStreamer audiosink.\n"); + return; + } } else if (!strcmp(method, "esd")) { sink = gst_element_factory_make("esdsink", "sink"); + if (!sink) { + gaim_debug_error("sound", "Unable to create GStreamer audiosink.\n"); + return; + } + } else { + gaim_debug_error("sound", "Unknown sound method '%s'\n", method); + return; } - uri = g_strdup_printf("file://%s", filename); play = gst_element_factory_make("playbin", "play"); + uri = g_strdup_printf("file://%s", filename); + g_object_set(G_OBJECT(play), "uri", uri, "volume", volume, "audio-sink", sink, NULL); - gst_bus_add_watch(gst_pipeline_get_bus(GST_PIPELINE(play)), - bus_call, play); + bus = gst_pipeline_get_bus(GST_PIPELINE(play)); + gst_bus_add_watch(bus, bus_call, play); + gst_element_set_state(play, GST_STATE_PLAYING); + gst_object_unref(bus); g_free(uri); #else /* USE_GSTREAMER */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2007-02-08 17:32:46
|
Revision: 18183 http://svn.sourceforge.net/gaim/?rev=18183&view=rev Author: thekingant Date: 2007-02-08 09:32:43 -0800 (Thu, 08 Feb 2007) Log Message: ----------- sf patch #1651457, from Paul-Christiaan Spruijtenburg "Selecting a non-existing Sound Command for Method: Command in Preferences->Sounds causes gaim to double free the command." My bad! Modified Paths: -------------- trunk/gtk/gtksound.c Modified: trunk/gtk/gtksound.c =================================================================== --- trunk/gtk/gtksound.c 2007-02-08 16:19:32 UTC (rev 18182) +++ trunk/gtk/gtksound.c 2007-02-08 17:32:43 UTC (rev 18183) @@ -436,7 +436,6 @@ if(!g_spawn_command_line_async(command, &error)) { gaim_debug_error("gtksound", "sound command could not be launched: %s\n", error->message); - g_free(command); g_error_free(error); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |