From 29afa758589620f4572ca2f1bbbac073318df071 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Thu, 13 Aug 2015 17:29:58 +0100 Subject: [PATCH] multifilesrc: fix regression with starting from index set via index property When we haven't started yet, set the start_index when we set the index property, so that we start at the right index position after the initial seek. The index property was never really meant to be for writing, but it used to work, so let's support it for backwards compatibility. https://bugzilla.gnome.org/show_bug.cgi?id=739472 --- gst/multifile/gstmultifilesrc.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/gst/multifile/gstmultifilesrc.c b/gst/multifile/gstmultifilesrc.c index 01dae987a7..316c6e0e12 100644 --- a/gst/multifile/gstmultifilesrc.c +++ b/gst/multifile/gstmultifilesrc.c @@ -299,7 +299,14 @@ gst_multi_file_src_set_property (GObject * object, guint prop_id, gst_multi_file_src_set_location (src, g_value_get_string (value)); break; case PROP_INDEX: - src->index = g_value_get_int (value); + GST_OBJECT_LOCK (src); + /* index was really meant to be read-only, but for backwards-compatibility + * we set start_index to make it work as it used to */ + if (!GST_OBJECT_FLAG_IS_SET (src, GST_BASE_SRC_FLAG_STARTED)) + src->start_index = g_value_get_int (value); + else + src->index = g_value_get_int (value); + GST_OBJECT_UNLOCK (src); break; case PROP_START_INDEX: src->start_index = g_value_get_int (value);