# -*- Mode: Python -*- # vi:si:et:sw=4:sts=4:ts=4 # # gst-python - Python bindings for GStreamer # Copyright (C) 2006 Edward Hervey # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA from common import gst, unittest, TestCase class SegmentTest(TestCase): def testSeekNoSize(self): segment = gst.Segment() segment.init(gst.FORMAT_BYTES) # configure segment to start at 100 with no defined stop position update = segment.set_seek(1.0, gst.FORMAT_BYTES, gst.SEEK_FLAG_NONE, gst.SEEK_TYPE_SET, 100, gst.SEEK_TYPE_NONE, -1) self.assertEquals(update, True) self.assertEquals(segment.start, 100) self.assertEquals(segment.stop, -1) # configure segment to stop relative, should not do anything since # size is unknown update = segment.set_seek(1.0, gst.FORMAT_BYTES, gst.SEEK_FLAG_NONE, gst.SEEK_TYPE_NONE, 200, gst.SEEK_TYPE_CUR, -100) # the update flag is deprecated, we cannot check for proper behaviour. #self.assertEquals(update, False) self.assertEquals(segment.start, 100) self.assertEquals(segment.stop, -1) # clipping on outside range, always returns False res, cstart, cstop = segment.clip(gst.FORMAT_BYTES, 0, 50) self.assertEquals(res, False) # touching lower bound but outside res, cstart, cstop = segment.clip(gst.FORMAT_BYTES, 50, 100) self.assertEquals(res, False) # partially inside res, cstart, cstop = segment.clip(gst.FORMAT_BYTES, 50, 150) self.assertEquals(res, True) self.assertEquals(cstart, 100) self.assertEquals(cstop, 150) if __name__ == "__main__": unittest.main()