static VALUE convert_initialize(VALUE self, VALUE src_format, VALUE value, VALUE dest_format) { GstQuery *query; query = gst_query_new_convert(GST_FORMAT2RVAL(src_format), NUM2LL(value), GST_FORMAT2RVAL(dest_format)); G_INITIALIZE(self, query); return Qnil; }
static VALUE duration_parse(VALUE self) { GstFormat format; gint64 duration; gst_message_parse_duration(SELF(self), &format, &duration); return rb_ary_new3(2, GST_FORMAT2RVAL(format), LL2NUM(duration)); }
static VALUE segment_done_parse(VALUE self) { GstFormat format; gint64 position; gst_message_parse_segment_done(SELF(self), &format, &position); return rb_ary_new3(2, GST_FORMAT2RVAL(format), LL2NUM(position)); }
static VALUE position_parse(VALUE self) { GstFormat format; gint64 cur; gst_query_parse_position(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 buffersize_parse(VALUE self) { GstFormat format; gint64 minsize; gint64 maxsize; gboolean async; gst_event_parse_buffer_size(RGST_EVENT(self), &format, &minsize, &maxsize, &async); return rb_ary_new3(4, GST_FORMAT2RVAL(format), LL2NUM(minsize), LL2NUM(maxsize), CBOOL2RVAL(async)); }
static VALUE newsegment_parse(VALUE self) { gboolean update; gdouble rate, applied_rate; GstFormat format; gint64 start, stop, position; gst_event_parse_new_segment_full(RGST_EVENT(self), &update, &rate, &applied_rate, &format, &start, &stop, &position); return rb_ary_new3(7, CBOOL2RVAL(update), DBL2NUM(update), DBL2NUM(rate), GST_FORMAT2RVAL(format), LL2NUM(start), LL2NUM(stop), LL2NUM(position)); }
static VALUE formats_parse(VALUE self) { VALUE ret; guint n_formats; guint i; gst_query_parse_formats_length(RVAL2GST_QUERY(self), &n_formats); ret = rb_ary_new2(n_formats); for (i = 0 ; i< n_formats; i++) { GstFormat format; gst_query_parse_formats_nth(RVAL2GST_QUERY(self), i, &format); rb_ary_push(ret, GST_FORMAT2RVAL(format)); } return ret; }
static VALUE seek_parse(VALUE self) { gdouble rate; GstFormat format; GstSeekFlags flags; GstSeekType start_type, stop_type; gint64 start, stop; gst_event_parse_seek(RGST_EVENT(self), &rate, &format, &flags, &start_type, &start, &stop_type, &stop); return rb_ary_new3(6, DBL2NUM(rate), GST_FORMAT2RVAL(format), GFLAGS2RVAL(start_type, GST_TYPE_SEEK_FLAGS), LL2NUM(start), GFLAGS2RVAL(stop_type, GST_TYPE_SEEK_FLAGS), LL2NUM(stop)); }