From 481238cfce888a4da4e629f792aae06bc8f66af6 Mon Sep 17 00:00:00 2001 From: Torsten Schoenfeld Date: Mon, 28 Aug 2006 08:44:29 +0000 Subject: [PATCH] Initialize variables when creating a new segment query. Original commit message from CVS: Patch by: Torsten Schoenfeld * gst/gstquery.c: (gst_query_new_segment): * tests/check/gst/gstquery.c: (GST_START_TEST): Initialize variables when creating a new segment query. Fixes #353121. --- ChangeLog | 9 +++++++++ gst/gstquery.c | 5 ++++- tests/check/gst/gstquery.c | 20 ++++++++++++++++++++ 3 files changed, 33 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index ffa9c236e8..bef2391f31 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2006-08-28 Wim Taymans + + Patch by: Torsten Schoenfeld + + * gst/gstquery.c: (gst_query_new_segment): + * tests/check/gst/gstquery.c: (GST_START_TEST): + Initialize variables when creating a new segment query. + Fixes #353121. + 2006-08-28 Wim Taymans Patch by: Torsten Schoenfeld diff --git a/gst/gstquery.c b/gst/gstquery.c index 2326f46699..4b7ca57711 100644 --- a/gst/gstquery.c +++ b/gst/gstquery.c @@ -647,7 +647,10 @@ gst_query_new_segment (GstFormat format) structure = gst_structure_empty_new ("GstQuerySegment"); gst_structure_id_set (structure, - GST_QUARK (FORMAT), GST_TYPE_FORMAT, format, NULL); + GST_QUARK (RATE), G_TYPE_DOUBLE, (gdouble) 0.0, + GST_QUARK (FORMAT), GST_TYPE_FORMAT, format, + GST_QUARK (START_VALUE), G_TYPE_INT64, (gint64) - 1, + GST_QUARK (STOP_VALUE), G_TYPE_INT64, (gint64) - 1, NULL); query = gst_query_new (GST_QUERY_SEGMENT, structure); diff --git a/tests/check/gst/gstquery.c b/tests/check/gst/gstquery.c index 51902e019b..772dbef217 100644 --- a/tests/check/gst/gstquery.c +++ b/tests/check/gst/gstquery.c @@ -73,6 +73,26 @@ GST_START_TEST (create_queries) * CONVERT */ } + /* SEGMENT */ + { + gdouble rate; + GstFormat format; + gint64 start, stop; + + format = GST_FORMAT_TIME; + query = gst_query_new_segment (format); + + fail_if (query == NULL); + fail_unless (GST_QUERY_TYPE (query) == GST_QUERY_SEGMENT); + + gst_query_parse_segment (query, &rate, &format, &start, &stop); + + /* see if empty gives undefined formats */ + fail_if (rate == 1.0); + fail_if (format != GST_FORMAT_TIME); + fail_if (start != -1); + fail_if (stop != -1); + } /* FORMATS */ {