From fdba81e0fa85dec05ea7f14f25666134ae3c5812 Mon Sep 17 00:00:00 2001 From: "Ronald S. Bultje" Date: Fri, 6 Jun 2003 23:48:04 +0000 Subject: [PATCH] Some adjustments to allow for setting a new filename after EOS, useful for writing multiple files Original commit message from CVS: Some adjustments to allow for setting a new filename after EOS, useful for writing multiple files --- gst/elements/gstfilesink.c | 10 +++++----- plugins/elements/gstfilesink.c | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/gst/elements/gstfilesink.c b/gst/elements/gstfilesink.c index 5c40021..ce1832d 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 5c40021..ce1832d 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); -- 2.7.4