diff --git a/ChangeLog b/ChangeLog index 02bdde4879..70b4259b32 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2006-08-16 Tim-Philipp Müller + + * gst/autodetect/gstautoaudiosink.c: + (gst_auto_audio_sink_find_best): + When we can't find a usable audiosink, don't error out, + but use a fake sink instead and post a warning message + on the bus (#341278). + 2006-08-16 Tim-Philipp Müller * sys/oss/gstossmixerelement.c: (gst_oss_mixer_element_class_init): diff --git a/gst/autodetect/gstautoaudiosink.c b/gst/autodetect/gstautoaudiosink.c index 1dc4ad3238..13b0e657ee 100644 --- a/gst/autodetect/gstautoaudiosink.c +++ b/gst/autodetect/gstautoaudiosink.c @@ -230,9 +230,12 @@ gst_auto_audio_sink_find_best (GstAutoAudioSink * sink) GST_DEBUG_OBJECT (sink, "reposting message %p", errors->data); gst_element_post_message (GST_ELEMENT (sink), GST_MESSAGE (errors->data)); } else { - /* general fallback */ - GST_ELEMENT_ERROR (sink, LIBRARY, INIT, (NULL), - ("Failed to find a supported audio sink")); + /* send warning message to application and use a fakesink */ + GST_ELEMENT_WARNING (sink, RESOURCE, NOT_FOUND, (NULL), + ("Failed to find a usable audio sink")); + choice = gst_element_factory_make ("fakesink", "fake-audio-sink"); + g_object_set (choice, "sync", TRUE, NULL); + gst_element_set_state (choice, GST_STATE_READY); } } gst_object_unref (bus);