]> git.parisson.com Git - timeside.git/commitdiff
tests/testtranscoding.py: start improving transcoding tests
authorPaul Brossier <piem@piem.org>
Fri, 25 Jan 2013 22:45:12 +0000 (16:45 -0600)
committerPaul Brossier <piem@piem.org>
Fri, 25 Jan 2013 22:45:12 +0000 (16:45 -0600)
tests/testtranscoding.py

index 3e6d0e1a2dd2099f658313825b1b6d544382020d..d29cab108bca8091883031f58666272accee0182 100644 (file)
@@ -9,117 +9,120 @@ from unit_timeside import *
 
 import os.path
 
-__all__ = ['TestTranscoding']
-
-class TestTranscoding(TestCase):
-    "Test the low level streaming features"
+class TestTranscodingFromWav(TestCase):
+    "Test transcoding from wav"
 
     def setUp(self):
-        pass
-
-    def testWav2Mp3(self):
-        "Test wav to mp3 conversion"
         self.source = os.path.join (os.path.dirname(__file__),  "samples/sweep.wav")
 
-        dest1 = "/tmp/test_wav_filesink.mp3"
-        dest2 = "/tmp/test_wav_appsink.mp3"
-        self.f = open(dest2,'w')
+    def testToWav(self):
+        "Test conversion to wav"
+        self.target = "/tmp/test_wav_filesink.wav"
+        self.encoder = WavEncoder(self.target)
+
+    def testToMp3(self):
+        "Test conversion to mp3"
+        self.target = "/tmp/test_wav_filesink.mp3"
+        self.encoder = Mp3Encoder(self.target)
+
+    def testToOgg(self):
+        "Test conversion to ogg"
+        self.target = "/tmp/test_wav_filesink.ogg"
+        self.encoder = VorbisEncoder(self.target)
+
+    """
+    def testToWebM(self):
+        "Test conversion to webm"
+        self.target = "/tmp/test_wav_filesink.webm"
+        self.encoder = WebMEncoder(self.target)
+
+    def testToM4a(self):
+        "Test conversion to m4a"
+        self.target = "/tmp/test_wav_filesink.m4a"
+        self.encoder = AacEncoder(self.target)
+    """
 
-        self.streaming=True
-        self.encoder = Mp3Encoder(dest1, streaming=True)
+    def setUpDecoder(self):
+        self.decoder = FileDecoder(self.source)
+        self.decoder.setup()
+        self.channels  = self.decoder.channels()
+        self.samplerate = self.decoder.samplerate()
 
-    def testFlac2Mp3(self):
-        "Test flac to mp3 conversion"
-        self.source = os.path.join (os.path.dirname(__file__),  "samples/sweep.flac")
+    def setUpEncoder(self):
+        self.encoder.setup(channels = self.channels, samplerate = self.samplerate)
+
+    def tearDown(self):
+        self.setUpDecoder()
+        self.setUpEncoder()
 
-        dest1 = "/tmp/test_flac_filesink.mp3"
-        dest2 = "/tmp/test_flac_appsink.mp3"
-        self.f = open(dest2,'w')
+        totalframes = 0
+        while True:
+            frames, eod = self.decoder.process()
+            self.encoder.process(frames, eod)
+            totalframes += frames.shape[0]
+            if eod or self.encoder.eod: break
 
-        self.streaming=True
-        self.encoder = Mp3Encoder(dest1, streaming=True)
+        """
+        print self.channels, self.samplerate, totalframes
 
+        import time
+        time.sleep(.5)
 
-    #def testFlac2Ogg(self):
-        #"Test flac to ogg conversion"
-        #self.source = os.path.join (os.path.dirname(__file__),  "samples/sweep.flac")
+        decoder = FileDecoder(self.target)
+        decoder.setup()
+        totalframes = 0
+        while True:
+            frames, eod = decoder.process()
+            totalframes += frames.shape[0]
+            if eod: break
 
-        #dest1 = "/tmp/test_flac_filesink.ogg"
-        #dest2 = "/tmp/test_flac_appsink.ogg"
-        #self.f = open(dest2,'w')
+        print decoder.channels(), decoder.samplerate(), totalframes
+        """
 
-        #self.streaming=True
+class TestTranscodingFromAnotherWav(TestTranscodingFromWav):
+    "Test transcoding from another wav"
 
-        #encoder = VorbisEncoder(dest1, streaming=True)
-        #self.encoder = encoder
+    def setUp(self):
+        self.source = os.path.join (os.path.dirname(__file__),  "samples/guitar.wav")
 
-#    def testWav2Ogg(self):
-#        "Test wav to ogg conversion"
-#        self.source = os.path.join (os.path.dirname(__file__),  "samples/sweep.wav")
-#
-#        dest1 = "/tmp/test_wav_filesink.ogg"
-#        dest2 = "/tmp/test_wav_appsink.ogg"
-#        self.f = open(dest2,'w')
-#
-#        self.streaming=True
-#        self.encoder = VorbisEncoder(dest1, streaming=True)
+class TestTranscodingFromMp3(TestTranscodingFromWav):
+    "Test transcoding from mp3"
 
-    #def testWav2Flac(self):
-        #"Test wav to flac conversion"
-        #self.source = os.path.join (os.path.dirname(__file__),  "samples/sweep.wav")
+    def setUp(self):
+        self.source = os.path.join (os.path.dirname(__file__),  "samples/sweep.mp3")
 
-        #dest1 = "/tmp/test_wav_filesink.flac"
-        #dest2 = "/tmp/test_wav_appsink.flac"
-        #self.f = open(dest2,'w')
+class TestTranscodingFromFlac(TestTranscodingFromWav):
+    "Test transcoding from flac"
 
-        #self.streaming=True
+    def setUp(self):
+        self.source = os.path.join (os.path.dirname(__file__),  "samples/sweep.flac")
 
-        #encoder = FlacEncoder(dest1, streaming=True)
-        #self.encoder = encoder
+class TestTranscodingFromOgg(TestTranscodingFromWav):
+    "Test transcoding from ogg"
 
-    def testWav2Webm(self):
-        "Test wav to webm conversion"
-        self.source = os.path.join (os.path.dirname(__file__),  "samples/sweep.wav")
+    def setUp(self):
+        self.source = os.path.join (os.path.dirname(__file__),  "samples/sweep.ogg")
 
-        dest1 = "/tmp/test_wav_filesink.webm"
-        dest2 = "/tmp/test_wav_appsink.webm"
-        self.f = open(dest2,'w')
+class TestTranscodingFromMonoWav(TestTranscodingFromWav):
+    "Test transcoding from a mono wav"
 
-        self.streaming=True
-        self.encoder = WebMEncoder(dest1, streaming=True)
+    def setUp(self):
+        self.source = os.path.join (os.path.dirname(__file__),  "samples/sweep_mono.wav")
 
-    def setUpDecoder(self):
-        self.decoder = FileDecoder(self.source)
-        self.decoder.setup()
-        self.channels  = self.decoder.channels()
-        self.samplerate = self.decoder.samplerate()
+class TestTranscodingFrom32kHzWav(TestTranscodingFromWav):
+    "Test transcoding from a 32kHz wav"
 
-    def setUpEncoder(self):
-        self.encoder.setup(channels = self.channels, samplerate = self.samplerate)
+    def setUp(self):
+        self.source = os.path.join (os.path.dirname(__file__),  "samples/sweep_32000.wav")
 
-    def tearDown(self):
-        self.setUpDecoder()
-        self.setUpEncoder()
+class TestTranscodingFromMissingFile(TestTranscodingFromWav):
+    "Test transcoding from a missing file"
 
-        #print "decoder pipe:\n", decoder.pipe
-        #print "encoder pipe:\n", encoder.pipe
-        totalframes = 0.
+    def setUp(self):
+        self.source = os.path.join (os.path.dirname(__file__),  "samples/unexisting.wav")
 
-        while True:
-            frames, eod = self.decoder.process()
-            #print frames.shape[0]
-            totalframes += frames.shape[0]
-            self.encoder.process(frames, eod)
-            if self.streaming:
-                self.f.write(self.encoder.chunk)
-            if eod:
-                break
-            if self.encoder.eod :
-                break
-        self.f.close()
-
-        # FIXME compute actual number of frames from file
-#        self.assertEquals(totalframes, 352801)
+    def tearDown(self):
+        self.assertRaises(IOError, self.setUpDecoder)
 
 if __name__ == '__main__':
     unittest.main(testRunner=TestRunner())