mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-10-05 02:02:26 +00:00
filesrc: Set GError in another error case
When changing the location while open, properly set the GError regarding the failure.
This commit is contained in:
parent
ce11ddeb0c
commit
6b73bf38d1
1 changed files with 9 additions and 4 deletions
|
@ -236,7 +236,8 @@ gst_file_src_finalize (GObject * object)
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
gst_file_src_set_location (GstFileSrc * src, const gchar * location)
|
gst_file_src_set_location (GstFileSrc * src, const gchar * location,
|
||||||
|
GError ** err)
|
||||||
{
|
{
|
||||||
GstState state;
|
GstState state;
|
||||||
|
|
||||||
|
@ -272,6 +273,10 @@ wrong_state:
|
||||||
{
|
{
|
||||||
g_warning ("Changing the `location' property on filesrc when a file is "
|
g_warning ("Changing the `location' property on filesrc when a file is "
|
||||||
"open is not supported.");
|
"open is not supported.");
|
||||||
|
if (err)
|
||||||
|
g_set_error (err, GST_URI_ERROR, GST_URI_ERROR_BAD_STATE,
|
||||||
|
"Changing the `location' property on filesrc when a file is "
|
||||||
|
"open is not supported.");
|
||||||
GST_OBJECT_UNLOCK (src);
|
GST_OBJECT_UNLOCK (src);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
@ -289,7 +294,7 @@ gst_file_src_set_property (GObject * object, guint prop_id,
|
||||||
|
|
||||||
switch (prop_id) {
|
switch (prop_id) {
|
||||||
case PROP_LOCATION:
|
case PROP_LOCATION:
|
||||||
gst_file_src_set_location (src, g_value_get_string (value));
|
gst_file_src_set_location (src, g_value_get_string (value), NULL);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||||
|
@ -621,7 +626,7 @@ gst_file_src_uri_set_uri (GstURIHandler * handler, const gchar * uri,
|
||||||
/* Special case for "file://" as this is used by some applications
|
/* Special case for "file://" as this is used by some applications
|
||||||
* to test with gst_element_make_from_uri if there's an element
|
* to test with gst_element_make_from_uri if there's an element
|
||||||
* that supports the URI protocol. */
|
* that supports the URI protocol. */
|
||||||
gst_file_src_set_location (src, NULL);
|
gst_file_src_set_location (src, NULL, NULL);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -650,7 +655,7 @@ gst_file_src_uri_set_uri (GstURIHandler * handler, const gchar * uri,
|
||||||
memmove (location, location + 1, strlen (location + 1) + 1);
|
memmove (location, location + 1, strlen (location + 1) + 1);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
ret = gst_file_src_set_location (src, location);
|
ret = gst_file_src_set_location (src, location, err);
|
||||||
|
|
||||||
beach:
|
beach:
|
||||||
if (location)
|
if (location)
|
||||||
|
|
Loading…
Reference in a new issue