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 = 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 testWebMVideo(self): "Test webm encoding, video" from timeside.plugins.encoder.webm import WebMEncoder self.encoder_function = WebMEncoder self.test_duration = False # webmmux encoder with streamable=true # does not return a valid duration if not hasattr(self, 'sink'): file_extension = '.' + self.encoder_function.file_extension() self.sink = tmp_file_sink(prefix=self.__class__.__name__, suffix=file_extension) self.encoder = self.encoder_function(self.sink, overwrite=self.overwrite, video=True)
def testWebMVideo(self): "Test webm encoding, video" from timeside.encoder.webm import WebMEncoder self.encoder_function = WebMEncoder self.test_duration = False # webmmux encoder with streamable=true # does not return a valid duration if not hasattr(self, 'sink'): file_extension = '.' + self.encoder_function.file_extension() self.sink = tmp_file_sink(prefix=self.__class__.__name__, suffix=file_extension) self.encoder = self.encoder_function(self.sink, overwrite=self.overwrite, video=True)
def tearDown(self): # Source through ArrayDecoder decoder = ArrayDecoder(self.generate_source(), samplerate=self.samplerate) # Encoder if not hasattr(self, 'sink'): file_extension = '.' + self.encoder_function.file_extension() self.sink = tmp_file_sink(prefix=self.__class__.__name__, suffix=file_extension) if not hasattr(self, 'encoder'): self.encoder = self.encoder_function(self.sink, overwrite=self.overwrite) # Run Pipe (decoder | self.encoder).run() if self.encode_to_file: media_info = get_media_uri_info(get_uri(self.sink)) media_duration = media_info['duration'] media_channels = media_info['streams'][0]['channels'] media_samplerate = media_info['streams'][0]['samplerate'] os.unlink(self.sink) if self.test_duration: self.assertAlmostEqual(self.source_duration, media_duration, delta=self.delta) if self.test_channels: self.assertEqual(self.channels, media_channels) else: self.assertEqual(2, media_channels) # voaacenc bug ? self.assertEqual(media_samplerate, self.samplerate) if 0: import commands print commands.getoutput('sndfile-info ' + self.sink) self.assertEqual(self.expected_total_frames, self.encoder.num_samples) self.assertEqual(self.channels, self.encoder.channels()) self.assertEqual(self.samplerate, self.encoder.samplerate()) self.assertEqual(self.source_duration, self.encoder.num_samples / self.encoder.samplerate())
def tearDown(self): # Source through ArrayDecoder decoder = ArrayDecoder(self.generate_source(), samplerate=self.samplerate) # Encoder if not hasattr(self, 'sink'): file_extension = '.' + self.encoder_function.file_extension() self.sink = tmp_file_sink(prefix=self.__class__.__name__, suffix=file_extension) if not hasattr(self, 'encoder'): self.encoder = self.encoder_function(self.sink, overwrite=self.overwrite) # Run Pipe (decoder | self.encoder).run() if self.encode_to_file: media_info = get_media_uri_info(get_uri(self.sink)) media_duration = media_info['duration'] media_channels = media_info['streams'][0]['channels'] media_samplerate = media_info['streams'][0]['samplerate'] os.unlink(self.sink) if self.test_duration: self.assertAlmostEqual(self.source_duration, media_duration, delta=self.delta) if self.test_channels: self.assertEqual(self.channels, media_channels) else: self.assertEqual(2, media_channels) # voaacenc bug ? self.assertEqual(media_samplerate, self.samplerate) if 0: import commands print commands.getoutput('sndfile-info ' + self.sink) self.assertEqual(self.expected_total_frames, self.encoder.num_samples) self.assertEqual(self.channels, self.encoder.channels()) self.assertEqual(self.samplerate, self.encoder.samplerate()) self.assertEqual(self.source_duration, self.encoder.num_samples/self.encoder.samplerate())
def tearDown(self): decoder = FileDecoder(self.source) file_extension = '.' + self.encoder_function.file_extension() self.target = tmp_file_sink(prefix=self.__class__.__name__, suffix=file_extension) encoder = self.encoder_function(self.target) (decoder | encoder).run() decoder_encoded = FileDecoder(self.target) from timeside.analyzer import Waveform a = Waveform() # Arbitrary analyzer for running the next pipe (decoder_encoded | a).run() import os 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)