| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2012 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 609 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 620 capture_.capture_audio->CopyTo(formats_.api_format.output_stream(), dest); | 620 capture_.capture_audio->CopyTo(formats_.api_format.output_stream(), dest); |
| 621 | 621 |
| 622 #ifdef WEBRTC_AUDIOPROC_DEBUG_DUMP | 622 #ifdef WEBRTC_AUDIOPROC_DEBUG_DUMP |
| 623 if (debug_dump_.debug_file->Open()) { | 623 if (debug_dump_.debug_file->Open()) { |
| 624 audioproc::Stream* msg = debug_dump_.capture.event_msg->mutable_stream(); | 624 audioproc::Stream* msg = debug_dump_.capture.event_msg->mutable_stream(); |
| 625 const size_t channel_size = | 625 const size_t channel_size = |
| 626 sizeof(float) * formats_.api_format.output_stream().num_frames(); | 626 sizeof(float) * formats_.api_format.output_stream().num_frames(); |
| 627 for (int i = 0; i < formats_.api_format.output_stream().num_channels(); ++i) | 627 for (int i = 0; i < formats_.api_format.output_stream().num_channels(); ++i) |
| 628 msg->add_output_channel(dest[i], channel_size); | 628 msg->add_output_channel(dest[i], channel_size); |
| 629 RETURN_ON_ERR(WriteMessageToDebugFile(debug_dump_.debug_file.get(), | 629 RETURN_ON_ERR(WriteMessageToDebugFile(debug_dump_.debug_file.get(), |
| 630 &debug_dump_.num_bytes_left_for_log_, |
| 630 &crit_debug_, &debug_dump_.capture)); | 631 &crit_debug_, &debug_dump_.capture)); |
| 631 } | 632 } |
| 632 #endif | 633 #endif |
| 633 | 634 |
| 634 return kNoError; | 635 return kNoError; |
| 635 } | 636 } |
| 636 | 637 |
| 637 int AudioProcessingImpl::ProcessStream(AudioFrame* frame) { | 638 int AudioProcessingImpl::ProcessStream(AudioFrame* frame) { |
| 638 { | 639 { |
| 639 // Acquire the capture lock in order to safely call the function | 640 // Acquire the capture lock in order to safely call the function |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 706 capture_.capture_audio->InterleaveTo(frame, | 707 capture_.capture_audio->InterleaveTo(frame, |
| 707 output_copy_needed(is_data_processed())); | 708 output_copy_needed(is_data_processed())); |
| 708 | 709 |
| 709 #ifdef WEBRTC_AUDIOPROC_DEBUG_DUMP | 710 #ifdef WEBRTC_AUDIOPROC_DEBUG_DUMP |
| 710 if (debug_dump_.debug_file->Open()) { | 711 if (debug_dump_.debug_file->Open()) { |
| 711 audioproc::Stream* msg = debug_dump_.capture.event_msg->mutable_stream(); | 712 audioproc::Stream* msg = debug_dump_.capture.event_msg->mutable_stream(); |
| 712 const size_t data_size = | 713 const size_t data_size = |
| 713 sizeof(int16_t) * frame->samples_per_channel_ * frame->num_channels_; | 714 sizeof(int16_t) * frame->samples_per_channel_ * frame->num_channels_; |
| 714 msg->set_output_data(frame->data_, data_size); | 715 msg->set_output_data(frame->data_, data_size); |
| 715 RETURN_ON_ERR(WriteMessageToDebugFile(debug_dump_.debug_file.get(), | 716 RETURN_ON_ERR(WriteMessageToDebugFile(debug_dump_.debug_file.get(), |
| 717 &debug_dump_.num_bytes_left_for_log_, |
| 716 &crit_debug_, &debug_dump_.capture)); | 718 &crit_debug_, &debug_dump_.capture)); |
| 717 } | 719 } |
| 718 #endif | 720 #endif |
| 719 | 721 |
| 720 return kNoError; | 722 return kNoError; |
| 721 } | 723 } |
| 722 | 724 |
| 723 int AudioProcessingImpl::ProcessStreamLocked() { | 725 int AudioProcessingImpl::ProcessStreamLocked() { |
| 724 #ifdef WEBRTC_AUDIOPROC_DEBUG_DUMP | 726 #ifdef WEBRTC_AUDIOPROC_DEBUG_DUMP |
| 725 if (debug_dump_.debug_file->Open()) { | 727 if (debug_dump_.debug_file->Open()) { |
| (...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 871 if (debug_dump_.debug_file->Open()) { | 873 if (debug_dump_.debug_file->Open()) { |
| 872 debug_dump_.render.event_msg->set_type(audioproc::Event::REVERSE_STREAM); | 874 debug_dump_.render.event_msg->set_type(audioproc::Event::REVERSE_STREAM); |
| 873 audioproc::ReverseStream* msg = | 875 audioproc::ReverseStream* msg = |
| 874 debug_dump_.render.event_msg->mutable_reverse_stream(); | 876 debug_dump_.render.event_msg->mutable_reverse_stream(); |
| 875 const size_t channel_size = | 877 const size_t channel_size = |
| 876 sizeof(float) * formats_.api_format.reverse_input_stream().num_frames(); | 878 sizeof(float) * formats_.api_format.reverse_input_stream().num_frames(); |
| 877 for (int i = 0; | 879 for (int i = 0; |
| 878 i < formats_.api_format.reverse_input_stream().num_channels(); ++i) | 880 i < formats_.api_format.reverse_input_stream().num_channels(); ++i) |
| 879 msg->add_channel(src[i], channel_size); | 881 msg->add_channel(src[i], channel_size); |
| 880 RETURN_ON_ERR(WriteMessageToDebugFile(debug_dump_.debug_file.get(), | 882 RETURN_ON_ERR(WriteMessageToDebugFile(debug_dump_.debug_file.get(), |
| 883 &debug_dump_.num_bytes_left_for_log_, |
| 881 &crit_debug_, &debug_dump_.render)); | 884 &crit_debug_, &debug_dump_.render)); |
| 882 } | 885 } |
| 883 #endif | 886 #endif |
| 884 | 887 |
| 885 render_.render_audio->CopyFrom(src, | 888 render_.render_audio->CopyFrom(src, |
| 886 formats_.api_format.reverse_input_stream()); | 889 formats_.api_format.reverse_input_stream()); |
| 887 return ProcessReverseStreamLocked(); | 890 return ProcessReverseStreamLocked(); |
| 888 } | 891 } |
| 889 | 892 |
| 890 int AudioProcessingImpl::ProcessReverseStream(AudioFrame* frame) { | 893 int AudioProcessingImpl::ProcessReverseStream(AudioFrame* frame) { |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 937 | 940 |
| 938 #ifdef WEBRTC_AUDIOPROC_DEBUG_DUMP | 941 #ifdef WEBRTC_AUDIOPROC_DEBUG_DUMP |
| 939 if (debug_dump_.debug_file->Open()) { | 942 if (debug_dump_.debug_file->Open()) { |
| 940 debug_dump_.render.event_msg->set_type(audioproc::Event::REVERSE_STREAM); | 943 debug_dump_.render.event_msg->set_type(audioproc::Event::REVERSE_STREAM); |
| 941 audioproc::ReverseStream* msg = | 944 audioproc::ReverseStream* msg = |
| 942 debug_dump_.render.event_msg->mutable_reverse_stream(); | 945 debug_dump_.render.event_msg->mutable_reverse_stream(); |
| 943 const size_t data_size = | 946 const size_t data_size = |
| 944 sizeof(int16_t) * frame->samples_per_channel_ * frame->num_channels_; | 947 sizeof(int16_t) * frame->samples_per_channel_ * frame->num_channels_; |
| 945 msg->set_data(frame->data_, data_size); | 948 msg->set_data(frame->data_, data_size); |
| 946 RETURN_ON_ERR(WriteMessageToDebugFile(debug_dump_.debug_file.get(), | 949 RETURN_ON_ERR(WriteMessageToDebugFile(debug_dump_.debug_file.get(), |
| 950 &debug_dump_.num_bytes_left_for_log_, |
| 947 &crit_debug_, &debug_dump_.render)); | 951 &crit_debug_, &debug_dump_.render)); |
| 948 } | 952 } |
| 949 #endif | 953 #endif |
| 950 render_.render_audio->DeinterleaveFrom(frame); | 954 render_.render_audio->DeinterleaveFrom(frame); |
| 951 return ProcessReverseStreamLocked(); | 955 return ProcessReverseStreamLocked(); |
| 952 } | 956 } |
| 953 | 957 |
| 954 int AudioProcessingImpl::ProcessReverseStreamLocked() { | 958 int AudioProcessingImpl::ProcessReverseStreamLocked() { |
| 955 AudioBuffer* ra = render_.render_audio.get(); // For brevity. | 959 AudioBuffer* ra = render_.render_audio.get(); // For brevity. |
| 956 if (formats_.rev_proc_format.sample_rate_hz() == kSampleRate32kHz) { | 960 if (formats_.rev_proc_format.sample_rate_hz() == kSampleRate32kHz) { |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1022 rtc::CritScope cs(&crit_capture_); | 1026 rtc::CritScope cs(&crit_capture_); |
| 1023 capture_.delay_offset_ms = offset; | 1027 capture_.delay_offset_ms = offset; |
| 1024 } | 1028 } |
| 1025 | 1029 |
| 1026 int AudioProcessingImpl::delay_offset_ms() const { | 1030 int AudioProcessingImpl::delay_offset_ms() const { |
| 1027 rtc::CritScope cs(&crit_capture_); | 1031 rtc::CritScope cs(&crit_capture_); |
| 1028 return capture_.delay_offset_ms; | 1032 return capture_.delay_offset_ms; |
| 1029 } | 1033 } |
| 1030 | 1034 |
| 1031 int AudioProcessingImpl::StartDebugRecording( | 1035 int AudioProcessingImpl::StartDebugRecording( |
| 1032 const char filename[AudioProcessing::kMaxFilenameSize]) { | 1036 const char filename[AudioProcessing::kMaxFilenameSize], |
| 1037 int64_t max_log_size_bytes) { |
| 1033 // Run in a single-threaded manner. | 1038 // Run in a single-threaded manner. |
| 1034 rtc::CritScope cs_render(&crit_render_); | 1039 rtc::CritScope cs_render(&crit_render_); |
| 1035 rtc::CritScope cs_capture(&crit_capture_); | 1040 rtc::CritScope cs_capture(&crit_capture_); |
| 1036 static_assert(kMaxFilenameSize == FileWrapper::kMaxFileNameSize, ""); | 1041 static_assert(kMaxFilenameSize == FileWrapper::kMaxFileNameSize, ""); |
| 1037 | 1042 |
| 1038 if (filename == nullptr) { | 1043 if (filename == nullptr) { |
| 1039 return kNullPointerError; | 1044 return kNullPointerError; |
| 1040 } | 1045 } |
| 1041 | 1046 |
| 1042 #ifdef WEBRTC_AUDIOPROC_DEBUG_DUMP | 1047 #ifdef WEBRTC_AUDIOPROC_DEBUG_DUMP |
| 1048 debug_dump_.num_bytes_left_for_log_ = max_log_size_bytes; |
| 1043 // Stop any ongoing recording. | 1049 // Stop any ongoing recording. |
| 1044 if (debug_dump_.debug_file->Open()) { | 1050 if (debug_dump_.debug_file->Open()) { |
| 1045 if (debug_dump_.debug_file->CloseFile() == -1) { | 1051 if (debug_dump_.debug_file->CloseFile() == -1) { |
| 1046 return kFileError; | 1052 return kFileError; |
| 1047 } | 1053 } |
| 1048 } | 1054 } |
| 1049 | 1055 |
| 1050 if (debug_dump_.debug_file->OpenFile(filename, false) == -1) { | 1056 if (debug_dump_.debug_file->OpenFile(filename, false) == -1) { |
| 1051 debug_dump_.debug_file->CloseFile(); | 1057 debug_dump_.debug_file->CloseFile(); |
| 1052 return kFileError; | 1058 return kFileError; |
| 1053 } | 1059 } |
| 1054 | 1060 |
| 1055 RETURN_ON_ERR(WriteConfigMessage(true)); | 1061 RETURN_ON_ERR(WriteConfigMessage(true)); |
| 1056 RETURN_ON_ERR(WriteInitMessage()); | 1062 RETURN_ON_ERR(WriteInitMessage()); |
| 1057 return kNoError; | 1063 return kNoError; |
| 1058 #else | 1064 #else |
| 1059 return kUnsupportedFunctionError; | 1065 return kUnsupportedFunctionError; |
| 1060 #endif // WEBRTC_AUDIOPROC_DEBUG_DUMP | 1066 #endif // WEBRTC_AUDIOPROC_DEBUG_DUMP |
| 1061 } | 1067 } |
| 1062 | 1068 |
| 1063 int AudioProcessingImpl::StartDebugRecording(FILE* handle) { | 1069 int AudioProcessingImpl::StartDebugRecording(FILE* handle, |
| 1070 int64_t max_log_size_bytes) { |
| 1064 // Run in a single-threaded manner. | 1071 // Run in a single-threaded manner. |
| 1065 rtc::CritScope cs_render(&crit_render_); | 1072 rtc::CritScope cs_render(&crit_render_); |
| 1066 rtc::CritScope cs_capture(&crit_capture_); | 1073 rtc::CritScope cs_capture(&crit_capture_); |
| 1067 | 1074 |
| 1068 if (handle == nullptr) { | 1075 if (handle == nullptr) { |
| 1069 return kNullPointerError; | 1076 return kNullPointerError; |
| 1070 } | 1077 } |
| 1071 | 1078 |
| 1072 #ifdef WEBRTC_AUDIOPROC_DEBUG_DUMP | 1079 #ifdef WEBRTC_AUDIOPROC_DEBUG_DUMP |
| 1080 debug_dump_.num_bytes_left_for_log_ = max_log_size_bytes; |
| 1081 |
| 1073 // Stop any ongoing recording. | 1082 // Stop any ongoing recording. |
| 1074 if (debug_dump_.debug_file->Open()) { | 1083 if (debug_dump_.debug_file->Open()) { |
| 1075 if (debug_dump_.debug_file->CloseFile() == -1) { | 1084 if (debug_dump_.debug_file->CloseFile() == -1) { |
| 1076 return kFileError; | 1085 return kFileError; |
| 1077 } | 1086 } |
| 1078 } | 1087 } |
| 1079 | 1088 |
| 1080 if (debug_dump_.debug_file->OpenFromFileHandle(handle, true, false) == -1) { | 1089 if (debug_dump_.debug_file->OpenFromFileHandle(handle, true, false) == -1) { |
| 1081 return kFileError; | 1090 return kFileError; |
| 1082 } | 1091 } |
| 1083 | 1092 |
| 1084 RETURN_ON_ERR(WriteConfigMessage(true)); | 1093 RETURN_ON_ERR(WriteConfigMessage(true)); |
| 1085 RETURN_ON_ERR(WriteInitMessage()); | 1094 RETURN_ON_ERR(WriteInitMessage()); |
| 1086 return kNoError; | 1095 return kNoError; |
| 1087 #else | 1096 #else |
| 1088 return kUnsupportedFunctionError; | 1097 return kUnsupportedFunctionError; |
| 1089 #endif // WEBRTC_AUDIOPROC_DEBUG_DUMP | 1098 #endif // WEBRTC_AUDIOPROC_DEBUG_DUMP |
| 1090 } | 1099 } |
| 1091 | 1100 |
| 1092 int AudioProcessingImpl::StartDebugRecordingForPlatformFile( | 1101 int AudioProcessingImpl::StartDebugRecordingForPlatformFile( |
| 1093 rtc::PlatformFile handle) { | 1102 rtc::PlatformFile handle) { |
| 1094 // Run in a single-threaded manner. | 1103 // Run in a single-threaded manner. |
| 1095 rtc::CritScope cs_render(&crit_render_); | 1104 rtc::CritScope cs_render(&crit_render_); |
| 1096 rtc::CritScope cs_capture(&crit_capture_); | 1105 rtc::CritScope cs_capture(&crit_capture_); |
| 1097 FILE* stream = rtc::FdopenPlatformFileForWriting(handle); | 1106 FILE* stream = rtc::FdopenPlatformFileForWriting(handle); |
| 1098 return StartDebugRecording(stream); | 1107 return StartDebugRecording(stream, -1); |
| 1099 } | 1108 } |
| 1100 | 1109 |
| 1101 int AudioProcessingImpl::StopDebugRecording() { | 1110 int AudioProcessingImpl::StopDebugRecording() { |
| 1102 // Run in a single-threaded manner. | 1111 // Run in a single-threaded manner. |
| 1103 rtc::CritScope cs_render(&crit_render_); | 1112 rtc::CritScope cs_render(&crit_render_); |
| 1104 rtc::CritScope cs_capture(&crit_capture_); | 1113 rtc::CritScope cs_capture(&crit_capture_); |
| 1105 | 1114 |
| 1106 #ifdef WEBRTC_AUDIOPROC_DEBUG_DUMP | 1115 #ifdef WEBRTC_AUDIOPROC_DEBUG_DUMP |
| 1107 // We just return if recording hasn't started. | 1116 // We just return if recording hasn't started. |
| 1108 if (debug_dump_.debug_file->Open()) { | 1117 if (debug_dump_.debug_file->Open()) { |
| (...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1369 RTC_HISTOGRAM_ENUMERATION("WebRTC.Audio.NumOfAecSystemDelayJumps", | 1378 RTC_HISTOGRAM_ENUMERATION("WebRTC.Audio.NumOfAecSystemDelayJumps", |
| 1370 capture_.aec_system_delay_jumps, 51); | 1379 capture_.aec_system_delay_jumps, 51); |
| 1371 } | 1380 } |
| 1372 capture_.aec_system_delay_jumps = -1; | 1381 capture_.aec_system_delay_jumps = -1; |
| 1373 capture_.last_aec_system_delay_ms = 0; | 1382 capture_.last_aec_system_delay_ms = 0; |
| 1374 } | 1383 } |
| 1375 | 1384 |
| 1376 #ifdef WEBRTC_AUDIOPROC_DEBUG_DUMP | 1385 #ifdef WEBRTC_AUDIOPROC_DEBUG_DUMP |
| 1377 int AudioProcessingImpl::WriteMessageToDebugFile( | 1386 int AudioProcessingImpl::WriteMessageToDebugFile( |
| 1378 FileWrapper* debug_file, | 1387 FileWrapper* debug_file, |
| 1388 int64_t* filesize_limit_bytes, |
| 1379 rtc::CriticalSection* crit_debug, | 1389 rtc::CriticalSection* crit_debug, |
| 1380 ApmDebugDumpThreadState* debug_state) { | 1390 ApmDebugDumpThreadState* debug_state) { |
| 1381 int32_t size = debug_state->event_msg->ByteSize(); | 1391 int32_t size = debug_state->event_msg->ByteSize(); |
| 1382 if (size <= 0) { | 1392 if (size <= 0) { |
| 1383 return kUnspecifiedError; | 1393 return kUnspecifiedError; |
| 1384 } | 1394 } |
| 1385 #if defined(WEBRTC_ARCH_BIG_ENDIAN) | 1395 #if defined(WEBRTC_ARCH_BIG_ENDIAN) |
| 1386 // TODO(ajm): Use little-endian "on the wire". For the moment, we can be | 1396 // TODO(ajm): Use little-endian "on the wire". For the moment, we can be |
| 1387 // pretty safe in assuming little-endian. | 1397 // pretty safe in assuming little-endian. |
| 1388 #endif | 1398 #endif |
| 1389 | 1399 |
| 1390 if (!debug_state->event_msg->SerializeToString(&debug_state->event_str)) { | 1400 if (!debug_state->event_msg->SerializeToString(&debug_state->event_str)) { |
| 1391 return kUnspecifiedError; | 1401 return kUnspecifiedError; |
| 1392 } | 1402 } |
| 1393 | 1403 |
| 1394 { | 1404 { |
| 1395 // Ensure atomic writes of the message. | 1405 // Ensure atomic writes of the message. |
| 1396 rtc::CritScope cs_capture(crit_debug); | 1406 rtc::CritScope cs_debug(crit_debug); |
| 1407 |
| 1408 RTC_DCHECK(debug_file->Open()); |
| 1409 // Update the byte counter. |
| 1410 if (*filesize_limit_bytes >= 0) { |
| 1411 *filesize_limit_bytes -= |
| 1412 (sizeof(int32_t) + debug_state->event_str.length()); |
| 1413 if (*filesize_limit_bytes < 0) { |
| 1414 // Not enough bytes are left to write this message, so stop logging. |
| 1415 debug_file->CloseFile(); |
| 1416 return kNoError; |
| 1417 } |
| 1418 } |
| 1397 // Write message preceded by its size. | 1419 // Write message preceded by its size. |
| 1398 if (!debug_file->Write(&size, sizeof(int32_t))) { | 1420 if (!debug_file->Write(&size, sizeof(int32_t))) { |
| 1399 return kFileError; | 1421 return kFileError; |
| 1400 } | 1422 } |
| 1401 if (!debug_file->Write(debug_state->event_str.data(), | 1423 if (!debug_file->Write(debug_state->event_str.data(), |
| 1402 debug_state->event_str.length())) { | 1424 debug_state->event_str.length())) { |
| 1403 return kFileError; | 1425 return kFileError; |
| 1404 } | 1426 } |
| 1405 } | 1427 } |
| 1406 | 1428 |
| (...skipping 14 matching lines...) Expand all Loading... |
| 1421 msg->set_num_reverse_channels( | 1443 msg->set_num_reverse_channels( |
| 1422 formats_.api_format.reverse_input_stream().num_channels()); | 1444 formats_.api_format.reverse_input_stream().num_channels()); |
| 1423 msg->set_reverse_sample_rate( | 1445 msg->set_reverse_sample_rate( |
| 1424 formats_.api_format.reverse_input_stream().sample_rate_hz()); | 1446 formats_.api_format.reverse_input_stream().sample_rate_hz()); |
| 1425 msg->set_output_sample_rate( | 1447 msg->set_output_sample_rate( |
| 1426 formats_.api_format.output_stream().sample_rate_hz()); | 1448 formats_.api_format.output_stream().sample_rate_hz()); |
| 1427 // TODO(ekmeyerson): Add reverse output fields to | 1449 // TODO(ekmeyerson): Add reverse output fields to |
| 1428 // debug_dump_.capture.event_msg. | 1450 // debug_dump_.capture.event_msg. |
| 1429 | 1451 |
| 1430 RETURN_ON_ERR(WriteMessageToDebugFile(debug_dump_.debug_file.get(), | 1452 RETURN_ON_ERR(WriteMessageToDebugFile(debug_dump_.debug_file.get(), |
| 1453 &debug_dump_.num_bytes_left_for_log_, |
| 1431 &crit_debug_, &debug_dump_.capture)); | 1454 &crit_debug_, &debug_dump_.capture)); |
| 1432 return kNoError; | 1455 return kNoError; |
| 1433 } | 1456 } |
| 1434 | 1457 |
| 1435 int AudioProcessingImpl::WriteConfigMessage(bool forced) { | 1458 int AudioProcessingImpl::WriteConfigMessage(bool forced) { |
| 1436 audioproc::Config config; | 1459 audioproc::Config config; |
| 1437 | 1460 |
| 1438 config.set_aec_enabled(public_submodules_->echo_cancellation->is_enabled()); | 1461 config.set_aec_enabled(public_submodules_->echo_cancellation->is_enabled()); |
| 1439 config.set_aec_delay_agnostic_enabled( | 1462 config.set_aec_delay_agnostic_enabled( |
| 1440 public_submodules_->echo_cancellation->is_delay_agnostic_enabled()); | 1463 public_submodules_->echo_cancellation->is_delay_agnostic_enabled()); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1473 debug_dump_.capture.last_serialized_config == serialized_config) { | 1496 debug_dump_.capture.last_serialized_config == serialized_config) { |
| 1474 return kNoError; | 1497 return kNoError; |
| 1475 } | 1498 } |
| 1476 | 1499 |
| 1477 debug_dump_.capture.last_serialized_config = serialized_config; | 1500 debug_dump_.capture.last_serialized_config = serialized_config; |
| 1478 | 1501 |
| 1479 debug_dump_.capture.event_msg->set_type(audioproc::Event::CONFIG); | 1502 debug_dump_.capture.event_msg->set_type(audioproc::Event::CONFIG); |
| 1480 debug_dump_.capture.event_msg->mutable_config()->CopyFrom(config); | 1503 debug_dump_.capture.event_msg->mutable_config()->CopyFrom(config); |
| 1481 | 1504 |
| 1482 RETURN_ON_ERR(WriteMessageToDebugFile(debug_dump_.debug_file.get(), | 1505 RETURN_ON_ERR(WriteMessageToDebugFile(debug_dump_.debug_file.get(), |
| 1506 &debug_dump_.num_bytes_left_for_log_, |
| 1483 &crit_debug_, &debug_dump_.capture)); | 1507 &crit_debug_, &debug_dump_.capture)); |
| 1484 return kNoError; | 1508 return kNoError; |
| 1485 } | 1509 } |
| 1486 #endif // WEBRTC_AUDIOPROC_DEBUG_DUMP | 1510 #endif // WEBRTC_AUDIOPROC_DEBUG_DUMP |
| 1487 | 1511 |
| 1488 } // namespace webrtc | 1512 } // namespace webrtc |
| OLD | NEW |