comparison pidgin/gtksound.c @ 19384:630938110521

Cleanup playbin on error. Thanks, Elliott Sales de Andrade. Fixes #2663
author Sean Egan <seanegan@gmail.com>
date Thu, 23 Aug 2007 00:43:57 +0000
parents 4c26b23e7859
children 3d42c005fc17
comparison
equal deleted inserted replaced
19366:bd18c02bba9f 19384:630938110521
362 { 362 {
363 GstElement *play = data; 363 GstElement *play = data;
364 GError *err = NULL; 364 GError *err = NULL;
365 365
366 switch (GST_MESSAGE_TYPE (msg)) { 366 switch (GST_MESSAGE_TYPE (msg)) {
367 case GST_MESSAGE_EOS:
368 gst_element_set_state(play, GST_STATE_NULL);
369 gst_object_unref(GST_OBJECT(play));
370 break;
371 case GST_MESSAGE_ERROR: 367 case GST_MESSAGE_ERROR:
372 gst_message_parse_error(msg, &err, NULL); 368 gst_message_parse_error(msg, &err, NULL);
373 purple_debug_error("gstreamer", "%s\n", err->message); 369 purple_debug_error("gstreamer", "%s\n", err->message);
374 g_error_free(err); 370 g_error_free(err);
371 /* fall-through and clean up */
372 case GST_MESSAGE_EOS:
373 gst_element_set_state(play, GST_STATE_NULL);
374 gst_object_unref(GST_OBJECT(play));
375 break; 375 break;
376 case GST_MESSAGE_WARNING: 376 case GST_MESSAGE_WARNING:
377 gst_message_parse_warning(msg, &err, NULL); 377 gst_message_parse_warning(msg, &err, NULL);
378 purple_debug_warning("gstreamer", "%s\n", err->message); 378 purple_debug_warning("gstreamer", "%s\n", err->message);
379 g_error_free(err); 379 g_error_free(err);