2
# vi:si:et:sw=4:sts=4:ts=4
4
# gst-python - Python bindings for GStreamer
5
# Copyright (C) 2002 David I. Lehn
6
# Copyright (C) 2004 Johan Dahlin
7
# Copyright (C) 2005 Edward Hervey
9
# This library is free software; you can redistribute it and/or
10
# modify it under the terms of the GNU Lesser General Public
11
# License as published by the Free Software Foundation; either
12
# version 2.1 of the License, or (at your option) any later version.
14
# This library is distributed in the hope that it will be useful,
15
# but WITHOUT ANY WARRANTY; without even the implied warranty of
16
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17
# Lesser General Public License for more details.
19
# You should have received a copy of the GNU Lesser General Public
20
# License along with this library; if not, write to the Free Software
21
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
25
from common import gobject, gst, unittest, TestCase
27
class BufferTest(TestCase):
28
def testBufferBuffer(self):
29
buf = gst.Buffer('test')
30
assert str(buffer(buf)) == 'test'
32
def testBufferStr(self):
33
buffer = gst.Buffer('test')
34
assert str(buffer) == 'test'
36
def testBufferAlloc(self):
38
buffer = gst.Buffer(bla + '12345')
40
assert str(buffer) == 'mooooooo12345'
42
def testBufferBadConstructor(self):
43
self.assertRaises(TypeError, gst.Buffer, 'test', 0)
45
def testBufferStrNull(self):
46
test_string = 't\0e\0s\0t\0'
47
buffer = gst.Buffer(test_string)
48
assert str(buffer) == test_string
50
def testBufferSize(self):
51
test_string = 'a little string'
52
buffer = gst.Buffer(test_string)
53
assert len(buffer) == len(test_string)
54
assert hasattr(buffer, 'size')
55
assert buffer.size == len(buffer)
57
def testBufferCreateSub(self):
62
buffer = gst.Buffer(s)
63
self.assertEquals(len(buffer), 128)
65
sub = buffer.create_sub(16, 16)
66
self.assertEquals(sub.size, 16)
67
self.assertEquals(sub.data, buffer.data[16:32])
68
self.assertEquals(sub.offset, gst.CLOCK_TIME_NONE)
70
def testBufferMerge(self):
71
buffer1 = gst.Buffer('foo')
72
buffer2 = gst.Buffer('bar')
74
merged_buffer = buffer1.merge(buffer2)
75
assert str(merged_buffer) == 'foobar'
77
def testBufferJoin(self):
78
buffer1 = gst.Buffer('foo')
79
buffer2 = gst.Buffer('bar')
81
joined_buffer = buffer1.merge(buffer2)
82
assert str(joined_buffer) == 'foobar'
84
def testBufferSpan(self):
85
buffer1 = gst.Buffer('foo')
86
buffer2 = gst.Buffer('bar')
88
spaned_buffer = buffer1.span(0L, buffer2, 6L)
89
assert str(spaned_buffer) == 'foobar'
91
def testBufferFlagIsSet(self):
94
assert not buffer.flag_is_set(gst.BUFFER_FLAG_READONLY)
96
# Try switching on and off
97
buffer.flag_set(gst.BUFFER_FLAG_READONLY)
98
assert buffer.flag_is_set(gst.BUFFER_FLAG_READONLY)
99
buffer.flag_unset(gst.BUFFER_FLAG_READONLY)
100
assert not buffer.flag_is_set(gst.BUFFER_FLAG_READONLY)
102
# Try switching on and off
103
buffer.flag_set(gst.BUFFER_FLAG_IN_CAPS)
104
assert buffer.flag_is_set(gst.BUFFER_FLAG_IN_CAPS)
105
buffer.flag_unset(gst.BUFFER_FLAG_IN_CAPS)
106
assert not buffer.flag_is_set(gst.BUFFER_FLAG_IN_CAPS)
108
def testAttrFlags(self):
109
buffer = gst.Buffer()
110
assert hasattr(buffer, "flags")
111
assert isinstance(buffer.flags, int)
113
def testAttrTimestamp(self):
114
buffer = gst.Buffer()
115
assert hasattr(buffer, "timestamp")
116
assert isinstance(buffer.timestamp, long)
118
assert buffer.timestamp == gst.CLOCK_TIME_NONE
120
assert buffer.timestamp == 0
121
buffer.timestamp = 2**64 - 1
122
assert buffer.timestamp == 2**64 - 1
124
def testAttrDuration(self):
125
buffer = gst.Buffer()
126
assert hasattr(buffer, "duration")
127
assert isinstance(buffer.duration, long)
129
assert buffer.duration == gst.CLOCK_TIME_NONE
131
assert buffer.duration == 0
132
buffer.duration = 2**64 - 1
133
assert buffer.duration == 2**64 - 1
135
def testAttrOffset(self):
136
buffer = gst.Buffer()
137
assert hasattr(buffer, "offset")
138
assert isinstance(buffer.offset, long)
140
assert buffer.offset == gst.CLOCK_TIME_NONE
142
assert buffer.offset == 0
143
buffer.offset = 2**64 - 1
144
assert buffer.offset == 2**64 - 1
146
def testAttrOffset_end(self):
147
buffer = gst.Buffer()
148
assert hasattr(buffer, "offset_end")
149
assert isinstance(buffer.offset_end, long)
151
assert buffer.offset_end == gst.CLOCK_TIME_NONE
152
buffer.offset_end = 0
153
assert buffer.offset_end == 0
154
buffer.offset_end = 2**64 - 1
155
assert buffer.offset_end == 2**64 - 1
157
def testBufferCaps(self):
158
buffer = gst.Buffer()
159
caps = gst.caps_from_string('foo/blah')
160
gst.info("before settings caps")
161
buffer.set_caps(caps)
162
gst.info("after settings caps")
163
c = buffer.get_caps()
164
gst.info("after getting caps")
165
self.assertEquals(caps, c)
167
if __name__ == "__main__":