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 testProcess(self): "Test decoder stack: test process" decoder = FileDecoder(uri=self.source, start=self.start, duration=self.duration, stack=True) self.assertTrue(decoder.stack) self.assertFalse(decoder.from_stack) pipe = ProcessPipe(decoder) pipe.run() self.assertFalse(decoder.stack) self.assertTrue(decoder.from_stack) self.assertEqual(len(pipe.frames_stack), 44) pipe.run()