| OLD | NEW | 
|    1 /* |    1 /* | 
|    2  *  Copyright (c) 2015 The WebRTC project authors. All Rights Reserved. |    2  *  Copyright (c) 2015 The WebRTC project authors. All Rights Reserved. | 
|    3  * |    3  * | 
|    4  *  Use of this source code is governed by a BSD-style license |    4  *  Use of this source code is governed by a BSD-style license | 
|    5  *  that can be found in the LICENSE file in the root of the source |    5  *  that can be found in the LICENSE file in the root of the source | 
|    6  *  tree. An additional intellectual property rights grant can be found |    6  *  tree. An additional intellectual property rights grant can be found | 
|    7  *  in the file PATENTS.  All contributing project authors may |    7  *  in the file PATENTS.  All contributing project authors may | 
|    8  *  be found in the AUTHORS file in the root of the source tree. |    8  *  be found in the AUTHORS file in the root of the source tree. | 
|    9  */ |    9  */ | 
|   10  |   10  | 
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   64  |   64  | 
|   65 // AudioManager implementation |   65 // AudioManager implementation | 
|   66 AudioManager::AudioManager() |   66 AudioManager::AudioManager() | 
|   67     : j_environment_(JVM::GetInstance()->environment()), |   67     : j_environment_(JVM::GetInstance()->environment()), | 
|   68       audio_layer_(AudioDeviceModule::kPlatformDefaultAudio), |   68       audio_layer_(AudioDeviceModule::kPlatformDefaultAudio), | 
|   69       initialized_(false), |   69       initialized_(false), | 
|   70       hardware_aec_(false), |   70       hardware_aec_(false), | 
|   71       hardware_agc_(false), |   71       hardware_agc_(false), | 
|   72       hardware_ns_(false), |   72       hardware_ns_(false), | 
|   73       low_latency_playout_(false), |   73       low_latency_playout_(false), | 
|   74       delay_estimate_in_milliseconds_(0) { |   74       delay_estimate_in_milliseconds_(0), | 
 |   75       output_stream_type_(0) { | 
|   75   ALOGD("ctor%s", GetThreadInfo().c_str()); |   76   ALOGD("ctor%s", GetThreadInfo().c_str()); | 
|   76   RTC_CHECK(j_environment_); |   77   RTC_CHECK(j_environment_); | 
|   77   JNINativeMethod native_methods[] = { |   78   JNINativeMethod native_methods[] = { | 
|   78       {"nativeCacheAudioParameters", |   79       {"nativeCacheAudioParameters", | 
|   79        "(IIZZZZIIJ)V", |   80        "(IIZZZZIIIJ)V", | 
|   80        reinterpret_cast<void*>(&webrtc::AudioManager::CacheAudioParameters)}}; |   81        reinterpret_cast<void*>(&webrtc::AudioManager::CacheAudioParameters)}}; | 
|   81   j_native_registration_ = j_environment_->RegisterNatives( |   82   j_native_registration_ = j_environment_->RegisterNatives( | 
|   82       "org/webrtc/voiceengine/WebRtcAudioManager", |   83       "org/webrtc/voiceengine/WebRtcAudioManager", | 
|   83       native_methods, arraysize(native_methods)); |   84       native_methods, arraysize(native_methods)); | 
|   84   j_audio_manager_.reset(new JavaAudioManager( |   85   j_audio_manager_.reset(new JavaAudioManager( | 
|   85       j_native_registration_.get(), |   86       j_native_registration_.get(), | 
|   86       j_native_registration_->NewObject( |   87       j_native_registration_->NewObject( | 
|   87           "<init>", "(Landroid/content/Context;J)V", |   88           "<init>", "(Landroid/content/Context;J)V", | 
|   88           JVM::GetInstance()->context(), PointerTojlong(this)))); |   89           JVM::GetInstance()->context(), PointerTojlong(this)))); | 
|   89 } |   90 } | 
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  172 void JNICALL AudioManager::CacheAudioParameters(JNIEnv* env, |  173 void JNICALL AudioManager::CacheAudioParameters(JNIEnv* env, | 
|  173                                                 jobject obj, |  174                                                 jobject obj, | 
|  174                                                 jint sample_rate, |  175                                                 jint sample_rate, | 
|  175                                                 jint channels, |  176                                                 jint channels, | 
|  176                                                 jboolean hardware_aec, |  177                                                 jboolean hardware_aec, | 
|  177                                                 jboolean hardware_agc, |  178                                                 jboolean hardware_agc, | 
|  178                                                 jboolean hardware_ns, |  179                                                 jboolean hardware_ns, | 
|  179                                                 jboolean low_latency_output, |  180                                                 jboolean low_latency_output, | 
|  180                                                 jint output_buffer_size, |  181                                                 jint output_buffer_size, | 
|  181                                                 jint input_buffer_size, |  182                                                 jint input_buffer_size, | 
 |  183                                                 jint output_stream_type, | 
|  182                                                 jlong native_audio_manager) { |  184                                                 jlong native_audio_manager) { | 
|  183   webrtc::AudioManager* this_object = |  185   webrtc::AudioManager* this_object = | 
|  184       reinterpret_cast<webrtc::AudioManager*>(native_audio_manager); |  186       reinterpret_cast<webrtc::AudioManager*>(native_audio_manager); | 
|  185   this_object->OnCacheAudioParameters( |  187   this_object->OnCacheAudioParameters( | 
|  186       env, sample_rate, channels, hardware_aec, hardware_agc, hardware_ns, |  188       env, sample_rate, channels, hardware_aec, hardware_agc, hardware_ns, | 
|  187       low_latency_output, output_buffer_size, input_buffer_size); |  189       low_latency_output, output_buffer_size, input_buffer_size, | 
 |  190       output_stream_type); | 
|  188 } |  191 } | 
|  189  |  192  | 
|  190 void AudioManager::OnCacheAudioParameters(JNIEnv* env, |  193 void AudioManager::OnCacheAudioParameters(JNIEnv* env, | 
|  191                                           jint sample_rate, |  194                                           jint sample_rate, | 
|  192                                           jint channels, |  195                                           jint channels, | 
|  193                                           jboolean hardware_aec, |  196                                           jboolean hardware_aec, | 
|  194                                           jboolean hardware_agc, |  197                                           jboolean hardware_agc, | 
|  195                                           jboolean hardware_ns, |  198                                           jboolean hardware_ns, | 
|  196                                           jboolean low_latency_output, |  199                                           jboolean low_latency_output, | 
|  197                                           jint output_buffer_size, |  200                                           jint output_buffer_size, | 
|  198                                           jint input_buffer_size) { |  201                                           jint input_buffer_size, | 
 |  202                                           jint output_stream_type) { | 
|  199   ALOGD("OnCacheAudioParameters%s", GetThreadInfo().c_str()); |  203   ALOGD("OnCacheAudioParameters%s", GetThreadInfo().c_str()); | 
|  200   ALOGD("hardware_aec: %d", hardware_aec); |  204   ALOGD("hardware_aec: %d", hardware_aec); | 
|  201   ALOGD("hardware_agc: %d", hardware_agc); |  205   ALOGD("hardware_agc: %d", hardware_agc); | 
|  202   ALOGD("hardware_ns: %d", hardware_ns); |  206   ALOGD("hardware_ns: %d", hardware_ns); | 
|  203   ALOGD("low_latency_output: %d", low_latency_output); |  207   ALOGD("low_latency_output: %d", low_latency_output); | 
|  204   ALOGD("sample_rate: %d", sample_rate); |  208   ALOGD("sample_rate: %d", sample_rate); | 
|  205   ALOGD("channels: %d", channels); |  209   ALOGD("channels: %d", channels); | 
|  206   ALOGD("output_buffer_size: %d", output_buffer_size); |  210   ALOGD("output_buffer_size: %d", output_buffer_size); | 
|  207   ALOGD("input_buffer_size: %d", input_buffer_size); |  211   ALOGD("input_buffer_size: %d", input_buffer_size); | 
 |  212   ALOGD("output_stream_type: %d", output_stream_type); | 
|  208   RTC_DCHECK(thread_checker_.CalledOnValidThread()); |  213   RTC_DCHECK(thread_checker_.CalledOnValidThread()); | 
|  209   hardware_aec_ = hardware_aec; |  214   hardware_aec_ = hardware_aec; | 
|  210   hardware_agc_ = hardware_agc; |  215   hardware_agc_ = hardware_agc; | 
|  211   hardware_ns_ = hardware_ns; |  216   hardware_ns_ = hardware_ns; | 
|  212   low_latency_playout_ = low_latency_output; |  217   low_latency_playout_ = low_latency_output; | 
 |  218   output_stream_type_ = output_stream_type; | 
|  213   // TODO(henrika): add support for stereo output. |  219   // TODO(henrika): add support for stereo output. | 
|  214   playout_parameters_.reset(sample_rate, channels, |  220   playout_parameters_.reset(sample_rate, channels, | 
|  215                             static_cast<size_t>(output_buffer_size)); |  221                             static_cast<size_t>(output_buffer_size)); | 
|  216   record_parameters_.reset(sample_rate, channels, |  222   record_parameters_.reset(sample_rate, channels, | 
|  217                            static_cast<size_t>(input_buffer_size)); |  223                            static_cast<size_t>(input_buffer_size)); | 
|  218 } |  224 } | 
|  219  |  225  | 
|  220 const AudioParameters& AudioManager::GetPlayoutAudioParameters() { |  226 const AudioParameters& AudioManager::GetPlayoutAudioParameters() { | 
|  221   RTC_CHECK(playout_parameters_.is_valid()); |  227   RTC_CHECK(playout_parameters_.is_valid()); | 
|  222   RTC_DCHECK(thread_checker_.CalledOnValidThread()); |  228   RTC_DCHECK(thread_checker_.CalledOnValidThread()); | 
|  223   return playout_parameters_; |  229   return playout_parameters_; | 
|  224 } |  230 } | 
|  225  |  231  | 
|  226 const AudioParameters& AudioManager::GetRecordAudioParameters() { |  232 const AudioParameters& AudioManager::GetRecordAudioParameters() { | 
|  227   RTC_CHECK(record_parameters_.is_valid()); |  233   RTC_CHECK(record_parameters_.is_valid()); | 
|  228   RTC_DCHECK(thread_checker_.CalledOnValidThread()); |  234   RTC_DCHECK(thread_checker_.CalledOnValidThread()); | 
|  229   return record_parameters_; |  235   return record_parameters_; | 
|  230 } |  236 } | 
|  231  |  237  | 
|  232 }  // namespace webrtc |  238 }  // namespace webrtc | 
| OLD | NEW |