gstreamer 1.0.3 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Rakefile +201 -3
- data/ext/gstreamer/extconf.rb +10 -10
- data/ext/gstreamer/misc.c +16 -15
- data/ext/gstreamer/rbgst-bin.c +75 -83
- data/ext/gstreamer/rbgst-buffer.c +91 -91
- data/ext/gstreamer/rbgst-bus.c +21 -21
- data/ext/gstreamer/rbgst-caps.c +98 -91
- data/ext/gstreamer/rbgst-child-proxy.c +19 -18
- data/ext/gstreamer/rbgst-clock.c +34 -32
- data/ext/gstreamer/rbgst-element-factory.c +79 -85
- data/ext/gstreamer/rbgst-element.c +245 -210
- data/ext/gstreamer/rbgst-event.c +18 -18
- data/ext/gstreamer/rbgst-ghost-pad.c +24 -21
- data/ext/gstreamer/rbgst-index-factory.c +31 -29
- data/ext/gstreamer/rbgst-install-plugins-context.c +86 -0
- data/ext/gstreamer/rbgst-install-plugins-return.c +45 -0
- data/ext/gstreamer/rbgst-install-plugins.c +45 -111
- data/ext/gstreamer/rbgst-message.c +15 -16
- data/ext/gstreamer/rbgst-mini-object.c +37 -37
- data/ext/gstreamer/rbgst-object.c +29 -26
- data/ext/gstreamer/rbgst-pad-template.c +36 -35
- data/ext/gstreamer/rbgst-pad.c +96 -96
- data/ext/gstreamer/rbgst-pipeline.c +32 -31
- data/ext/gstreamer/rbgst-plugin-feature.c +47 -48
- data/ext/gstreamer/rbgst-plugin.c +62 -64
- data/ext/gstreamer/rbgst-private.c +14 -15
- data/ext/gstreamer/rbgst-private.h +76 -16
- data/ext/gstreamer/rbgst-query.c +22 -20
- data/ext/gstreamer/rbgst-seek.c +22 -19
- data/ext/gstreamer/rbgst-static-caps.c +26 -24
- data/ext/gstreamer/rbgst-static-pad-template.c +27 -26
- data/ext/gstreamer/rbgst-structure.c +61 -59
- data/ext/gstreamer/rbgst-system-clock.c +23 -20
- data/ext/gstreamer/rbgst-type-find-factory.c +44 -43
- data/ext/gstreamer/rbgst-value.c +40 -28
- data/ext/gstreamer/rbgst-x-overlay.c +32 -31
- data/ext/gstreamer/rbgst.c +78 -128
- data/ext/gstreamer/rbgst.h +16 -16
- data/ext/gstreamer/rbgstclockentry.c +46 -43
- data/ext/gstreamer/rbgstformat.c +64 -61
- data/ext/gstreamer/rbgstindex.c +67 -64
- data/ext/gstreamer/rbgstindexentry.c +31 -28
- data/ext/gstreamer/rbgstparse.c +32 -29
- data/ext/gstreamer/rbgstquerytype.c +64 -61
- data/ext/gstreamer/rbgstregistry.c +79 -76
- data/ext/gstreamer/rbgsttag.c +34 -32
- data/ext/gstreamer/rbgsttagsetter.c +22 -19
- data/ext/gstreamer/rbgstxml.c +78 -75
- data/lib/gst.rb +15 -1
- data/test/test_buffer.rb +5 -2
- data/test/test_element.rb +7 -9
- data/test/test_value.rb +2 -2
- metadata +11 -11
- data/ChangeLog +0 -1202
- data/test/test_clock.rb +0 -7
data/ext/gstreamer/rbgst-event.c
CHANGED
@@ -1,26 +1,26 @@
|
|
1
|
+
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
|
1
2
|
/*
|
2
|
-
*
|
3
|
-
*
|
4
|
-
*
|
3
|
+
* Copyright (C) 2011 Ruby-GNOME2 Project Team
|
4
|
+
* Copyright (C) 2007 Ruby-GNOME2 Project Team
|
5
|
+
* Copyright (C) 2006 Sjoerd Simons <sjoerd@luon.net>
|
6
|
+
* Copyright (C) 2003, 2004 Laurent Sansonetti <lrz@gnome.org>
|
5
7
|
*
|
6
|
-
*
|
8
|
+
* This library is free software; you can redistribute it and/or
|
9
|
+
* modify it under the terms of the GNU Lesser General Public
|
10
|
+
* License as published by the Free Software Foundation; either
|
11
|
+
* version 2.1 of the License, or (at your option) any later version.
|
7
12
|
*
|
8
|
-
*
|
9
|
-
*
|
10
|
-
*
|
11
|
-
*
|
13
|
+
* This library is distributed in the hope that it will be useful,
|
14
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
15
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
16
|
+
* Lesser General Public License for more details.
|
12
17
|
*
|
13
|
-
*
|
14
|
-
*
|
15
|
-
*
|
16
|
-
*
|
17
|
-
*
|
18
|
-
* You should have received a copy of the GNU Lesser General Public
|
19
|
-
* License along with Ruby/GStreamer; if not, write to the Free Software
|
20
|
-
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
18
|
+
* You should have received a copy of the GNU Lesser General Public
|
19
|
+
* License along with this library; if not, write to the Free Software
|
20
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
21
|
+
* MA 02110-1301 USA
|
21
22
|
*/
|
22
23
|
|
23
|
-
#include "rbgst.h"
|
24
24
|
#include "rbgst-private.h"
|
25
25
|
|
26
26
|
/* Document-class: Gst::Event
|
@@ -312,7 +312,7 @@ rbgst_event_get_type(VALUE self)
|
|
312
312
|
}
|
313
313
|
|
314
314
|
void
|
315
|
-
Init_gst_event (
|
315
|
+
Init_gst_event (VALUE mGst)
|
316
316
|
{
|
317
317
|
table.type = GST_TYPE_EVENT;
|
318
318
|
table.get_superclass = get_superclass;
|
@@ -1,31 +1,34 @@
|
|
1
|
+
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
|
1
2
|
/*
|
2
|
-
*
|
3
|
-
*
|
3
|
+
* Copyright (C) 2011 Ruby-GNOME2 Project Team
|
4
|
+
* Copyright (C) 2006,2008 Sjoerd Simons <sjoerd@luon.net>
|
5
|
+
* Copyright (C) 2003, 2004 Laurent Sansonetti <lrz@gnome.org>
|
4
6
|
*
|
5
|
-
*
|
7
|
+
* This library is free software; you can redistribute it and/or
|
8
|
+
* modify it under the terms of the GNU Lesser General Public
|
9
|
+
* License as published by the Free Software Foundation; either
|
10
|
+
* version 2.1 of the License, or (at your option) any later version.
|
6
11
|
*
|
7
|
-
*
|
8
|
-
*
|
9
|
-
*
|
10
|
-
*
|
12
|
+
* This library is distributed in the hope that it will be useful,
|
13
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
15
|
+
* Lesser General Public License for more details.
|
11
16
|
*
|
12
|
-
*
|
13
|
-
*
|
14
|
-
*
|
15
|
-
*
|
16
|
-
*
|
17
|
-
* You should have received a copy of the GNU Lesser General Public
|
18
|
-
* License along with Ruby/GStreamer; if not, write to the Free Software
|
19
|
-
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
17
|
+
* You should have received a copy of the GNU Lesser General Public
|
18
|
+
* License along with this library; if not, write to the Free Software
|
19
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
20
|
+
* MA 02110-1301 USA
|
20
21
|
*/
|
21
22
|
|
22
|
-
#include "rbgst.h"
|
23
|
+
#include "rbgst-private.h"
|
24
|
+
|
25
|
+
#define RG_TARGET_NAMESPACE cGhostPad
|
23
26
|
|
24
27
|
static VALUE
|
25
|
-
|
28
|
+
rg_initialize(VALUE self, VALUE name, VALUE pad)
|
26
29
|
{
|
27
30
|
GstPad *gpad;
|
28
|
-
|
31
|
+
|
29
32
|
gpad = gst_ghost_pad_new(RVAL2CSTR(name), RVAL2GST_PAD(pad));
|
30
33
|
|
31
34
|
G_INITIALIZE(self, gpad);
|
@@ -34,9 +37,9 @@ rb_gst_ghost_pad_new(VALUE self, VALUE name, VALUE pad)
|
|
34
37
|
}
|
35
38
|
|
36
39
|
void
|
37
|
-
Init_gst_ghost_pad(
|
40
|
+
Init_gst_ghost_pad(VALUE mGst)
|
38
41
|
{
|
39
|
-
VALUE
|
42
|
+
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GST_TYPE_GHOST_PAD, "GhostPad", mGst);
|
40
43
|
|
41
|
-
|
44
|
+
RG_DEF_METHOD(initialize, 2);
|
42
45
|
}
|
@@ -1,26 +1,28 @@
|
|
1
|
+
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
|
1
2
|
/*
|
2
|
-
*
|
3
|
-
*
|
3
|
+
* Copyright (C) 2011 Ruby-GNOME2 Project Team
|
4
|
+
* Copyright (C) 2007 Ruby-GNOME2 Project Team
|
5
|
+
* Copyright (C) 2003, 2004 Laurent Sansonetti <lrz@gnome.org>
|
4
6
|
*
|
5
|
-
*
|
7
|
+
* This library is free software; you can redistribute it and/or
|
8
|
+
* modify it under the terms of the GNU Lesser General Public
|
9
|
+
* License as published by the Free Software Foundation; either
|
10
|
+
* version 2.1 of the License, or (at your option) any later version.
|
6
11
|
*
|
7
|
-
*
|
8
|
-
*
|
9
|
-
*
|
10
|
-
*
|
12
|
+
* This library is distributed in the hope that it will be useful,
|
13
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
15
|
+
* Lesser General Public License for more details.
|
11
16
|
*
|
12
|
-
*
|
13
|
-
*
|
14
|
-
*
|
15
|
-
*
|
16
|
-
*
|
17
|
-
* You should have received a copy of the GNU Lesser General Public
|
18
|
-
* License along with Ruby/GStreamer; if not, write to the Free Software
|
19
|
-
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
17
|
+
* You should have received a copy of the GNU Lesser General Public
|
18
|
+
* License along with this library; if not, write to the Free Software
|
19
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
20
|
+
* MA 02110-1301 USA
|
20
21
|
*/
|
21
22
|
|
22
|
-
#include "rbgst.h"
|
23
|
+
#include "rbgst-private.h"
|
23
24
|
|
25
|
+
#define RG_TARGET_NAMESPACE cIndexFactory
|
24
26
|
#define SELF(self) RVAL2GST_INDEX_FACTORY(self)
|
25
27
|
|
26
28
|
/* Class: Gst::IndexFactory
|
@@ -28,7 +30,7 @@
|
|
28
30
|
*/
|
29
31
|
|
30
32
|
static VALUE
|
31
|
-
|
33
|
+
rg_s_find(VALUE self, VALUE name)
|
32
34
|
{
|
33
35
|
return GOBJ2RVAL(gst_index_factory_find(RVAL2CSTR(name)));
|
34
36
|
}
|
@@ -37,31 +39,31 @@ s_find(VALUE self, VALUE name)
|
|
37
39
|
* Returns: a String representing the factory.
|
38
40
|
*/
|
39
41
|
static VALUE
|
40
|
-
|
42
|
+
rg_to_s (VALUE self)
|
41
43
|
{
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
44
|
+
GstIndexFactory *factory = RGST_INDEX_FACTORY (self);
|
45
|
+
return rb_str_new_with_format ("Index: %s (%s)",
|
46
|
+
GST_PLUGIN_FEATURE_NAME (factory),
|
47
|
+
factory->longdesc);
|
46
48
|
}
|
47
49
|
|
48
50
|
static VALUE
|
49
|
-
|
51
|
+
rg_description(VALUE self)
|
50
52
|
{
|
51
53
|
return CSTR2RVAL(SELF(self)->longdesc);
|
52
54
|
}
|
53
55
|
|
54
56
|
void
|
55
|
-
Init_gst_indexfactory (
|
57
|
+
Init_gst_indexfactory (VALUE mGst)
|
56
58
|
{
|
57
|
-
VALUE
|
59
|
+
VALUE RG_TARGET_NAMESPACE;
|
58
60
|
|
59
|
-
|
61
|
+
RG_TARGET_NAMESPACE = G_DEF_CLASS(GST_TYPE_INDEX_FACTORY,
|
60
62
|
"IndexFactory", mGst);
|
61
63
|
|
62
|
-
|
64
|
+
RG_DEF_SMETHOD(find, 1);
|
63
65
|
|
64
|
-
|
66
|
+
RG_DEF_METHOD(to_s, 0);
|
65
67
|
|
66
|
-
|
68
|
+
RG_DEF_METHOD(description, 0);
|
67
69
|
}
|
@@ -0,0 +1,86 @@
|
|
1
|
+
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
|
2
|
+
/*
|
3
|
+
* Copyright (C) 2011 Ruby-GNOME2 Project Team
|
4
|
+
*
|
5
|
+
* This library is free software; you can redistribute it and/or
|
6
|
+
* modify it under the terms of the GNU Lesser General Public
|
7
|
+
* License as published by the Free Software Foundation; either
|
8
|
+
* version 2.1 of the License, or (at your option) any later version.
|
9
|
+
*
|
10
|
+
* This library is distributed in the hope that it will be useful,
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
13
|
+
* Lesser General Public License for more details.
|
14
|
+
*
|
15
|
+
* You should have received a copy of the GNU Lesser General Public
|
16
|
+
* License along with this library; if not, write to the Free Software
|
17
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
18
|
+
* MA 02110-1301 USA
|
19
|
+
*/
|
20
|
+
|
21
|
+
#ifdef HAVE_GST_PBUTILS
|
22
|
+
#include "rbgst-private.h"
|
23
|
+
#include <gst/pbutils/pbutils-enumtypes.h>
|
24
|
+
#include <gst/pbutils/install-plugins.h>
|
25
|
+
|
26
|
+
#define RG_TARGET_NAMESPACE cInstallPluginsContext
|
27
|
+
|
28
|
+
static RGConvertTable context_table = {0};
|
29
|
+
static VALUE RG_TARGET_NAMESPACE;
|
30
|
+
|
31
|
+
static VALUE
|
32
|
+
context2robj(gpointer context)
|
33
|
+
{
|
34
|
+
return Data_Wrap_Struct(RG_TARGET_NAMESPACE, NULL,
|
35
|
+
gst_install_plugins_context_free,
|
36
|
+
(GstInstallPluginsContext *)context);
|
37
|
+
}
|
38
|
+
|
39
|
+
static gpointer
|
40
|
+
robj2context(VALUE object)
|
41
|
+
{
|
42
|
+
gpointer instance;
|
43
|
+
|
44
|
+
if (!RVAL2CBOOL(rb_obj_is_kind_of(object, RG_TARGET_NAMESPACE))) {
|
45
|
+
rb_raise(rb_eTypeError, "not a Gst::InstallPluginsContext");
|
46
|
+
}
|
47
|
+
Data_Get_Struct(object, GstInstallPluginsContext, instance);
|
48
|
+
return instance;
|
49
|
+
}
|
50
|
+
|
51
|
+
static VALUE
|
52
|
+
rg_initialize(VALUE self)
|
53
|
+
{
|
54
|
+
GstInstallPluginsContext *context;
|
55
|
+
|
56
|
+
context = gst_install_plugins_context_new();
|
57
|
+
G_INITIALIZE(self, context);
|
58
|
+
return Qnil;
|
59
|
+
}
|
60
|
+
|
61
|
+
static VALUE
|
62
|
+
rg_set_xid(VALUE self, VALUE xid)
|
63
|
+
{
|
64
|
+
GstInstallPluginsContext *context;
|
65
|
+
|
66
|
+
context = (GstInstallPluginsContext *)RVAL2GOBJ(self);
|
67
|
+
gst_install_plugins_context_set_xid(context, NUM2INT(xid));/*FIXME: segfault on ruby exit*/
|
68
|
+
return self;
|
69
|
+
}
|
70
|
+
|
71
|
+
void
|
72
|
+
Init_gst_install_plugins_context(VALUE mGst)
|
73
|
+
{
|
74
|
+
context_table.type = GST_TYPE_INSTALL_PLUGINS_CONTEXT;
|
75
|
+
context_table.instance2robj = context2robj;
|
76
|
+
context_table.robj2instance = robj2context;
|
77
|
+
RG_DEF_CONVERSION(&context_table);
|
78
|
+
|
79
|
+
RG_TARGET_NAMESPACE = G_DEF_CLASS(GST_TYPE_INSTALL_PLUGINS_CONTEXT,
|
80
|
+
"InstallPluginsContext", mGst);
|
81
|
+
|
82
|
+
RG_DEF_METHOD(initialize, 0);
|
83
|
+
RG_DEF_METHOD(set_xid, 1);
|
84
|
+
G_DEF_SETTERS(RG_TARGET_NAMESPACE);
|
85
|
+
}
|
86
|
+
#endif /* HAVE_GST_PBUTILS */
|
@@ -0,0 +1,45 @@
|
|
1
|
+
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
|
2
|
+
/*
|
3
|
+
* Copyright (C) 2011-2012 Ruby-GNOME2 Project Team
|
4
|
+
*
|
5
|
+
* This library is free software; you can redistribute it and/or
|
6
|
+
* modify it under the terms of the GNU Lesser General Public
|
7
|
+
* License as published by the Free Software Foundation; either
|
8
|
+
* version 2.1 of the License, or (at your option) any later version.
|
9
|
+
*
|
10
|
+
* This library is distributed in the hope that it will be useful,
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
13
|
+
* Lesser General Public License for more details.
|
14
|
+
*
|
15
|
+
* You should have received a copy of the GNU Lesser General Public
|
16
|
+
* License along with this library; if not, write to the Free Software
|
17
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
18
|
+
* MA 02110-1301 USA
|
19
|
+
*/
|
20
|
+
|
21
|
+
#ifdef HAVE_GST_PBUTILS
|
22
|
+
#include "rbgst-private.h"
|
23
|
+
#include <gst/pbutils/pbutils-enumtypes.h>
|
24
|
+
#include <gst/pbutils/install-plugins.h>
|
25
|
+
|
26
|
+
#define RG_TARGET_NAMESPACE cInstallPluginsReturn
|
27
|
+
|
28
|
+
static VALUE RG_TARGET_NAMESPACE;
|
29
|
+
|
30
|
+
static VALUE
|
31
|
+
rg_name(VALUE self)
|
32
|
+
{
|
33
|
+
return CSTR2RVAL(gst_install_plugins_return_get_name(
|
34
|
+
(GstInstallPluginsReturn)
|
35
|
+
RVAL2GENUM(self, GST_TYPE_INSTALL_PLUGINS_RETURN)));
|
36
|
+
}
|
37
|
+
|
38
|
+
void
|
39
|
+
Init_gst_install_plugins_return(VALUE mGst)
|
40
|
+
{
|
41
|
+
RG_TARGET_NAMESPACE = G_DEF_CLASS(GST_TYPE_INSTALL_PLUGINS_RETURN,
|
42
|
+
"InstallPluginsReturn", mGst);
|
43
|
+
RG_DEF_METHOD(name, 0);
|
44
|
+
}
|
45
|
+
#endif /* HAVE_GST_PBUTILS */
|
@@ -1,65 +1,55 @@
|
|
1
1
|
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
|
2
2
|
/*
|
3
|
-
*
|
3
|
+
* Copyright (C) 2011 Ruby-GNOME2 Project Team
|
4
4
|
*
|
5
|
-
*
|
5
|
+
* This library is free software; you can redistribute it and/or
|
6
|
+
* modify it under the terms of the GNU Lesser General Public
|
7
|
+
* License as published by the Free Software Foundation; either
|
8
|
+
* version 2.1 of the License, or (at your option) any later version.
|
6
9
|
*
|
7
|
-
*
|
8
|
-
*
|
9
|
-
*
|
10
|
-
*
|
10
|
+
* This library is distributed in the hope that it will be useful,
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
13
|
+
* Lesser General Public License for more details.
|
11
14
|
*
|
12
|
-
*
|
13
|
-
*
|
14
|
-
*
|
15
|
-
*
|
16
|
-
*
|
17
|
-
* You should have received a copy of the GNU Lesser General Public
|
18
|
-
* License along with Ruby/GStreamer; if not, write to the Free Software
|
19
|
-
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
15
|
+
* You should have received a copy of the GNU Lesser General Public
|
16
|
+
* License along with this library; if not, write to the Free Software
|
17
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
18
|
+
* MA 02110-1301 USA
|
20
19
|
*/
|
21
20
|
|
22
21
|
#ifdef HAVE_GST_PBUTILS
|
23
|
-
#include "rbgst.h"
|
24
22
|
#include "rbgst-private.h"
|
25
23
|
#include <gst/pbutils/pbutils-enumtypes.h>
|
26
24
|
#include <gst/pbutils/install-plugins.h>
|
27
25
|
|
28
|
-
|
29
|
-
static VALUE mGstInstallPlugins;
|
30
|
-
static VALUE rb_cGstInstallPluginsReturn;
|
31
|
-
static VALUE rb_cGstInstallPluginsContext;
|
26
|
+
#define RG_TARGET_NAMESPACE mInstallPlugins
|
32
27
|
|
33
|
-
static VALUE
|
34
|
-
|
35
|
-
{
|
36
|
-
return CSTR2RVAL(gst_install_plugins_return_get_name(
|
37
|
-
(GstInstallPluginsReturn)
|
38
|
-
RVAL2GENUM(self, GST_TYPE_INSTALL_PLUGINS_RETURN)));
|
39
|
-
}
|
28
|
+
static VALUE RG_TARGET_NAMESPACE;
|
29
|
+
static VALUE cInstallPluginsContext;
|
40
30
|
|
41
31
|
static void
|
42
32
|
gst_install_plugins_result_func(GstInstallPluginsReturn result, VALUE data)
|
43
33
|
{
|
44
34
|
rb_funcall(data, rb_intern("call"), 1,
|
45
35
|
GENUM2RVAL(result, GST_TYPE_INSTALL_PLUGINS_RETURN));
|
46
|
-
G_CHILD_REMOVE(
|
36
|
+
G_CHILD_REMOVE(RG_TARGET_NAMESPACE, data);
|
47
37
|
}
|
48
38
|
|
49
39
|
static VALUE
|
50
|
-
|
40
|
+
rg_s_supported_p(VALUE self)
|
51
41
|
{
|
52
42
|
return CBOOL2RVAL(gst_install_plugins_supported());
|
53
43
|
}
|
54
44
|
|
55
45
|
static VALUE
|
56
|
-
|
46
|
+
rg_s_progress_p(VALUE self)
|
57
47
|
{
|
58
48
|
return CBOOL2RVAL(gst_install_plugins_installation_in_progress());
|
59
49
|
}
|
60
50
|
|
61
51
|
static VALUE
|
62
|
-
|
52
|
+
rg_s_async(int argc, VALUE *argv, VALUE self)
|
63
53
|
{
|
64
54
|
VALUE details, rcontext, block;
|
65
55
|
int length, i;
|
@@ -75,19 +65,19 @@ async(int argc, VALUE *argv, VALUE self)
|
|
75
65
|
str = RARRAY_PTR(details);
|
76
66
|
carray= ALLOCA_N (char *, length+1);
|
77
67
|
for (i = 0; i<length; i++) {
|
78
|
-
|
79
|
-
|
80
|
-
|
68
|
+
carray[i] = RVAL2CSTR(str[i]);
|
69
|
+
}
|
70
|
+
carray[length] = NULL;
|
81
71
|
|
82
72
|
if (!NIL_P(rcontext)) {
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
73
|
+
if (!RVAL2CBOOL(rb_obj_is_kind_of(rcontext, cInstallPluginsContext)))
|
74
|
+
rb_raise(rb_eTypeError,
|
75
|
+
"2nd parameter is not Gst::InstallPluginsContext");
|
76
|
+
context = (GstInstallPluginsContext *)RVAL2GOBJ(rcontext);
|
77
|
+
}
|
78
|
+
else {
|
79
|
+
context = NULL;
|
80
|
+
}
|
91
81
|
|
92
82
|
block = rb_block_proc();
|
93
83
|
G_CHILD_ADD(self, block);
|
@@ -95,11 +85,11 @@ async(int argc, VALUE *argv, VALUE self)
|
|
95
85
|
result = gst_install_plugins_async(carray, context,
|
96
86
|
(GstInstallPluginsResultFunc)gst_install_plugins_result_func,
|
97
87
|
(gpointer)block);
|
98
|
-
return
|
88
|
+
return GENUM2RVAL(result, GST_TYPE_INSTALL_PLUGINS_RETURN);
|
99
89
|
}
|
100
90
|
|
101
91
|
static VALUE
|
102
|
-
|
92
|
+
rg_s_sync(int argc, VALUE *argv, VALUE self)
|
103
93
|
{
|
104
94
|
VALUE details, context;
|
105
95
|
int length, i;
|
@@ -113,79 +103,23 @@ sync(int argc, VALUE *argv, VALUE self)
|
|
113
103
|
str = RARRAY_PTR(details);
|
114
104
|
carray= ALLOCA_N (char *, length+1);
|
115
105
|
for (i = 0; i<length; i++) {
|
116
|
-
|
117
|
-
}
|
118
|
-
carray[length] = NULL;
|
119
|
-
|
120
|
-
result = gst_install_plugins_sync(carray, NULL);
|
121
|
-
return GENUM2RVAL(result, GST_TYPE_INSTALL_PLUGINS_RETURN);
|
122
|
-
}
|
123
|
-
|
124
|
-
static VALUE
|
125
|
-
context2robj(gpointer context)
|
126
|
-
{
|
127
|
-
return Data_Wrap_Struct(rb_cGstInstallPluginsContext, NULL,
|
128
|
-
gst_install_plugins_context_free,
|
129
|
-
(GstInstallPluginsContext *)context);
|
130
|
-
}
|
131
|
-
|
132
|
-
static gpointer
|
133
|
-
robj2context(VALUE object)
|
134
|
-
{
|
135
|
-
gpointer instance;
|
136
|
-
|
137
|
-
if (!RVAL2CBOOL(rb_obj_is_kind_of(object, rb_cGstInstallPluginsContext))) {
|
138
|
-
rb_raise(rb_eTypeError, "not a Gst::InstallPluginsContext");
|
106
|
+
carray[i] = RVAL2CSTR(str[i]);
|
139
107
|
}
|
140
|
-
|
141
|
-
return instance;
|
142
|
-
}
|
143
|
-
|
144
|
-
static VALUE
|
145
|
-
context_initialize(VALUE self)
|
146
|
-
{
|
147
|
-
GstInstallPluginsContext *context;
|
108
|
+
carray[length] = NULL;
|
148
109
|
|
149
|
-
|
150
|
-
|
151
|
-
return Qnil;
|
152
|
-
}
|
153
|
-
|
154
|
-
static VALUE
|
155
|
-
context_set_xid(VALUE self, VALUE xid)
|
156
|
-
{
|
157
|
-
GstInstallPluginsContext *context;
|
158
|
-
|
159
|
-
context = (GstInstallPluginsContext *)RVAL2GOBJ(self);
|
160
|
-
gst_install_plugins_context_set_xid(context, NUM2INT(xid));/*FIXME: segfault on ruby exit*/
|
161
|
-
return self;
|
110
|
+
result = gst_install_plugins_sync(carray, NULL);
|
111
|
+
return GENUM2RVAL(result, GST_TYPE_INSTALL_PLUGINS_RETURN);
|
162
112
|
}
|
163
113
|
|
164
114
|
void
|
165
|
-
Init_gst_install_plugins(
|
115
|
+
Init_gst_install_plugins(VALUE mGst)
|
166
116
|
{
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
rb_define_singleton_method(mGstInstallPlugins, "supported?", supported, 0);
|
175
|
-
rb_define_singleton_method(mGstInstallPlugins, "progress?", progress, 0);
|
176
|
-
rb_define_singleton_method(mGstInstallPlugins, "async", async, -1);
|
177
|
-
rb_define_singleton_method(mGstInstallPlugins, "sync", sync, -1);
|
178
|
-
|
179
|
-
context_table.type = GST_TYPE_INSTALL_PLUGINS_CONTEXT;
|
180
|
-
context_table.instance2robj = context2robj;
|
181
|
-
context_table.robj2instance = robj2context;
|
182
|
-
RG_DEF_CONVERSION(&context_table);
|
183
|
-
rb_cGstInstallPluginsContext = G_DEF_CLASS(GST_TYPE_INSTALL_PLUGINS_CONTEXT,
|
184
|
-
"InstallPluginsContext", mGst);
|
185
|
-
rb_define_method(rb_cGstInstallPluginsContext, "initialize",
|
186
|
-
context_initialize, 0);
|
187
|
-
rb_define_method(rb_cGstInstallPluginsContext, "set_xid",
|
188
|
-
context_set_xid, 1);
|
189
|
-
G_DEF_SETTERS(rb_cGstInstallPluginsContext);
|
117
|
+
RG_TARGET_NAMESPACE = rb_define_module_under(mGst, "InstallPlugins");
|
118
|
+
cInstallPluginsContext = rb_const_get(mGst, rb_intern("InstallPluginsContext"));
|
119
|
+
|
120
|
+
RG_DEF_SMETHOD_P(supported, 0);
|
121
|
+
RG_DEF_SMETHOD_P(progress, 0);
|
122
|
+
RG_DEF_SMETHOD(async, -1);
|
123
|
+
RG_DEF_SMETHOD(sync, -1);
|
190
124
|
}
|
191
125
|
#endif /* HAVE_GST_PBUTILS */
|