gstreamer 0.90.6
Sign up to get free protection for your applications and to get access to all the features.
- data/ChangeLog +1157 -0
- data/README +33 -0
- data/Rakefile +15 -0
- data/ext/gstreamer/Makefile +162 -0
- data/ext/gstreamer/depend +5 -0
- data/ext/gstreamer/extconf.rb +63 -0
- data/ext/gstreamer/gst.so +0 -0
- data/ext/gstreamer/misc.c +62 -0
- data/ext/gstreamer/misc.o +0 -0
- data/ext/gstreamer/rbgst-bin.c +466 -0
- data/ext/gstreamer/rbgst-bin.o +0 -0
- data/ext/gstreamer/rbgst-buffer.c +365 -0
- data/ext/gstreamer/rbgst-buffer.o +0 -0
- data/ext/gstreamer/rbgst-bus.c +92 -0
- data/ext/gstreamer/rbgst-bus.o +0 -0
- data/ext/gstreamer/rbgst-caps.c +441 -0
- data/ext/gstreamer/rbgst-caps.o +0 -0
- data/ext/gstreamer/rbgst-child-proxy.c +33 -0
- data/ext/gstreamer/rbgst-child-proxy.o +0 -0
- data/ext/gstreamer/rbgst-clock.c +108 -0
- data/ext/gstreamer/rbgst-clock.o +0 -0
- data/ext/gstreamer/rbgst-element-factory.c +255 -0
- data/ext/gstreamer/rbgst-element-factory.o +0 -0
- data/ext/gstreamer/rbgst-element.c +1053 -0
- data/ext/gstreamer/rbgst-element.o +0 -0
- data/ext/gstreamer/rbgst-event.c +351 -0
- data/ext/gstreamer/rbgst-event.o +0 -0
- data/ext/gstreamer/rbgst-ghost-pad.c +42 -0
- data/ext/gstreamer/rbgst-ghost-pad.o +0 -0
- data/ext/gstreamer/rbgst-index-factory.c +67 -0
- data/ext/gstreamer/rbgst-index-factory.o +0 -0
- data/ext/gstreamer/rbgst-message.c +784 -0
- data/ext/gstreamer/rbgst-message.o +0 -0
- data/ext/gstreamer/rbgst-mini-object.c +220 -0
- data/ext/gstreamer/rbgst-mini-object.o +0 -0
- data/ext/gstreamer/rbgst-object.c +81 -0
- data/ext/gstreamer/rbgst-object.o +0 -0
- data/ext/gstreamer/rbgst-pad-template.c +124 -0
- data/ext/gstreamer/rbgst-pad-template.o +0 -0
- data/ext/gstreamer/rbgst-pad.c +338 -0
- data/ext/gstreamer/rbgst-pad.o +0 -0
- data/ext/gstreamer/rbgst-pipeline.c +90 -0
- data/ext/gstreamer/rbgst-pipeline.o +0 -0
- data/ext/gstreamer/rbgst-plugin-feature.c +134 -0
- data/ext/gstreamer/rbgst-plugin-feature.o +0 -0
- data/ext/gstreamer/rbgst-plugin.c +164 -0
- data/ext/gstreamer/rbgst-plugin.o +0 -0
- data/ext/gstreamer/rbgst-private.c +89 -0
- data/ext/gstreamer/rbgst-private.h +37 -0
- data/ext/gstreamer/rbgst-private.o +0 -0
- data/ext/gstreamer/rbgst-query.c +289 -0
- data/ext/gstreamer/rbgst-query.o +0 -0
- data/ext/gstreamer/rbgst-seek.c +36 -0
- data/ext/gstreamer/rbgst-seek.o +0 -0
- data/ext/gstreamer/rbgst-static-caps.c +49 -0
- data/ext/gstreamer/rbgst-static-caps.o +0 -0
- data/ext/gstreamer/rbgst-static-pad-template.c +64 -0
- data/ext/gstreamer/rbgst-static-pad-template.o +0 -0
- data/ext/gstreamer/rbgst-structure.c +300 -0
- data/ext/gstreamer/rbgst-structure.o +0 -0
- data/ext/gstreamer/rbgst-system-clock.c +45 -0
- data/ext/gstreamer/rbgst-system-clock.o +0 -0
- data/ext/gstreamer/rbgst-type-find-factory.c +124 -0
- data/ext/gstreamer/rbgst-type-find-factory.o +0 -0
- data/ext/gstreamer/rbgst-value.c +517 -0
- data/ext/gstreamer/rbgst-value.o +0 -0
- data/ext/gstreamer/rbgst-x-overlay.c +132 -0
- data/ext/gstreamer/rbgst-x-overlay.o +0 -0
- data/ext/gstreamer/rbgst.c +279 -0
- data/ext/gstreamer/rbgst.h +197 -0
- data/ext/gstreamer/rbgst.o +0 -0
- data/ext/gstreamer/rbgstclockentry.c +268 -0
- data/ext/gstreamer/rbgstclockentry.o +0 -0
- data/ext/gstreamer/rbgstformat.c +159 -0
- data/ext/gstreamer/rbgstformat.o +0 -0
- data/ext/gstreamer/rbgstindex.c +314 -0
- data/ext/gstreamer/rbgstindex.o +0 -0
- data/ext/gstreamer/rbgstindexentry.c +96 -0
- data/ext/gstreamer/rbgstindexentry.o +0 -0
- data/ext/gstreamer/rbgstparse.c +66 -0
- data/ext/gstreamer/rbgstparse.o +0 -0
- data/ext/gstreamer/rbgstquerytype.c +159 -0
- data/ext/gstreamer/rbgstquerytype.o +0 -0
- data/ext/gstreamer/rbgstregistry.c +278 -0
- data/ext/gstreamer/rbgstregistry.o +0 -0
- data/ext/gstreamer/rbgsttag.c +111 -0
- data/ext/gstreamer/rbgsttag.o +0 -0
- data/ext/gstreamer/rbgsttagsetter.c +50 -0
- data/ext/gstreamer/rbgsttagsetter.o +0 -0
- data/ext/gstreamer/rbgstxml.c +189 -0
- data/ext/gstreamer/rbgstxml.o +0 -0
- data/ext/gstreamer/ruby-gstreamer.pc +3 -0
- data/extconf.rb +49 -0
- data/lib/gst.rb +19 -0
- data/sample/audio-player.rb +54 -0
- data/sample/gst-inspect.rb +417 -0
- data/sample/media-type.rb +55 -0
- data/sample/media-type2.rb +268 -0
- data/sample/ogg-audio-player.rb +54 -0
- data/sample/type-find.rb +46 -0
- data/sample/video-player.rb +57 -0
- data/sample/xml-player.rb +60 -0
- data/test/gst-test-utils.rb +18 -0
- data/test/run-test.rb +25 -0
- data/test/test_bin.rb +167 -0
- data/test/test_buffer.rb +174 -0
- data/test/test_caps.rb +24 -0
- data/test/test_clock.rb +7 -0
- data/test/test_element.rb +87 -0
- data/test/test_element_factory.rb +28 -0
- data/test/test_event.rb +10 -0
- data/test/test_index_factory.rb +7 -0
- data/test/test_message.rb +191 -0
- data/test/test_mini_object.rb +38 -0
- data/test/test_object.rb +10 -0
- data/test/test_pad.rb +68 -0
- data/test/test_plugin.rb +6 -0
- data/test/test_plugin_feature.rb +20 -0
- data/test/test_seek.rb +17 -0
- data/test/test_static_caps.rb +18 -0
- data/test/test_static_pad_template.rb +16 -0
- data/test/test_structure.rb +159 -0
- data/test/test_thread_handling.rb +58 -0
- data/test/test_type_find_factory.rb +8 -0
- data/test/test_value.rb +69 -0
- metadata +208 -0
@@ -0,0 +1,28 @@
|
|
1
|
+
class TestElementFactory < Test::Unit::TestCase
|
2
|
+
include GstTestUtils
|
3
|
+
|
4
|
+
def test_long_name
|
5
|
+
assert_equal("Player Bin", play_bin.long_name)
|
6
|
+
end
|
7
|
+
|
8
|
+
def test_klass
|
9
|
+
assert_equal("Generic/Bin/Player", play_bin.klass)
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_description
|
13
|
+
assert_equal("Autoplug and play media from an uri", play_bin.description)
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_author
|
17
|
+
assert_match(/\AWim Taymans <.*?>\z/, play_bin.author)
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_create
|
21
|
+
assert_match(/\Aplaybin\d+\z/, play_bin.create.name)
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
def play_bin
|
26
|
+
find_element_factory("playbin")
|
27
|
+
end
|
28
|
+
end
|
data/test/test_event.rb
ADDED
@@ -0,0 +1,191 @@
|
|
1
|
+
class TestMessage < Test::Unit::TestCase
|
2
|
+
def test_create_message
|
3
|
+
assert_nothing_raised do
|
4
|
+
Gst::Message.new(:unknown, nil, nil)
|
5
|
+
end
|
6
|
+
end
|
7
|
+
|
8
|
+
def test_message_eos
|
9
|
+
assert_nothing_raised do
|
10
|
+
Gst::MessageEos.new(nil)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_message_error
|
15
|
+
return "FIXME" if true
|
16
|
+
error = nil
|
17
|
+
debug = "ERROR"
|
18
|
+
message = Gst::MessageError.new(nil, error, debug)
|
19
|
+
assert_equal([error, debug], message.parse)
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_message_warning
|
23
|
+
return "FIXME" if true
|
24
|
+
error = nil
|
25
|
+
debug = "WARNING"
|
26
|
+
message = Gst::MessageWarning.new(nil, error, debug)
|
27
|
+
assert_equal([error, debug], message.parse)
|
28
|
+
end
|
29
|
+
|
30
|
+
def test_message_info
|
31
|
+
return "FIXME" if true
|
32
|
+
error = nil
|
33
|
+
debug = "INFO"
|
34
|
+
message = Gst::MessageInfo.new(nil, error, debug)
|
35
|
+
assert_equal([error, debug], message.parse)
|
36
|
+
end
|
37
|
+
|
38
|
+
def test_message_tag
|
39
|
+
return "FIXME" if true
|
40
|
+
tag_list = []
|
41
|
+
message = Gst::MessageTag.new(nil, tag_list)
|
42
|
+
assert_equal(tag_list, message.parse)
|
43
|
+
end
|
44
|
+
|
45
|
+
def test_message_buffering
|
46
|
+
percent = 50
|
47
|
+
message = Gst::MessageBuffering.new(nil, percent)
|
48
|
+
assert_equal(percent, message.parse)
|
49
|
+
end
|
50
|
+
|
51
|
+
def test_message_state_changed
|
52
|
+
old = Gst::STATE_PAUSED
|
53
|
+
new = Gst::STATE_PLAYING
|
54
|
+
pending = Gst::STATE_VOID_PENDING
|
55
|
+
message = Gst::MessageStateChanged.new(nil, :paused, :playing, :void_pending)
|
56
|
+
assert_equal([old, new, pending], message.parse)
|
57
|
+
end
|
58
|
+
|
59
|
+
def test_message_state_dirty
|
60
|
+
assert_nothing_raised do
|
61
|
+
Gst::MessageStateDirty.new(nil)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
def test_message_clock_provide
|
66
|
+
clock = Gst::SystemClock.obtain
|
67
|
+
ready = true
|
68
|
+
message = Gst::MessageClockProvide.new(nil, clock, ready)
|
69
|
+
assert_equal([clock, ready], message.parse)
|
70
|
+
end
|
71
|
+
|
72
|
+
def test_message_clock_lost
|
73
|
+
clock = Gst::SystemClock.obtain
|
74
|
+
message = Gst::MessageClockLost.new(nil, clock)
|
75
|
+
assert_equal(clock, message.parse)
|
76
|
+
end
|
77
|
+
|
78
|
+
def test_create_message_new_clock
|
79
|
+
clock = Gst::SystemClock.obtain
|
80
|
+
message = Gst::MessageNewClock.new(nil, clock)
|
81
|
+
assert_equal(clock, message.parse)
|
82
|
+
end
|
83
|
+
|
84
|
+
def test_message_application
|
85
|
+
assert_nothing_raised do
|
86
|
+
Gst::MessageApplication.new(nil, nil)
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
def test_message_element
|
91
|
+
assert_nothing_raised do
|
92
|
+
Gst::MessageElement.new(nil, nil)
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
def test_missing_message_installer_detail
|
97
|
+
pipeline = Gst::Pipeline.new
|
98
|
+
message = Gst::MissingURISourceMessage.new(pipeline, "http")
|
99
|
+
assert_match(/HTTP/, message.installer_detail)
|
100
|
+
end
|
101
|
+
|
102
|
+
def test_missing_message_description
|
103
|
+
pipeline = Gst::Pipeline.new
|
104
|
+
message = Gst::MissingURISourceMessage.new(pipeline, "http")
|
105
|
+
assert_match(/HTTP/, message.description)
|
106
|
+
end
|
107
|
+
|
108
|
+
def test_message_segment_start
|
109
|
+
format = Gst::Format::DEFAULT
|
110
|
+
position = 100
|
111
|
+
message = Gst::MessageSegmentStart.new(nil, :default, position)
|
112
|
+
assert_equal([format, position], message.parse)
|
113
|
+
end
|
114
|
+
|
115
|
+
def test_message_segment_done
|
116
|
+
format = Gst::Format::DEFAULT
|
117
|
+
position = 100
|
118
|
+
message = Gst::MessageSegmentDone.new(nil, :default, position)
|
119
|
+
assert_equal([format, position], message.parse)
|
120
|
+
end
|
121
|
+
|
122
|
+
def test_message_duration
|
123
|
+
format = Gst::Format::DEFAULT
|
124
|
+
duration = 10
|
125
|
+
message = Gst::MessageDuration.new(nil, :default, duration)
|
126
|
+
assert_equal([format, duration], message.parse)
|
127
|
+
end
|
128
|
+
|
129
|
+
def test_message_async_start
|
130
|
+
new_base_time = true
|
131
|
+
message = Gst::MessageAsyncStart.new(nil, new_base_time)
|
132
|
+
assert_equal(new_base_time, message.parse)
|
133
|
+
end
|
134
|
+
|
135
|
+
def test_message_async_done
|
136
|
+
assert_nothing_raised do
|
137
|
+
Gst::MessageAsyncDone.new(nil)
|
138
|
+
end
|
139
|
+
end
|
140
|
+
|
141
|
+
def test_message_latency
|
142
|
+
assert_nothing_raised do
|
143
|
+
Gst::MessageLatency.new(nil)
|
144
|
+
end
|
145
|
+
end
|
146
|
+
|
147
|
+
def test_type
|
148
|
+
message = Gst::Message.new(:unknown, nil, nil)
|
149
|
+
assert_equal(Gst::Message::UNKNOWN, message.type)
|
150
|
+
message.type = :tag
|
151
|
+
assert_equal(Gst::Message::TAG, message.type)
|
152
|
+
assert_equal("tag", message.type.name)
|
153
|
+
end
|
154
|
+
|
155
|
+
def test_lock
|
156
|
+
message = Gst::MessageEos.new(nil)
|
157
|
+
assert(!message.have_mutex?)
|
158
|
+
end
|
159
|
+
|
160
|
+
def test_cond
|
161
|
+
message = Gst::MessageEos.new(nil)
|
162
|
+
assert(!message.have_cond?)
|
163
|
+
end
|
164
|
+
|
165
|
+
def test_timestamp
|
166
|
+
message = Gst::MessageEos.new(nil)
|
167
|
+
assert(!message.valid_timestamp?)
|
168
|
+
|
169
|
+
timestamp = Time.now.to_i * Gst::NSECOND
|
170
|
+
message.timestamp = timestamp
|
171
|
+
assert_equal(timestamp, message.timestamp)
|
172
|
+
assert(message.valid_timestamp?)
|
173
|
+
end
|
174
|
+
|
175
|
+
def test_source
|
176
|
+
assert_nil(Gst::MessageEos.new(nil).source)
|
177
|
+
|
178
|
+
source = Gst::XML.new
|
179
|
+
message = Gst::MessageEos.new(source)
|
180
|
+
assert_equal(source, message.source)
|
181
|
+
message.source = nil
|
182
|
+
assert_nil(message.source)
|
183
|
+
end
|
184
|
+
|
185
|
+
def test_structure
|
186
|
+
assert_nil(Gst::MessageEos.new(nil).structure)
|
187
|
+
|
188
|
+
message = Gst::Message.new(:unknown, nil, nil)
|
189
|
+
assert_nil(message.structure)
|
190
|
+
end
|
191
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
class TestMiniObject < Test::Unit::TestCase
|
2
|
+
def test_create_mini_object
|
3
|
+
assert_raise(TypeError) do
|
4
|
+
Gst::MiniObject.new
|
5
|
+
end
|
6
|
+
|
7
|
+
assert_operator(Gst::MiniObject, :>, Gst::Buffer)
|
8
|
+
assert_nothing_raised do
|
9
|
+
Gst::Buffer.new
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_writable
|
14
|
+
mini_object = Gst::Buffer.new
|
15
|
+
assert(mini_object.writable?)
|
16
|
+
mini_object.flags = :readonly
|
17
|
+
assert(!mini_object.writable?)
|
18
|
+
mini_object.writable!
|
19
|
+
assert(mini_object.writable?)
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_flag
|
23
|
+
mini_object = Gst::Buffer.new
|
24
|
+
|
25
|
+
assert_equal(0, mini_object.flags)
|
26
|
+
assert(!mini_object.flag_raised?(:readonly))
|
27
|
+
|
28
|
+
mini_object.raise_flag(:readonly)
|
29
|
+
assert(mini_object.flag_raised?(:readonly))
|
30
|
+
mini_object.lower_flag(:readonly)
|
31
|
+
assert(!mini_object.flag_raised?(:readonly))
|
32
|
+
|
33
|
+
mini_object.raise_flag(:readonly)
|
34
|
+
assert(mini_object.flag_raised?(:readonly))
|
35
|
+
mini_object.flags = 0
|
36
|
+
assert(!mini_object.flag_raised?(:readonly))
|
37
|
+
end
|
38
|
+
end
|
data/test/test_object.rb
ADDED
data/test/test_pad.rb
ADDED
@@ -0,0 +1,68 @@
|
|
1
|
+
class TestPad < Test::Unit::TestCase
|
2
|
+
include GstTestUtils
|
3
|
+
|
4
|
+
def test_link
|
5
|
+
file_src = create_element("filesrc")
|
6
|
+
audio_convert = create_element("audioconvert")
|
7
|
+
audio_resample = create_element("audioresample")
|
8
|
+
file_sink = create_element("filesink")
|
9
|
+
|
10
|
+
current_linked = Proc.new do
|
11
|
+
[
|
12
|
+
file_src["src"].linked?,
|
13
|
+
audio_convert["sink"].linked?,
|
14
|
+
audio_convert["src"].linked?,
|
15
|
+
audio_resample["sink"].linked?,
|
16
|
+
audio_resample["src"].linked?,
|
17
|
+
file_sink["sink"].linked?,
|
18
|
+
]
|
19
|
+
end
|
20
|
+
|
21
|
+
current_peer = Proc.new do
|
22
|
+
[
|
23
|
+
file_src["src"].peer,
|
24
|
+
audio_convert["sink"].peer,
|
25
|
+
audio_convert["src"].peer,
|
26
|
+
audio_resample["sink"].peer,
|
27
|
+
audio_resample["src"].peer,
|
28
|
+
file_sink["sink"].peer,
|
29
|
+
]
|
30
|
+
end
|
31
|
+
|
32
|
+
assert_equal([false, false, false, false, false, false],
|
33
|
+
current_linked.call)
|
34
|
+
assert_equal([nil, nil, nil, nil, nil, nil],
|
35
|
+
current_peer.call)
|
36
|
+
|
37
|
+
file_src["src"].link(audio_convert["sink"])
|
38
|
+
assert_equal([true, true, false, false, false, false],
|
39
|
+
current_linked.call)
|
40
|
+
assert_equal([audio_convert["sink"], file_src["src"], nil, nil, nil, nil],
|
41
|
+
current_peer.call)
|
42
|
+
|
43
|
+
audio_convert["src"] >> audio_resample["sink"]
|
44
|
+
assert_equal([true, true, true, true, false, false],
|
45
|
+
current_linked.call)
|
46
|
+
assert_equal([audio_convert["sink"], file_src["src"],
|
47
|
+
audio_resample["sink"], audio_convert["src"],
|
48
|
+
nil, nil],
|
49
|
+
current_peer.call)
|
50
|
+
|
51
|
+
audio_resample["src"] >> file_sink["sink"]
|
52
|
+
assert_equal([true, true, true, true, true, true],
|
53
|
+
current_linked.call)
|
54
|
+
assert_equal([audio_convert["sink"], file_src["src"],
|
55
|
+
audio_resample["sink"], audio_convert["src"],
|
56
|
+
file_sink["sink"], audio_resample["src"]],
|
57
|
+
current_peer.call)
|
58
|
+
|
59
|
+
audio_convert["src"].unlink(audio_resample["sink"])
|
60
|
+
assert_equal([true, true, false, false, true, true],
|
61
|
+
current_linked.call)
|
62
|
+
assert_equal([audio_convert["sink"], file_src["src"],
|
63
|
+
nil, nil,
|
64
|
+
file_sink["sink"], audio_resample["src"]],
|
65
|
+
current_peer.call)
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
data/test/test_plugin.rb
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
class TestPluginFeature < Test::Unit::TestCase
|
2
|
+
def test_load!
|
3
|
+
feature = Gst::ElementFactory.find("audiorate")
|
4
|
+
assert(!feature.loaded?)
|
5
|
+
assert(feature.load!)
|
6
|
+
assert(feature.loaded?)
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_rank
|
10
|
+
feature = Gst::ElementFactory.find("playbin")
|
11
|
+
assert_equal(Gst::RANK_NONE, feature.rank)
|
12
|
+
feature.rank = :primary
|
13
|
+
assert_equal(Gst::RANK_PRIMARY, feature.rank)
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_plugin_name
|
17
|
+
feature = Gst::ElementFactory.find("playbin")
|
18
|
+
assert_equal("playback", feature.plugin_name)
|
19
|
+
end
|
20
|
+
end
|
data/test/test_seek.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
class TestSeek < Test::Unit::TestCase
|
2
|
+
include GstTestUtils
|
3
|
+
|
4
|
+
def test_type
|
5
|
+
assert_operator(Gst, :const_defined?, :SeekType)
|
6
|
+
assert_nothing_raised do
|
7
|
+
Gst::Seek::TYPE_NONE
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_flags
|
12
|
+
assert_operator(Gst, :const_defined?, :SeekFlags)
|
13
|
+
assert_nothing_raised do
|
14
|
+
Gst::Seek::FLAG_NONE
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
class TestStaticCaps < Test::Unit::TestCase
|
2
|
+
def test_description
|
3
|
+
assert_equal("ANY", file_src_caps.description)
|
4
|
+
end
|
5
|
+
|
6
|
+
def test_to_caps
|
7
|
+
static_caps = file_src_caps
|
8
|
+
assert_kind_of(Gst::StaticCaps, static_caps)
|
9
|
+
assert_kind_of(Gst::Caps, static_caps.to_caps)
|
10
|
+
end
|
11
|
+
|
12
|
+
private
|
13
|
+
def file_src_caps
|
14
|
+
file_src = Gst::ElementFactory.find("filesrc")
|
15
|
+
assert_not_nil(file_src)
|
16
|
+
file_src.pad_templates[0].caps
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
class TestStaticPadTemplate < Test::Unit::TestCase
|
2
|
+
def test_reader
|
3
|
+
templates = file_src.pad_templates.collect do |template|
|
4
|
+
[template.name, template.direction, template.presence]
|
5
|
+
end
|
6
|
+
assert_equal([["src", Gst::Pad::SRC, Gst::Pad::ALWAYS]],
|
7
|
+
templates)
|
8
|
+
end
|
9
|
+
|
10
|
+
private
|
11
|
+
def file_src
|
12
|
+
file_src = Gst::ElementFactory.find("filesrc")
|
13
|
+
assert_not_nil(file_src)
|
14
|
+
file_src
|
15
|
+
end
|
16
|
+
end
|