summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gst/elements/gstfilesink.c10
-rw-r--r--plugins/elements/gstfilesink.c10
2 files changed, 10 insertions, 10 deletions
diff --git a/gst/elements/gstfilesink.c b/gst/elements/gstfilesink.c
index 5c4002191..ce1832d1c 100644
--- a/gst/elements/gstfilesink.c
+++ b/gst/elements/gstfilesink.c
@@ -168,15 +168,15 @@ gst_filesink_set_property (GObject *object, guint prop_id, const GValue *value,
switch (prop_id) {
case ARG_LOCATION:
/* the element must be stopped or paused in order to do this */
- g_return_if_fail (GST_STATE (sink) < GST_STATE_PLAYING);
+ g_return_if_fail (GST_STATE (sink) <= GST_STATE_PAUSED);
+ if (GST_STATE (sink) == GST_STATE_PAUSED)
+ g_return_if_fail (!GST_FLAG_IS_SET (sink, GST_FILESINK_OPEN));
+
if (sink->filename)
g_free (sink->filename);
sink->filename = g_strdup (g_value_get_string (value));
- if ((GST_STATE (sink) == GST_STATE_PAUSED) &&
- (sink->filename != NULL)) {
- gst_filesink_close_file (sink);
+ if (GST_STATE (sink) == GST_STATE_PAUSED)
gst_filesink_open_file (sink);
- }
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
diff --git a/plugins/elements/gstfilesink.c b/plugins/elements/gstfilesink.c
index 5c4002191..ce1832d1c 100644
--- a/plugins/elements/gstfilesink.c
+++ b/plugins/elements/gstfilesink.c
@@ -168,15 +168,15 @@ gst_filesink_set_property (GObject *object, guint prop_id, const GValue *value,
switch (prop_id) {
case ARG_LOCATION:
/* the element must be stopped or paused in order to do this */
- g_return_if_fail (GST_STATE (sink) < GST_STATE_PLAYING);
+ g_return_if_fail (GST_STATE (sink) <= GST_STATE_PAUSED);
+ if (GST_STATE (sink) == GST_STATE_PAUSED)
+ g_return_if_fail (!GST_FLAG_IS_SET (sink, GST_FILESINK_OPEN));
+
if (sink->filename)
g_free (sink->filename);
sink->filename = g_strdup (g_value_get_string (value));
- if ((GST_STATE (sink) == GST_STATE_PAUSED) &&
- (sink->filename != NULL)) {
- gst_filesink_close_file (sink);
+ if (GST_STATE (sink) == GST_STATE_PAUSED)
gst_filesink_open_file (sink);
- }
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);