def tearDown(self): decoder = FileDecoder(self.source) encoder_cls = get_processor(self.encoder_id) file_extension = '.' + encoder_cls.file_extension() self.target = tmp_file_sink(prefix=self.__class__.__name__, suffix=file_extension) encoder = encoder_cls(self.target) (decoder | encoder).run() decoder_encoded = FileDecoder(self.target) pipe = ProcessPipe(decoder_encoded) pipe.run() os.unlink(self.target) #print decoder.channels(), decoder.samplerate(), written_frames #print media_channels if self.test_channels: self.assertEqual(decoder.channels(), decoder_encoded.channels()) else: self.assertEqual(2, decoder_encoded.channels()) # voaacenc bug ? self.assertEqual(decoder.samplerate(), decoder_encoded.samplerate()) if self.test_duration: self.assertAlmostEqual(decoder.input_duration, decoder_encoded.input_duration, delta=0.2)
def tearDown(self): decoder = FileDecoder(self.source) encoder_cls = get_processor(self.encoder_id) file_extension = '.' + encoder_cls.file_extension() self.target = tmp_file_sink(prefix=self.__class__.__name__, suffix=file_extension) encoder = encoder_cls(self.target) (decoder | encoder).run() decoder_encoded = FileDecoder(self.target) pipe = ProcessPipe(decoder_encoded) pipe.run() os.unlink(self.target) #print decoder.channels(), decoder.samplerate(), written_frames #print media_channels if self.test_channels: self.assertEqual(decoder.channels(), decoder_encoded.channels()) else: self.assertEqual(2, decoder_encoded.channels()) # voaacenc bug ? self.assertEqual(decoder.samplerate(), decoder_encoded.samplerate()) if self.test_duration: self.assertAlmostEqual(decoder.input_duration, decoder_encoded.input_duration, delta=0.2)
def tearDown(self): decoder = FileDecoder(self.source) encoder_cls = get_processor(self.encoder_id) file_extension = '.' + encoder_cls.file_extension() self.target_filesink = tmp_file_sink(prefix=self.__class__.__name__, suffix=file_extension) self.target_appsink = tmp_file_sink(prefix=self.__class__.__name__, suffix=file_extension) encoder = encoder_cls(self.target_filesink, streaming=True) pipe = (decoder | encoder) with open(self.target_appsink, 'w') as f: for chunk in pipe.stream(): f.write(chunk) decoder_encoded = FileDecoder(self.target_filesink) pipe2 = ProcessPipe(decoder_encoded) pipe2.run() import os filesink_size = os.path.getsize(self.target_filesink) appsink_size = os.path.getsize(self.target_appsink) os.unlink(self.target_filesink) os.unlink(self.target_appsink) #print decoder.channels(), decoder.samplerate(), written_frames #print media_channels if self.test_channels: self.assertEqual(decoder.channels(), decoder_encoded.channels()) else: self.assertEqual(2, decoder_encoded.channels()) # voaacenc bug ? if not self.expected_sample_rate: self.expected_sample_rate = decoder.samplerate() self.assertEqual(self.expected_sample_rate, decoder_encoded.samplerate()) if self.test_duration: self.assertAlmostEqual(decoder.input_duration, decoder_encoded.input_duration, delta=0.2) self.assertAlmostEqual(filesink_size, appsink_size, delta=self.filesize_delta)
def tearDown(self): decoder = FileDecoder(self.source) encoder_cls = get_processor(self.encoder_id) file_extension = '.' + encoder_cls.file_extension() self.target_filesink = tmp_file_sink(prefix=self.__class__.__name__, suffix=file_extension) self.target_appsink = tmp_file_sink(prefix=self.__class__.__name__, suffix=file_extension) encoder = encoder_cls(self.target_filesink, streaming=True) pipe = (decoder | encoder) with open(self.target_appsink, 'w') as f: for chunk in pipe.stream(): f.write(chunk) decoder_encoded = FileDecoder(self.target_filesink) pipe2 = ProcessPipe(decoder_encoded) pipe2.run() import os filesink_size = os.path.getsize(self.target_filesink) appsink_size = os.path.getsize(self.target_appsink) os.unlink(self.target_filesink) os.unlink(self.target_appsink) #print decoder.channels(), decoder.samplerate(), written_frames #print media_channels if self.test_channels: self.assertEqual(decoder.channels(), decoder_encoded.channels()) else: self.assertEqual(2, decoder_encoded.channels()) # voaacenc bug ? if not self.expected_sample_rate: self.expected_sample_rate = decoder.samplerate() self.assertEqual(self.expected_sample_rate, decoder_encoded.samplerate()) if self.test_duration: self.assertAlmostEqual(decoder.input_duration, decoder_encoded.input_duration, delta=0.2) self.assertAlmostEqual(filesink_size, appsink_size, delta=self.filesize_delta)
class TestForceSampleRate(unittest.TestCase): class Dummy_Processor(Processor): implements(IProcessor) @staticmethod @interfacedoc def id(): return 'dummy_proc' class Dummy_Processor_withSampleRate(Dummy_Processor): implements(IProcessor) @staticmethod @interfacedoc def id(): return 'dummy_proc_samplerate' @property def force_samplerate(self): return SAMPLE_RATE_FORCED class Dummy_Processor_withSampleRate2(Dummy_Processor): implements(IProcessor) @staticmethod @interfacedoc def id(): return 'dummy_proc_samplerate_2' @property def force_samplerate(self): return OTHER_SAMPLE_RATE def setUp(self): self.source = samples['sweep.wav'] self.source_samplerate = 44100 self.decoder = FileDecoder(uri=self.source) def testWithoutForceSampleRate(self): "Processor not overwritting source SampleRate" processor = self.Dummy_Processor() pipe = (self.decoder | processor) pipe.run() def testWithForceSampleRate(self): "Processor overwritting source SampleRate" processor = self.Dummy_Processor_withSampleRate() pipe = (self.decoder | processor) pipe.run() self.assertEqual(self.decoder.samplerate(), SAMPLE_RATE_FORCED) def testWithForceSampleRatePipe(self): "Processor overwritting pipe SampleRate" processor = self.Dummy_Processor_withSampleRate() pipe = (self.decoder | processor) self.assertRaises(ValueError, pipe.run, [], {'samplerate': OTHER_SAMPLE_RATE}) def testWithForceSampleRateTwoProc(self): "Two Processors overwritting source SampleRate" processor1 = self.Dummy_Processor_withSampleRate() processor2 = self.Dummy_Processor_withSampleRate2() pipe = (self.decoder | processor1 | processor2) self.assertRaises(ValueError, pipe.run)