static VALUE duration_parse(VALUE self) { GstFormat format; gint64 cur; gst_query_parse_duration(RVAL2GST_QUERY(self), &format, &cur); return rb_ary_new3(2, GST_FORMAT2RVAL(format), LL2NUM(cur)); }
static VALUE convert_parse(VALUE self) { GstFormat src_format, dest_format; gint64 src_value, dest_value; gst_query_parse_convert(RVAL2GST_QUERY(self), &src_format, &src_value, &dest_format, &dest_value); return rb_ary_new3(4, GST_FORMAT2RVAL(src_format), LL2NUM(src_value), RVAL2GST_FORMAT(dest_format), LL2NUM(dest_value)); }
static VALUE segment_parse(VALUE self) { GstFormat format; gdouble rate; gint64 start_value, stop_value; gst_query_parse_segment(RVAL2GST_QUERY(self), &rate, &format, &start_value, &stop_value); return rb_ary_new3(4, rb_dbl2big(rate), GST_FORMAT2RVAL(format), LL2NUM(start_value), LL2NUM(stop_value)); }
static VALUE seeking_parse(VALUE self) { GstFormat format; gboolean seekable; gint64 segment_start, segment_end; gst_query_parse_seeking(RVAL2GST_QUERY(self), &format, &seekable, &segment_start, &segment_end); return rb_ary_new3(4, GST_FORMAT2RVAL(format), CBOOL2RVAL(seekable), LL2NUM(segment_start), LL2NUM(segment_end)); }
static VALUE latency_parse(VALUE self) { GstClockTime min_latency; GstClockTime max_latency; gboolean live; gst_query_parse_latency(RVAL2GST_QUERY(self), &live, &min_latency, &max_latency); return rb_ary_new3(3, CBOOL2RVAL(live), ULL2NUM(min_latency), ULL2NUM(max_latency)); }
/* * Method: query(query) * query: a query type (see Gst::Query). * * Performs a query on the element. * * Returns: true if the query is performed, false otherwise. */ static VALUE rg_query(VALUE self, VALUE query) { VALUE result; ThreadData thread_data; QueryData *query_data; thread_data.element = SELF(self); thread_data.context = "query"; query_data = &(thread_data.data.query_data); query_data->query = RVAL2GST_QUERY(query); do_in_thread(query_thread_pool, &thread_data); result = CBOOL2RVAL(query_data->result); return result; }