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)
def tearDown(self): decoder = FileDecoder(uri=self.source, start=self.start, duration=self.duration) decoder.setup(samplerate=self.samplerate, channels=self.channels, blocksize=self.blocksize) totalframes = 0 while True: frames, eod = decoder.process() totalframes += frames.shape[0] if eod or decoder.eod: break self.assertEqual(frames.shape[0], decoder.blocksize()) self.assertEqual(frames.shape[1], decoder.channels()) ratio = decoder.output_samplerate / decoder.input_samplerate if 0: print "input / output_samplerate:", decoder.input_samplerate, "/", decoder.output_samplerate, print "ratio:", ratio print "input / output_channels:", decoder.input_channels, decoder.output_channels print "input_duration:", decoder.input_duration print "input_totalframes:", decoder.input_totalframes print "mime_type", decoder.mime_type() if self.channels: # when specified, check that the channels are the ones requested self.assertEqual(self.channels, decoder.output_channels) else: # otherwise check that the channels are preserved, if not specified self.assertEqual(decoder.input_channels, decoder.output_channels) # and if we know the expected channels, check the output match if self.expected_channels: self.assertEqual(self.expected_channels, decoder.output_channels) # do the same with the sampling rate if self.samplerate: self.assertEqual(self.samplerate, decoder.output_samplerate) else: self.assertEqual(decoder.input_samplerate, decoder.output_samplerate) if self.expected_samplerate: self.assertEqual(self.expected_samplerate, decoder.output_samplerate) self.assertEqual(decoder.mime_type(), self.expected_mime_type) expected_totalframes = int(decoder.input_duration * decoder.output_samplerate) input_duration = decoder.input_totalframes / decoder.input_samplerate output_duration = decoder.totalframes() / decoder.output_samplerate if self.test_exact_duration: self.assertEqual(input_duration, output_duration) self.assertEqual(input_duration, decoder.uri_duration) self.assertEqual(self.source_duration, decoder.uri_duration) self.assertEqual(totalframes, expected_totalframes) else: self.assertAlmostEqual(input_duration, output_duration, places=1) self.assertAlmostEqual(input_duration, decoder.uri_duration, places=1) self.assertAlmostEqual(self.source_duration, decoder.uri_duration, places=1) self.assertAlmostEqual(totalframes, expected_totalframes, delta=69)
def tearDown(self): decoder = FileDecoder(uri=self.source, start=self.start, duration=self.duration) decoder.setup(samplerate=self.samplerate, channels=self.channels, blocksize=self.blocksize) totalframes = 0 while True: frames, eod = decoder.process() totalframes += frames.shape[0] if eod or decoder.eod: break self.assertEqual(frames.shape[0], decoder.blocksize()) self.assertEqual(frames.shape[1], decoder.channels()) ratio = decoder.output_samplerate / decoder.input_samplerate if 0: print "input / output_samplerate:", decoder.input_samplerate, '/', decoder.output_samplerate, print "ratio:", ratio print "input / output_channels:", decoder.input_channels, decoder.output_channels print "input_duration:", decoder.input_duration print "input_totalframes:", decoder.input_totalframes print "mime_type", decoder.mime_type() if self.channels: # when specified, check that the channels are the ones requested self.assertEqual(self.channels, decoder.output_channels) else: # otherwise check that the channels are preserved, if not specified self.assertEqual(decoder.input_channels, decoder.output_channels) # and if we know the expected channels, check the output match if self.expected_channels: self.assertEqual(self.expected_channels, decoder.output_channels) # do the same with the sampling rate if self.samplerate: self.assertEqual(self.samplerate, decoder.output_samplerate) else: self.assertEqual(decoder.input_samplerate, decoder.output_samplerate) if self.expected_samplerate: self.assertEqual(self.expected_samplerate, decoder.output_samplerate) self.assertEqual(decoder.mime_type(), self.expected_mime_type) expected_totalframes = int(decoder.input_duration * decoder.output_samplerate) input_duration = decoder.input_totalframes / decoder.input_samplerate output_duration = decoder.totalframes() / decoder.output_samplerate if self.test_exact_duration: self.assertEqual(input_duration, output_duration) self.assertEqual(input_duration, decoder.uri_duration) self.assertEqual(self.source_duration, decoder.uri_duration) self.assertEqual(totalframes, expected_totalframes) else: self.assertAlmostEqual(input_duration, output_duration, places=1) self.assertAlmostEqual(input_duration, decoder.uri_duration, places=1) self.assertAlmostEqual(self.source_duration, decoder.uri_duration, places=1) self.assertAlmostEqual(totalframes, expected_totalframes, delta=69)