playbin2: when no uri is set, post an error message

When no uri is set, don't just return STATE_CHANGE_FAILURE from the
state change function, but actually post an error message.
This commit is contained in:
Tim-Philipp Müller 2010-01-29 13:56:05 +00:00
parent 74ccf8d7b9
commit 16601b09fe

View file

@ -2473,8 +2473,8 @@ _playsink_sink_event_probe_cb (GstPad * pad, GstEvent * event,
if (format != GST_FORMAT_TIME) if (format != GST_FORMAT_TIME)
data->group->selector[data->type].group_start_accum = GST_CLOCK_TIME_NONE; data->group->selector[data->type].group_start_accum = GST_CLOCK_TIME_NONE;
else if (!GST_CLOCK_TIME_IS_VALID (data->group->selector[data-> else if (!GST_CLOCK_TIME_IS_VALID (data->group->selector[data->type].
type].group_start_accum)) group_start_accum))
data->group->selector[data->type].group_start_accum = segment->accum; data->group->selector[data->type].group_start_accum = segment->accum;
} else if (GST_EVENT_TYPE (event) == GST_EVENT_FLUSH_STOP) { } else if (GST_EVENT_TYPE (event) == GST_EVENT_FLUSH_STOP) {
gst_segment_init (&data->playbin->segments[index], GST_FORMAT_UNDEFINED); gst_segment_init (&data->playbin->segments[index], GST_FORMAT_UNDEFINED);
@ -3484,6 +3484,8 @@ setup_next_source (GstPlayBin * playbin, GstState target)
no_next_group: no_next_group:
{ {
GST_DEBUG_OBJECT (playbin, "no next group"); GST_DEBUG_OBJECT (playbin, "no next group");
if (target == GST_STATE_READY && new_group && new_group->uri == NULL)
GST_ELEMENT_ERROR (playbin, RESOURCE, NOT_FOUND, ("No URI set"), (NULL));
GST_PLAY_BIN_UNLOCK (playbin); GST_PLAY_BIN_UNLOCK (playbin);
return FALSE; return FALSE;
} }