예제 #1
0
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;
}
예제 #2
0
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));
}
예제 #3
0
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));
}
예제 #4
0
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));
}
예제 #5
0
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));
}
예제 #6
0
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));
}
예제 #7
0
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));
}
예제 #8
0
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));
}
예제 #9
0
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));
}
예제 #10
0
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;
}
예제 #11
0
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));
}