Ejemplo n.º 1
0
    def test_frame_to_tc(self):

        def assertFrameToTC(tc_, hrs, mins, secs, frs):
            self.assertEqual(hrs, tc_.hrs)
            self.assertEqual(mins, tc_.mins)
            self.assertEqual(secs, tc_.secs)
            self.assertEqual(frs, tc_.frs)

        tc = Timecode('29.97', '00:00:00:01')
        assertFrameToTC(tc, 0, 0, 0, 1)
        self.assertEqual('00:00:00:01', tc.__str__())

        test_code = '03:36:09:23'
        framerates = ['23.98', '24', '25', '29.97', '30', '59.94', '60']

        for fr in framerates:
            tc = Timecode(fr, test_code)
            assertFrameToTC(tc, 3, 36, 9, 23)

        tc = Timecode('ms', '03:36:09:230')
        assertFrameToTC(tc, 3, 36, 9, 230)

        tc = Timecode('24', frames=12000)
        assertFrameToTC(tc, 0, 8, 19, 23)
        self.assertEqual('00:08:19:23', tc.__str__())
Ejemplo n.º 2
0
    def test_framerate_can_be_changed(self):
        """testing if the timecode value will be automaticall updated when the
        framerate attribute is changed
        """
        tc1 = Timecode('25', frames=100)
        self.assertEqual('00:00:03:24', tc1.__str__())
        self.assertEqual(100, tc1.frames)

        tc1.framerate = '12'
        self.assertEqual('00:00:08:03', tc1.__str__())
        self.assertEqual(100, tc1.frames)
Ejemplo n.º 3
0
    def test_tc_to_frame_test_in_2997(self):
        """testing if timecode to frame conversion is ok in 2997
        """
        tc = Timecode('29.97', '00:00:00;00')
        self.assertEqual(tc.frames, 1)

        tc = Timecode('29.97', '00:00:00;21')
        self.assertEqual(tc.frames, 22)

        tc = Timecode('29.97', '00:00:00;29')
        self.assertEqual(tc.frames, 30)

        tc = Timecode('29.97', '00:00:00;60')
        self.assertEqual(tc.frames, 61)

        tc = Timecode('29.97', '00:00:01;00')
        self.assertEqual(tc.frames, 31)

        tc = Timecode('29.97', '00:00:10;00')
        self.assertEqual(tc.frames, 301)

        # test with non existing timecodes
        tc = Timecode('29.97', '00:01:00;00')
        self.assertEqual(1799, tc.frames)
        self.assertEqual('00:00:59;28', tc.__str__())

        # test the limit
        tc = Timecode('29.97', '23:59:59;29')
        self.assertEqual(2589408, tc.frames)
Ejemplo n.º 4
0
    def test_tc_to_frame_test_in_2997(self):
        """testing if timecode to frame conversion is ok in 2997
        """
        tc = Timecode('29.97', '00:00:00:00')
        self.assertEqual(tc.frames, 1)

        tc = Timecode('29.97', '00:00:00:21')
        self.assertEqual(tc.frames, 22)

        tc = Timecode('29.97', '00:00:00:29')
        self.assertEqual(tc.frames, 30)

        tc = Timecode('29.97', '00:00:00:60')
        self.assertEqual(tc.frames, 61)

        tc = Timecode('29.97', '00:00:01:00')
        self.assertEqual(tc.frames, 31)

        tc = Timecode('29.97', '00:00:10:00')
        self.assertEqual(tc.frames, 301)

        # test with non existing timecodes
        tc = Timecode('29.97', '00:01:00:00')
        self.assertEqual(1799, tc.frames)
        self.assertEqual('00:00:59:28', tc.__str__())

        # test the limit
        tc = Timecode('29.97', '23:59:59:29')
        self.assertEqual(2589408, tc.frames)
Ejemplo n.º 5
0
    def test_timecode_init(self):
        """testing several timecode initialization
        """
        tc = Timecode('29.97')
        self.assertEqual('00:00:00;00', tc.__str__())
        self.assertEqual(1, tc.frames)

        tc = Timecode('29.97', '00:00:00;01')
        self.assertEqual(2, tc.frames)

        tc = Timecode('29.97', '03:36:09;23')
        self.assertEqual(388704, tc.frames)

        tc = Timecode('29.97', '03:36:09;23')
        self.assertEqual(388704, tc.frames)

        tc = Timecode('30', '03:36:09:23')
        self.assertEqual(389094, tc.frames)

        tc = Timecode('25', '03:36:09:23')
        self.assertEqual(324249, tc.frames)

        tc = Timecode('59.94', '03:36:09;23')
        self.assertEqual(777384, tc.frames)

        tc = Timecode('60', '03:36:09:23')
        self.assertEqual(778164, tc.frames)

        tc = Timecode('59.94', '03:36:09;23')
        self.assertEqual(777384, tc.frames)

        tc = Timecode('23.98', '03:36:09:23')
        self.assertEqual(311280, tc.frames)

        tc = Timecode('24', '03:36:09:23')
        self.assertEqual(311280, tc.frames)

        tc = Timecode('ms', '03:36:09.230')
        self.assertEqual(3, tc.hrs)
        self.assertEqual(36, tc.mins)
        self.assertEqual(9, tc.secs)
        self.assertEqual(230, tc.frs)

        tc = Timecode('24', frames=12000)
        self.assertEqual('00:08:19:23', tc.__str__())

        tc = Timecode('29.97', frames=2589408)
        self.assertEqual('23:59:59;29', tc.__str__())

        tc = Timecode('29.97', frames=2589409)
        self.assertEqual('00:00:00;00', tc.__str__())

        tc = Timecode('59.94', frames=5178816)
        self.assertEqual('23:59:59;59', tc.__str__())

        tc = Timecode('59.94', frames=5178817)
        self.assertEqual('00:00:00;00', tc.__str__())
Ejemplo n.º 6
0
    def test_timecode_init(self):
        """testing several timecode initialization
        """
        tc = Timecode('29.97')
        self.assertEqual('00:00:00:00', tc.__str__())
        self.assertEqual(1, tc.frames)

        tc = Timecode('29.97', '00:00:00:01')
        self.assertEqual(2, tc.frames)

        tc = Timecode('29.97', '03:36:09:23')
        self.assertEqual(388704, tc.frames)

        tc = Timecode('29.97', '03:36:09:23')
        self.assertEqual(388704, tc.frames)

        tc = Timecode('30', '03:36:09:23')
        self.assertEqual(389094, tc.frames)

        tc = Timecode('25', '03:36:09:23')
        self.assertEqual(324249, tc.frames)

        tc = Timecode('59.94', '03:36:09:23')
        self.assertEqual(777384, tc.frames)

        tc = Timecode('60', '03:36:09:23')
        self.assertEqual(778164, tc.frames)

        tc = Timecode('59.94', '03:36:09:23')
        self.assertEqual(777384, tc.frames)

        tc = Timecode('23.98', '03:36:09:23')
        self.assertEqual(311280, tc.frames)

        tc = Timecode('24', '03:36:09:23')
        self.assertEqual(311280, tc.frames)

        tc = Timecode('ms', '03:36:09:230')
        self.assertEqual(3, tc.hrs)
        self.assertEqual(36, tc.mins)
        self.assertEqual(9, tc.secs)
        self.assertEqual(230, tc.frs)

        tc = Timecode('24', frames=12000)
        self.assertEqual('00:08:19:23', tc.__str__())

        tc = Timecode('29.97', frames=2589408)
        self.assertEqual('23:59:59:29', tc.__str__())

        tc = Timecode('29.97', frames=2589409)
        self.assertEqual('00:00:00:00', tc.__str__())

        tc = Timecode('59.94', frames=5178816)
        self.assertEqual('23:59:59:59', tc.__str__())

        tc = Timecode('59.94', frames=5178817)
        self.assertEqual('00:00:00:00', tc.__str__())
Ejemplo n.º 7
0
    def test_24_hour_limit(self):
        """testing if the timecode will loop back to 00:00:00:00 after 24 hours
        in 29.97 fps
        """
        tc0 = Timecode('59.94', '23:59:59:29')
        self.assertEqual(5178786, tc0.frames)
        tc0 = Timecode('29.97', '23:59:59:29')
        self.assertEqual(2589408, tc0.frames)

        tc1 = Timecode('29.97', frames=2589408)
        self.assertEqual('23:59:59:29', tc1.__str__())

        tc2 = Timecode('29.97', '23:59:59:29')
        tc3 = tc2 + 1
        self.assertEqual('00:00:00:00', tc3.__str__())

        tc2 = Timecode('29.97', '23:59:59:29')
        tc3 = tc2 + 21
        self.assertEqual('00:00:00:20', tc3.__str__())

        tc = Timecode('29.97', '00:00:00:21')
        tc2 = Timecode('29.97', '23:59:59:29')
        tc3 = (tc + tc2)
        self.assertEqual('00:00:00:21', tc3.__str__())

        tc = Timecode('29.97', '04:20:13:21')
        tca = Timecode('29.97', frames=467944)
        self.assertEqual(467944, tca.frames)
        self.assertEqual(467944, tc.frames)
        self.assertEqual('04:20:13:21', tca.__str__())
        self.assertEqual('04:20:13:21', tc.__str__())

        tc2 = Timecode('29.97', '23:59:59:29')
        self.assertEqual(2589408, tc2.frames)
        self.assertEqual('23:59:59:29', tc2.__str__())
        tc2a = Timecode('29.97', frames=2589408)
        self.assertEqual(2589408, tc2a.frames)
        self.assertEqual('23:59:59:29', tc2a.__str__())

        tc3 = (tc + tc2)
        self.assertEqual('04:20:13:21', tc3.__str__())

        tc = Timecode('59.94', '04:20:13:21')
        self.assertEqual('04:20:13:21', tc.__str__())

        tca = Timecode('59.94', frames=935866)
        self.assertEqual('04:20:13:21', tc.__str__())

        tc2 = Timecode('59.94', '23:59:59:59')
        tc3 = (tc + tc2)
        self.assertEqual('04:20:13:21', tc3.__str__())
Ejemplo n.º 8
0
    def test_drop_frame(self):
        tc = Timecode('29.97', '13:36:59:29')
        timecode = tc.next()
        self.assertEqual("13:37:00:02", timecode.__str__())

        tc = Timecode('59.94', '13:36:59:59')
        self.assertEqual("13:36:59:59", tc.__str__())

        timecode = tc.next()
        self.assertEqual("13:37:00:04", timecode.__str__())

        tc = Timecode('59.94', '13:39:59:59')
        timecode = tc.next()
        self.assertEqual("13:40:00:00", timecode.__str__())

        tc = Timecode('29.97', '13:39:59:29')
        timecode = tc.next()
        self.assertEqual("13:40:00:00", timecode.__str__())
Ejemplo n.º 9
0
    def test_frame_to_tc(self):
        tc = Timecode('29.97', '00:00:00;01')
        self.assertEqual(0, tc.hrs)
        self.assertEqual(0, tc.mins)
        self.assertEqual(0, tc.secs)
        self.assertEqual(1, tc.frs)
        self.assertEqual('00:00:00;01', tc.__str__())

        tc = Timecode('29.97', '03:36:09;23')
        self.assertEqual(3, tc.hrs)
        self.assertEqual(36, tc.mins)
        self.assertEqual(9, tc.secs)
        self.assertEqual(23, tc.frs)

        tc = Timecode('29.97', '03:36:09;23')
        self.assertEqual(3, tc.hrs)
        self.assertEqual(36, tc.mins)
        self.assertEqual(9, tc.secs)
        self.assertEqual(23, tc.frs)

        tc = Timecode('30', '03:36:09:23')
        self.assertEqual(3, tc.hrs)
        self.assertEqual(36, tc.mins)
        self.assertEqual(9, tc.secs)
        self.assertEqual(23, tc.frs)

        tc = Timecode('25', '03:36:09:23')
        self.assertEqual(3, tc.hrs)
        self.assertEqual(36, tc.mins)
        self.assertEqual(9, tc.secs)
        self.assertEqual(23, tc.frs)

        tc = Timecode('59.94', '03:36:09;23')
        self.assertEqual(3, tc.hrs)
        self.assertEqual(36, tc.mins)
        self.assertEqual(9, tc.secs)
        self.assertEqual(23, tc.frs)

        tc = Timecode('60', '03:36:09:23')
        self.assertEqual(3, tc.hrs)
        self.assertEqual(36, tc.mins)
        self.assertEqual(9, tc.secs)
        self.assertEqual(23, tc.frs)

        tc = Timecode('59.94', '03:36:09;23')
        self.assertEqual(3, tc.hrs)
        self.assertEqual(36, tc.mins)
        self.assertEqual(9, tc.secs)
        self.assertEqual(23, tc.frs)

        tc = Timecode('23.98', '03:36:09:23')
        self.assertEqual(3, tc.hrs)
        self.assertEqual(36, tc.mins)
        self.assertEqual(9, tc.secs)
        self.assertEqual(23, tc.frs)

        tc = Timecode('24', '03:36:09:23')
        self.assertEqual(3, tc.hrs)
        self.assertEqual(36, tc.mins)
        self.assertEqual(9, tc.secs)
        self.assertEqual(23, tc.frs)

        tc = Timecode('ms', '03:36:09.230')
        self.assertEqual(3, tc.hrs)
        self.assertEqual(36, tc.mins)
        self.assertEqual(9, tc.secs)
        self.assertEqual(230, tc.frs)

        tc = Timecode('24', frames=12000)
        self.assertEqual('00:08:19:23', tc.__str__())
        self.assertEqual(0, tc.hrs)
        self.assertEqual(8, tc.mins)
        self.assertEqual(19, tc.secs)
        self.assertEqual(23, tc.frs)
Ejemplo n.º 10
0
    def test_frame_to_tc(self):
        tc = Timecode('29.97', '00:00:00:01')
        self.assertEqual(0, tc.hrs)
        self.assertEqual(0, tc.mins)
        self.assertEqual(0, tc.secs)
        self.assertEqual(1, tc.frs)
        self.assertEqual('00:00:00:01', tc.__str__())

        tc = Timecode('29.97', '03:36:09:23')
        self.assertEqual(3, tc.hrs)
        self.assertEqual(36, tc.mins)
        self.assertEqual(9, tc.secs)
        self.assertEqual(23, tc.frs)

        tc = Timecode('29.97', '03:36:09:23')
        self.assertEqual(3, tc.hrs)
        self.assertEqual(36, tc.mins)
        self.assertEqual(9, tc.secs)
        self.assertEqual(23, tc.frs)

        tc = Timecode('30', '03:36:09:23')
        self.assertEqual(3, tc.hrs)
        self.assertEqual(36, tc.mins)
        self.assertEqual(9, tc.secs)
        self.assertEqual(23, tc.frs)

        tc = Timecode('25', '03:36:09:23')
        self.assertEqual(3, tc.hrs)
        self.assertEqual(36, tc.mins)
        self.assertEqual(9, tc.secs)
        self.assertEqual(23, tc.frs)

        tc = Timecode('59.94', '03:36:09:23')
        self.assertEqual(3, tc.hrs)
        self.assertEqual(36, tc.mins)
        self.assertEqual(9, tc.secs)
        self.assertEqual(23, tc.frs)

        tc = Timecode('60', '03:36:09:23')
        self.assertEqual(3, tc.hrs)
        self.assertEqual(36, tc.mins)
        self.assertEqual(9, tc.secs)
        self.assertEqual(23, tc.frs)

        tc = Timecode('59.94', '03:36:09:23')
        self.assertEqual(3, tc.hrs)
        self.assertEqual(36, tc.mins)
        self.assertEqual(9, tc.secs)
        self.assertEqual(23, tc.frs)

        tc = Timecode('23.98', '03:36:09:23')
        self.assertEqual(3, tc.hrs)
        self.assertEqual(36, tc.mins)
        self.assertEqual(9, tc.secs)
        self.assertEqual(23, tc.frs)

        tc = Timecode('24', '03:36:09:23')
        self.assertEqual(3, tc.hrs)
        self.assertEqual(36, tc.mins)
        self.assertEqual(9, tc.secs)
        self.assertEqual(23, tc.frs)

        tc = Timecode('ms', '03:36:09:230')
        self.assertEqual(3, tc.hrs)
        self.assertEqual(36, tc.mins)
        self.assertEqual(9, tc.secs)
        self.assertEqual(230, tc.frs)

        tc = Timecode('24', frames=12000)
        self.assertEqual('00:08:19:23', tc.__str__())
        self.assertEqual(0, tc.hrs)
        self.assertEqual(8, tc.mins)
        self.assertEqual(19, tc.secs)
        self.assertEqual(23, tc.frs)