static VALUE formats_initialize(VALUE self, VALUE format) { GstQuery *query; query = gst_query_new_formats(); G_INITIALIZE (self, query); return Qnil; }
void create_queries() { GstQuery *query; /* POSITION */ { GstFormat format; gint64 position; xmlfile = "gstquery_create_queries"; std_log(LOG_FILENAME_LINE, "Test Started create_queries"); query = gst_query_new_position (GST_FORMAT_TIME); fail_if (query == NULL); fail_unless (GST_QUERY_TYPE (query) == GST_QUERY_POSITION); gst_query_parse_position (query, &format, NULL); fail_if (format != GST_FORMAT_TIME); gst_query_set_position (query, GST_FORMAT_TIME, 0xdeadbeaf); gst_query_parse_position (query, &format, &position); fail_if (format != GST_FORMAT_TIME); fail_if (position != 0xdeadbeaf); gst_query_unref (query); } /* DURATION */ { GstFormat format; gint64 duration; query = gst_query_new_duration (GST_FORMAT_TIME); fail_if (query == NULL); fail_unless (GST_QUERY_TYPE (query) == GST_QUERY_DURATION); gst_query_parse_duration (query, &format, NULL); fail_if (format != GST_FORMAT_TIME); gst_query_set_duration (query, GST_FORMAT_TIME, 0xdeadbeaf); gst_query_parse_duration (query, &format, &duration); fail_if (format != GST_FORMAT_TIME); fail_if (duration != 0xdeadbeaf); gst_query_unref (query); } { /* FIXME make tests for: * * LATENCY * JITTER * RATE * SEEKING * SEGMENT * CONVERT */ } /* SEGMENT */ { gdouble rate; GstFormat format; gint64 start, stop; format = GST_FORMAT_BYTES; 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 != 0.0); fail_if (format != GST_FORMAT_BYTES); fail_if (start != -1); fail_if (stop != -1); /* change all values */ gst_query_set_segment (query, 2.0, GST_FORMAT_TIME, 1 * GST_SECOND, 3 * GST_SECOND); gst_query_parse_segment (query, &rate, &format, &start, &stop); /* see if the values were changed */ fail_if (rate != 2.0); fail_if (format != GST_FORMAT_TIME); fail_if (start != 1 * GST_SECOND); fail_if (stop != 3 * GST_SECOND); gst_query_unref (query); } /* FORMATS */ { guint size; GstFormat format; query = gst_query_new_formats (); fail_if (query == NULL); fail_unless (GST_QUERY_TYPE (query) == GST_QUERY_FORMATS); /* empty */ gst_query_parse_formats_length (query, &size); fail_if (size != 0); /* see if empty gives undefined formats */ gst_query_parse_formats_nth (query, 0, &format); fail_if (format != GST_FORMAT_UNDEFINED); gst_query_parse_formats_nth (query, 1, &format); fail_if (format != GST_FORMAT_UNDEFINED); /* set 2 formats */ gst_query_set_formats (query, 2, GST_FORMAT_TIME, GST_FORMAT_BYTES); gst_query_parse_formats_length (query, &size); fail_if (size != 2); format = GST_FORMAT_UNDEFINED; gst_query_parse_formats_nth (query, 0, &format); fail_if (format != GST_FORMAT_TIME); gst_query_parse_formats_nth (query, 1, &format); fail_if (format != GST_FORMAT_BYTES); /* out of bounds, should return UNDEFINED */ gst_query_parse_formats_nth (query, 2, &format); fail_if (format != GST_FORMAT_UNDEFINED); /* overwrite with 3 formats */ gst_query_set_formats (query, 3, GST_FORMAT_TIME, GST_FORMAT_BYTES, GST_FORMAT_PERCENT); gst_query_parse_formats_length (query, &size); fail_if (size != 3); gst_query_parse_formats_nth (query, 2, &format); fail_if (format != GST_FORMAT_PERCENT); /* create one from an array */ { static GstFormat formats[] = { GST_FORMAT_TIME, GST_FORMAT_BYTES, GST_FORMAT_PERCENT }; gst_query_set_formatsv (query, 3, formats); gst_query_parse_formats_length (query, &size); fail_if (size != 3); gst_query_parse_formats_nth (query, 0, &format); fail_if (format != GST_FORMAT_TIME); gst_query_parse_formats_nth (query, 2, &format); fail_if (format != GST_FORMAT_PERCENT); } gst_query_unref (query); } std_log(LOG_FILENAME_LINE, "Test Successful"); create_xml(0); }
FormatsQueryPtr FormatsQuery::create() { return FormatsQueryPtr::wrap(gst_query_new_formats(), false); }