Mercurial > pidgin.yaz
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); |