~ubuntu-branches/ubuntu/precise/gst0.10-python/precise

« back to all changes in this revision

Viewing changes to testsuite/test_buffer.py

  • Committer: Bazaar Package Importer
  • Author(s): Loic Minier
  • Date: 2006-06-25 19:37:45 UTC
  • Revision ID: james.westby@ubuntu.com-20060625193745-9yeg0wq56r24n57x
Tags: upstream-0.10.4
ImportĀ upstreamĀ versionĀ 0.10.4

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# -*- Mode: Python -*-
 
2
# vi:si:et:sw=4:sts=4:ts=4
 
3
#
 
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
 
8
#
 
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.
 
13
#
 
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.
 
18
#
 
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
 
22
 
 
23
import sys
 
24
import gc
 
25
from common import gobject, gst, unittest, TestCase
 
26
 
 
27
class BufferTest(TestCase):
 
28
    def testBufferBuffer(self):
 
29
        buf = gst.Buffer('test')
 
30
        assert str(buffer(buf)) == 'test'
 
31
 
 
32
    def testBufferStr(self):
 
33
        buffer = gst.Buffer('test')
 
34
        assert str(buffer) == 'test'
 
35
 
 
36
    def testBufferAlloc(self):
 
37
        bla = 'mooooooo'
 
38
        buffer = gst.Buffer(bla + '12345')
 
39
        gc.collect ()
 
40
        assert str(buffer) == 'mooooooo12345'
 
41
                
 
42
    def testBufferBadConstructor(self):
 
43
        self.assertRaises(TypeError, gst.Buffer, 'test', 0)
 
44
        
 
45
    def testBufferStrNull(self):
 
46
        test_string = 't\0e\0s\0t\0'
 
47
        buffer = gst.Buffer(test_string)
 
48
        assert str(buffer) == test_string
 
49
 
 
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)
 
56
        
 
57
    def testBufferCreateSub(self):
 
58
        s = ''
 
59
        for i in range(64):
 
60
            s += '%02d' % i
 
61
            
 
62
        buffer = gst.Buffer(s)
 
63
        self.assertEquals(len(buffer), 128)
 
64
 
 
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)
 
69
 
 
70
    def testBufferMerge(self):
 
71
        buffer1 = gst.Buffer('foo')
 
72
        buffer2 = gst.Buffer('bar')
 
73
 
 
74
        merged_buffer = buffer1.merge(buffer2)
 
75
        assert str(merged_buffer) == 'foobar'
 
76
        
 
77
    def testBufferJoin(self):
 
78
        buffer1 = gst.Buffer('foo')
 
79
        buffer2 = gst.Buffer('bar')
 
80
 
 
81
        joined_buffer = buffer1.merge(buffer2)
 
82
        assert str(joined_buffer) == 'foobar'
 
83
        
 
84
    def testBufferSpan(self):
 
85
        buffer1 = gst.Buffer('foo')
 
86
        buffer2 = gst.Buffer('bar')
 
87
 
 
88
        spaned_buffer = buffer1.span(0L, buffer2, 6L)
 
89
        assert str(spaned_buffer) == 'foobar'
 
90
 
 
91
    def testBufferFlagIsSet(self):
 
92
        buffer = gst.Buffer()
 
93
        # Off by default
 
94
        assert not buffer.flag_is_set(gst.BUFFER_FLAG_READONLY)
 
95
 
 
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)
 
101
 
 
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)
 
107
 
 
108
    def testAttrFlags(self):
 
109
        buffer = gst.Buffer()
 
110
        assert hasattr(buffer, "flags")
 
111
        assert isinstance(buffer.flags, int)
 
112
 
 
113
    def testAttrTimestamp(self):
 
114
        buffer = gst.Buffer()
 
115
        assert hasattr(buffer, "timestamp")
 
116
        assert isinstance(buffer.timestamp, long)
 
117
 
 
118
        assert buffer.timestamp == gst.CLOCK_TIME_NONE
 
119
        buffer.timestamp = 0
 
120
        assert buffer.timestamp == 0
 
121
        buffer.timestamp = 2**64 - 1
 
122
        assert buffer.timestamp == 2**64 - 1
 
123
 
 
124
    def testAttrDuration(self):
 
125
        buffer = gst.Buffer()
 
126
        assert hasattr(buffer, "duration")
 
127
        assert isinstance(buffer.duration, long)
 
128
 
 
129
        assert buffer.duration == gst.CLOCK_TIME_NONE
 
130
        buffer.duration = 0
 
131
        assert buffer.duration == 0
 
132
        buffer.duration = 2**64 - 1
 
133
        assert buffer.duration == 2**64 - 1
 
134
        
 
135
    def testAttrOffset(self):
 
136
        buffer = gst.Buffer()
 
137
        assert hasattr(buffer, "offset")
 
138
        assert isinstance(buffer.offset, long)
 
139
 
 
140
        assert buffer.offset == gst.CLOCK_TIME_NONE
 
141
        buffer.offset = 0
 
142
        assert buffer.offset == 0
 
143
        buffer.offset = 2**64 - 1
 
144
        assert buffer.offset == 2**64 - 1
 
145
 
 
146
    def testAttrOffset_end(self):
 
147
        buffer = gst.Buffer()
 
148
        assert hasattr(buffer, "offset_end")
 
149
        assert isinstance(buffer.offset_end, long)
 
150
 
 
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
 
156
 
 
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)
 
166
 
 
167
if __name__ == "__main__":
 
168
    unittest.main()