gstreamer 1.2.6 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (92) hide show
  1. data/Rakefile +78 -39
  2. data/ext/gstreamer/extconf.rb +8 -22
  3. data/ext/gstreamer/rbgst.c +82 -194
  4. data/lib/gst/base_loader.rb +20 -0
  5. data/lib/gst/bin.rb +32 -0
  6. data/lib/gst/bus.rb +24 -0
  7. data/lib/gst/element.rb +48 -0
  8. data/lib/gst.rb +87 -22
  9. data/sample/helloworld.rb +75 -0
  10. data/sample/mp3parselaunch.rb +74 -0
  11. data/sample/queue.rb +92 -0
  12. data/sample/typefind.rb +101 -0
  13. metadata +29 -84
  14. data/README +0 -33
  15. data/ext/gstreamer/misc.c +0 -63
  16. data/ext/gstreamer/rbgst-bin.c +0 -456
  17. data/ext/gstreamer/rbgst-buffer.c +0 -363
  18. data/ext/gstreamer/rbgst-bus.c +0 -92
  19. data/ext/gstreamer/rbgst-caps.c +0 -446
  20. data/ext/gstreamer/rbgst-child-proxy.c +0 -34
  21. data/ext/gstreamer/rbgst-clock.c +0 -108
  22. data/ext/gstreamer/rbgst-element-factory.c +0 -249
  23. data/ext/gstreamer/rbgst-element.c +0 -1106
  24. data/ext/gstreamer/rbgst-event.c +0 -352
  25. data/ext/gstreamer/rbgst-ghost-pad.c +0 -45
  26. data/ext/gstreamer/rbgst-index-factory.c +0 -69
  27. data/ext/gstreamer/rbgst-install-plugins-context.c +0 -87
  28. data/ext/gstreamer/rbgst-install-plugins-return.c +0 -45
  29. data/ext/gstreamer/rbgst-install-plugins.c +0 -125
  30. data/ext/gstreamer/rbgst-message.c +0 -785
  31. data/ext/gstreamer/rbgst-mini-object.c +0 -221
  32. data/ext/gstreamer/rbgst-object.c +0 -81
  33. data/ext/gstreamer/rbgst-pad-template.c +0 -125
  34. data/ext/gstreamer/rbgst-pad.c +0 -336
  35. data/ext/gstreamer/rbgst-pipeline.c +0 -91
  36. data/ext/gstreamer/rbgst-plugin-feature.c +0 -131
  37. data/ext/gstreamer/rbgst-plugin.c +0 -162
  38. data/ext/gstreamer/rbgst-private.c +0 -88
  39. data/ext/gstreamer/rbgst-private.h +0 -97
  40. data/ext/gstreamer/rbgst-query.c +0 -291
  41. data/ext/gstreamer/rbgst-seek.c +0 -39
  42. data/ext/gstreamer/rbgst-static-caps.c +0 -49
  43. data/ext/gstreamer/rbgst-static-pad-template.c +0 -65
  44. data/ext/gstreamer/rbgst-structure.c +0 -300
  45. data/ext/gstreamer/rbgst-system-clock.c +0 -48
  46. data/ext/gstreamer/rbgst-type-find-factory.c +0 -125
  47. data/ext/gstreamer/rbgst-value.c +0 -527
  48. data/ext/gstreamer/rbgst-x-overlay.c +0 -131
  49. data/ext/gstreamer/rbgst.h +0 -197
  50. data/ext/gstreamer/rbgstclockentry.c +0 -271
  51. data/ext/gstreamer/rbgstformat.c +0 -162
  52. data/ext/gstreamer/rbgstindex.c +0 -315
  53. data/ext/gstreamer/rbgstindexentry.c +0 -99
  54. data/ext/gstreamer/rbgstparse.c +0 -69
  55. data/ext/gstreamer/rbgstquerytype.c +0 -162
  56. data/ext/gstreamer/rbgstregistry.c +0 -288
  57. data/ext/gstreamer/rbgsttag.c +0 -113
  58. data/ext/gstreamer/rbgsttagsetter.c +0 -53
  59. data/ext/gstreamer/rbgstxml.c +0 -192
  60. data/sample/audio-player.rb +0 -54
  61. data/sample/gst-gi.rb +0 -55
  62. data/sample/gst-inspect.rb +0 -417
  63. data/sample/install-plugins.rb +0 -40
  64. data/sample/media-type.rb +0 -55
  65. data/sample/media-type2.rb +0 -268
  66. data/sample/ogg-audio-player.rb +0 -54
  67. data/sample/type-find.rb +0 -46
  68. data/sample/video-player.rb +0 -57
  69. data/sample/xml-player.rb +0 -60
  70. data/test/gst-test-utils.rb +0 -18
  71. data/test/run-test.rb +0 -25
  72. data/test/test_bin.rb +0 -167
  73. data/test/test_buffer.rb +0 -185
  74. data/test/test_caps.rb +0 -24
  75. data/test/test_element.rb +0 -85
  76. data/test/test_element_factory.rb +0 -28
  77. data/test/test_event.rb +0 -10
  78. data/test/test_index_factory.rb +0 -7
  79. data/test/test_install-plugins.rb +0 -18
  80. data/test/test_message.rb +0 -191
  81. data/test/test_mini_object.rb +0 -38
  82. data/test/test_object.rb +0 -10
  83. data/test/test_pad.rb +0 -68
  84. data/test/test_plugin.rb +0 -6
  85. data/test/test_plugin_feature.rb +0 -20
  86. data/test/test_seek.rb +0 -17
  87. data/test/test_static_caps.rb +0 -18
  88. data/test/test_static_pad_template.rb +0 -16
  89. data/test/test_structure.rb +0 -159
  90. data/test/test_thread_handling.rb +0 -58
  91. data/test/test_type_find_factory.rb +0 -8
  92. data/test/test_value.rb +0 -69
@@ -1,221 +0,0 @@
1
- /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
- /*
3
- * Copyright (C) 2011-2013 Ruby-GNOME2 Project Team
4
- * Copyright (C) 2007 Ruby-GNOME2 Project Team
5
- *
6
- * This library is free software; you can redistribute it and/or
7
- * modify it under the terms of the GNU Lesser General Public
8
- * License as published by the Free Software Foundation; either
9
- * version 2.1 of the License, or (at your option) any later version.
10
- *
11
- * This library is distributed in the hope that it will be useful,
12
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
- * Lesser General Public License for more details.
15
- *
16
- * You should have received a copy of the GNU Lesser General Public
17
- * License along with this library; if not, write to the Free Software
18
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
- * MA 02110-1301 USA
20
- */
21
-
22
- #include "rbgst-private.h"
23
-
24
- /* Class: Gst::MiniObject
25
- * Base class for refcounted lightweight objects.
26
- */
27
-
28
- #define RG_TARGET_NAMESPACE rb_cGstMiniObject
29
- #define SELF(object) (RVAL2GST_MINI_OBJ(object))
30
- #define RVAL2GST_FLAGS(flags) \
31
- (RVAL2GFLAGS(flags, GST_TYPE_MINI_OBJECT_FLAGS))
32
- #define GST_FLAGS2RVAL(flags) \
33
- (GFLAGS2RVAL(flags, GST_TYPE_MINI_OBJECT_FLAGS))
34
-
35
- VALUE RG_TARGET_NAMESPACE;
36
-
37
- void
38
- _rbgst_mini_object_free(void *ptr)
39
- {
40
- if (ptr) {
41
- gst_mini_object_unref((GstMiniObject *)ptr);
42
- }
43
- }
44
-
45
- static VALUE
46
- rbgst_mini_object_get_superclass(G_GNUC_UNUSED gpointer user_data)
47
- {
48
- return rb_cObject;
49
- }
50
-
51
- static VALUE
52
- initialize_with_abstract_check(int argc, VALUE *argv, VALUE self)
53
- {
54
- GType gtype = CLASS2GTYPE(CLASS_OF(self));
55
-
56
- if (G_TYPE_IS_ABSTRACT(gtype))
57
- rb_raise(rb_eTypeError, "initializing abstract class");
58
-
59
- return rb_call_super(argc, argv);
60
- }
61
-
62
- static void
63
- rbgst_mini_object_type_init_hook(VALUE klass, G_GNUC_UNUSED gpointer user_data)
64
- {
65
- if (G_TYPE_IS_ABSTRACT(CLASS2GTYPE(klass)))
66
- rbg_define_method(klass, "initialize",
67
- initialize_with_abstract_check, -1);
68
- }
69
-
70
- static VALUE
71
- gvalue2rvalue(const GValue *value, G_GNUC_UNUSED gpointer user_data)
72
- {
73
- GstMiniObject* obj;
74
- obj = gst_value_get_mini_object(value);
75
- return obj ? GOBJ2RVAL(obj) : Qnil;
76
- }
77
-
78
- static void
79
- rvalue2gvalue(VALUE value, GValue *result, G_GNUC_UNUSED gpointer user_data)
80
- {
81
- gst_value_set_mini_object(result, NIL_P(value) ? NULL : RVAL2GOBJ(value));
82
- }
83
-
84
- static void
85
- rbgst_mini_object_initialize(VALUE object, gpointer instance,
86
- G_GNUC_UNUSED gpointer user_data)
87
- {
88
- DATA_PTR(object) = instance;
89
- }
90
-
91
- static gpointer
92
- rbgst_mini_object_robj2instance(VALUE object, G_GNUC_UNUSED gpointer user_data)
93
- {
94
- gpointer instance;
95
-
96
- if (!RVAL2CBOOL(rb_obj_is_kind_of(object, RG_TARGET_NAMESPACE))) {
97
- rb_raise(rb_eTypeError, "not a Gst::MiniObject");
98
- }
99
- Data_Get_Struct(object, GstMiniObject, instance);
100
- return instance;
101
- }
102
-
103
- static void
104
- rbgst_mini_object_define_class_if_need(VALUE klass, GType type)
105
- {
106
- _rbgst_define_class_if_need(klass, type, NULL);
107
- }
108
-
109
- static VALUE
110
- rbgst_mini_object_instance2robj(gpointer instance,
111
- G_GNUC_UNUSED gpointer user_data)
112
- {
113
- VALUE klass;
114
- GType type;
115
-
116
- type = G_TYPE_FROM_INSTANCE(instance);
117
- klass = GTYPE2CLASS(type);
118
- rbgst_mini_object_define_class_if_need(klass, type);
119
- gst_mini_object_ref(instance);
120
- return Data_Wrap_Struct(klass, NULL, _rbgst_mini_object_free, instance);
121
- }
122
-
123
- static void
124
- rbgst_mini_object_unref(gpointer instance, G_GNUC_UNUSED gpointer user_data)
125
- {
126
- gst_mini_object_unref(instance);
127
- }
128
-
129
- static VALUE
130
- s_allocate(VALUE klass)
131
- {
132
- return Data_Wrap_Struct(klass, NULL, _rbgst_mini_object_free, NULL);
133
- }
134
-
135
- static VALUE
136
- rg_flags(VALUE self)
137
- {
138
- return GST_FLAGS2RVAL(GST_MINI_OBJECT_FLAGS(SELF(self)));
139
- }
140
-
141
- static VALUE
142
- rg_set_flags(VALUE self, VALUE flag)
143
- {
144
- GST_MINI_OBJECT_FLAGS(SELF(self)) = RVAL2GST_FLAGS(flag);
145
- return Qnil;
146
- }
147
-
148
- static VALUE
149
- rg_raise_flag(VALUE self, VALUE flag)
150
- {
151
- GST_MINI_OBJECT_FLAG_SET(SELF(self), RVAL2GST_FLAGS(flag));
152
- return Qnil;
153
- }
154
-
155
- static VALUE
156
- rg_lower_flag(VALUE self, VALUE flag)
157
- {
158
- GST_MINI_OBJECT_FLAG_UNSET(SELF(self), RVAL2GST_FLAGS(flag));
159
- return Qnil;
160
- }
161
-
162
- static VALUE
163
- rg_flag_raised_p(VALUE self, VALUE flag)
164
- {
165
- return CBOOL2RVAL(GST_MINI_OBJECT_FLAG_IS_SET(SELF(self),
166
- RVAL2GST_FLAGS(flag)));
167
- }
168
-
169
- static VALUE
170
- rg_writable_p(VALUE self)
171
- {
172
- return CBOOL2RVAL(gst_mini_object_is_writable(SELF(self)));
173
- }
174
-
175
- static VALUE
176
- rg_writable_bang(VALUE self)
177
- {
178
- GstMiniObject *original, *writable;
179
-
180
- original = SELF(self);
181
- writable = gst_mini_object_make_writable(original);
182
- DATA_PTR(self) = writable;
183
- if (original == writable)
184
- gst_mini_object_unref(original);
185
- return self;
186
- }
187
-
188
- void
189
- Init_gst_mini_object(VALUE mGst)
190
- {
191
- RGConvertTable table;
192
-
193
- memset(&table, 0, sizeof(RGConvertTable));
194
- table.type = GST_TYPE_MINI_OBJECT;
195
- table.get_superclass = rbgst_mini_object_get_superclass;
196
- table.type_init_hook = rbgst_mini_object_type_init_hook;
197
- table.rvalue2gvalue = rvalue2gvalue;
198
- table.gvalue2rvalue = gvalue2rvalue;
199
- table.initialize = rbgst_mini_object_initialize;
200
- table.robj2instance = rbgst_mini_object_robj2instance;
201
- table.instance2robj = rbgst_mini_object_instance2robj;
202
- table.unref = rbgst_mini_object_unref;
203
-
204
- RG_DEF_CONVERSION(&table);
205
-
206
- RG_TARGET_NAMESPACE = G_DEF_CLASS(GST_TYPE_MINI_OBJECT, "MiniObject", mGst);
207
-
208
- G_DEF_CLASS(GST_TYPE_MINI_OBJECT_FLAGS, "Flags", RG_TARGET_NAMESPACE);
209
- G_DEF_CONSTANTS(RG_TARGET_NAMESPACE, GST_TYPE_MINI_OBJECT_FLAGS,
210
- "GST_MINI_OBJECT_");
211
-
212
- rb_define_alloc_func(RG_TARGET_NAMESPACE, s_allocate);
213
-
214
- RG_DEF_METHOD(flags, 0);
215
- RG_DEF_METHOD(set_flags, 1);
216
- RG_DEF_METHOD(raise_flag, 1);
217
- RG_DEF_METHOD(lower_flag, 1);
218
- RG_DEF_METHOD_P(flag_raised, 1);
219
- RG_DEF_METHOD_P(writable, 0);
220
- RG_DEF_METHOD_BANG(writable, 0);
221
- }
@@ -1,81 +0,0 @@
1
- /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
- /*
3
- * Copyright (C) 2011-2013 Ruby-GNOME2 Project Team
4
- * Copyright (C) 2007 Ruby-GNOME2 Project Team
5
- * Copyright (C) 2003, 2004 Laurent Sansonetti <lrz@gnome.org>
6
- *
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.
11
- *
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.
16
- *
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
21
- */
22
-
23
- #include "rbgst-private.h"
24
-
25
- #define RG_TARGET_NAMESPACE cObject
26
- #define SELF(self) (RVAL2GST_OBJ(self))
27
-
28
- /* Class: Gst::Object
29
- * Basis for the GST object hierarchy.
30
- */
31
-
32
- VALUE
33
- rbgst_object_instance2robj(gpointer instance, G_GNUC_UNUSED gpointer user_data)
34
- {
35
- if (GST_OBJECT_IS_FLOATING(instance)) {
36
- gst_object_ref(instance);
37
- gst_object_sink(instance);
38
- }
39
-
40
- return rbgobj_get_ruby_object_from_gobject(instance, TRUE);
41
- }
42
-
43
- static void
44
- rbgst_object_initialize(VALUE obj, gpointer cobj,
45
- G_GNUC_UNUSED gpointer user_data)
46
- {
47
- if (GST_OBJECT_IS_FLOATING(cobj)) {
48
- gst_object_ref(cobj);
49
- gst_object_sink(cobj);
50
- }
51
-
52
- rbgobj_gobject_initialize(obj, cobj);
53
- }
54
-
55
- static VALUE
56
- rg_set_name(VALUE self, VALUE name)
57
- {
58
- return CBOOL2RVAL(gst_object_set_name(SELF(self), RVAL2CSTR(name)));
59
- }
60
-
61
- void
62
- Init_gst_object(VALUE mGst)
63
- {
64
- VALUE RG_TARGET_NAMESPACE;
65
- RGConvertTable table;
66
-
67
- memset(&table, 0, sizeof(table));
68
- table.type = GST_TYPE_OBJECT;
69
- table.klass = Qnil;
70
- table.instance2robj = rbgst_object_instance2robj;
71
- table.initialize = rbgst_object_initialize;
72
-
73
- RG_DEF_CONVERSION(&table);
74
-
75
- RG_TARGET_NAMESPACE = G_DEF_CLASS(GST_TYPE_OBJECT, "Object", mGst);
76
-
77
- G_REPLACE_SET_PROPERTY(RG_TARGET_NAMESPACE, "name", rg_set_name, 1);
78
-
79
- G_DEF_CLASS(GST_TYPE_OBJECT_FLAGS, "Flags", RG_TARGET_NAMESPACE);
80
- G_DEF_CONSTANTS(RG_TARGET_NAMESPACE, GST_TYPE_OBJECT_FLAGS, "GST_");
81
- }
@@ -1,125 +0,0 @@
1
- /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
- /*
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>
6
- *
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.
11
- *
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.
16
- *
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
21
- */
22
-
23
- #include "rbgst-private.h"
24
-
25
- #define RG_TARGET_NAMESPACE cPadTemplate
26
- #define SELF(self) RVAL2GST_PAD_TEMPLATE(self)
27
-
28
- /* Class: Gst::PadTemplate
29
- * Describe the media type of a Gst::Pad.
30
- */
31
-
32
- /*
33
- * Method: name
34
- *
35
- * Gets the name of the pad template.
36
- * This overrides Gst::Object#name.
37
- *
38
- * Returns: the name of the pad template.
39
- */
40
- static VALUE
41
- rg_name(VALUE self)
42
- {
43
- /*
44
- * We can't call Gst::Object#name since the real name
45
- * of the pad template is in the "name_template" field of
46
- * GstPadTemplate.
47
- */
48
- return CSTR2RVAL(GST_PAD_TEMPLATE_NAME_TEMPLATE(SELF(self)));
49
- }
50
-
51
- /* Method: presence
52
- * Returns: the pad's presence (see Gst::Pad::Presence).
53
- */
54
- static VALUE
55
- rg_presence(VALUE self)
56
- {
57
- return GENUM2RVAL(GST_PAD_TEMPLATE_PRESENCE(SELF(self)),
58
- GST_TYPE_PAD_PRESENCE);
59
- }
60
-
61
- /* Method: direction
62
- * Returns: the pad's direction (see Gst::Pad::Direction).
63
- */
64
- static VALUE
65
- rg_direction(VALUE self)
66
- {
67
- return GENUM2RVAL(GST_PAD_TEMPLATE_DIRECTION(SELF(self)),
68
- GST_TYPE_PAD_DIRECTION);
69
- }
70
-
71
- /*
72
- * Method: caps
73
- *
74
- * Gets the capabilities of the pad template element.
75
- *
76
- * Returns: a Gst::Caps object.
77
- */
78
- static VALUE
79
- rg_caps(VALUE self)
80
- {
81
- return GST_CAPS2RVAL(gst_pad_template_get_caps(RGST_PAD_TEMPLATE(self)));
82
- }
83
-
84
- /*
85
- * Method: each_caps { |caps| ... }
86
- *
87
- * Calls the block for each capability of the pad template,
88
- * passing a reference to the Gst::Caps object as parameter.
89
- *
90
- * Returns: always nil.
91
- */
92
- static VALUE
93
- rg_each_caps(VALUE self)
94
- {
95
- return rb_ary_yield(rg_caps(self));
96
- }
97
-
98
- /* Method: has_caps?
99
- * Returns: true if the pad template has capabilities, false otherwise.
100
- */
101
- static VALUE
102
- rg_has_caps_p(VALUE self)
103
- {
104
- return CBOOL2RVAL(SELF(self)->caps != NULL);
105
- }
106
-
107
- void
108
- Init_gst_pad_template (VALUE mGst)
109
- {
110
- VALUE RG_TARGET_NAMESPACE;
111
-
112
- RG_TARGET_NAMESPACE = G_DEF_CLASS(GST_TYPE_PAD_TEMPLATE, "PadTemplate", mGst);
113
-
114
- RG_DEF_METHOD(name, 0);
115
- RG_DEF_METHOD(presence, 0);
116
- RG_DEF_METHOD(direction, 0);
117
- RG_DEF_METHOD(caps, 0);
118
- RG_DEF_METHOD(each_caps, 0);
119
- RG_DEF_METHOD_P(has_caps, 0);
120
- RG_DEF_ALIAS("have_caps?", "has_caps?");
121
-
122
- G_DEF_CLASS(GST_TYPE_PAD_TEMPLATE_FLAGS, "Flags", RG_TARGET_NAMESPACE);
123
- G_DEF_CONSTANTS(RG_TARGET_NAMESPACE, GST_TYPE_PAD_TEMPLATE_FLAGS,
124
- "GST_PAD_TEMPLATE_");
125
- }