@Test public void testSampleRateChangeBecomesActiveAfterConfigure() throws Exception { // Configure for resampling 44.1 kHz to 48 kHz. sonicAudioProcessor.setOutputSampleRateHz(48000); sonicAudioProcessor.configure(44100, 2, C.ENCODING_PCM_16BIT); // Set a new sample rate, which isn't active yet. sonicAudioProcessor.setOutputSampleRateHz(22050); assertThat(sonicAudioProcessor.getOutputSampleRateHz()).isEqualTo(48000); // The new sample rate takes effect on reconfiguration. sonicAudioProcessor.configure(44100, 2, C.ENCODING_PCM_16BIT); assertThat(sonicAudioProcessor.getOutputSampleRateHz()).isEqualTo(22050); }
@Test public void testReconfigureWithSameSampleRate() throws Exception { // When configured for resampling from 44.1 kHz to 48 kHz, the output sample rate is correct. sonicAudioProcessor.setOutputSampleRateHz(48000); sonicAudioProcessor.configure(44100, 2, C.ENCODING_PCM_16BIT); assertThat(sonicAudioProcessor.getOutputSampleRateHz()).isEqualTo(48000); assertThat(sonicAudioProcessor.isActive()).isTrue(); // When reconfigured with 48 kHz input, there is no resampling. sonicAudioProcessor.configure(48000, 2, C.ENCODING_PCM_16BIT); assertThat(sonicAudioProcessor.getOutputSampleRateHz()).isEqualTo(48000); assertThat(sonicAudioProcessor.isActive()).isFalse(); // When reconfigure with 44.1 kHz input, resampling is enabled again. sonicAudioProcessor.configure(44100, 2, C.ENCODING_PCM_16BIT); assertThat(sonicAudioProcessor.getOutputSampleRateHz()).isEqualTo(48000); assertThat(sonicAudioProcessor.isActive()).isTrue(); }
@Test public void testBecomesActiveAfterConfigure() throws Exception { sonicAudioProcessor.configure(44100, 2, C.ENCODING_PCM_16BIT); // Set a new sample rate. sonicAudioProcessor.setOutputSampleRateHz(22050); // The new sample rate is not active yet. assertThat(sonicAudioProcessor.isActive()).isFalse(); assertThat(sonicAudioProcessor.getOutputSampleRateHz()).isEqualTo(44100); }
@Test public void testNoSampleRateChange() throws Exception { // Configure for resampling 44.1 kHz to 48 kHz. sonicAudioProcessor.setOutputSampleRateHz(48000); sonicAudioProcessor.configure(44100, 2, C.ENCODING_PCM_16BIT); // Reconfigure to not modify the sample rate. sonicAudioProcessor.setOutputSampleRateHz(SonicAudioProcessor.SAMPLE_RATE_NO_CHANGE); sonicAudioProcessor.configure(22050, 2, C.ENCODING_PCM_16BIT); // The sample rate is unmodified, and the audio processor is not active. assertThat(sonicAudioProcessor.getOutputSampleRateHz()).isEqualTo(22050); assertThat(sonicAudioProcessor.isActive()).isFalse(); }