Index: webrtc/modules/audio_processing/audio_processing_impl.cc |
diff --git a/webrtc/modules/audio_processing/audio_processing_impl.cc b/webrtc/modules/audio_processing/audio_processing_impl.cc |
index f3ee0a399d54eaefad5020a550816051c421d0eb..743c46368fb991131def9283279b44330106a88d 100644 |
--- a/webrtc/modules/audio_processing/audio_processing_impl.cc |
+++ b/webrtc/modules/audio_processing/audio_processing_impl.cc |
@@ -194,6 +194,7 @@ AudioProcessingImpl::AudioProcessingImpl(const Config& config, |
#ifdef WEBRTC_AUDIOPROC_DEBUG_DUMP |
debug_file_(FileWrapper::Create()), |
event_msg_(new audioproc::Event()), |
+ nr_bytes_left_for_log(-1), |
#endif |
api_format_({{{kSampleRate16kHz, 1, false}, |
{kSampleRate16kHz, 1, false}, |
@@ -930,6 +931,21 @@ int AudioProcessingImpl::StartDebugRecording( |
#endif // WEBRTC_AUDIOPROC_DEBUG_DUMP |
} |
+int AudioProcessingImpl::StartDebugRecording( |
+ const char filename[AudioProcessing::kMaxFilenameSize], |
+ int max_log_size_bytes) { |
+#ifdef WEBRTC_AUDIOPROC_DEBUG_DUMP |
+ nr_bytes_left_for_log = max_log_size_bytes; |
+ int ret_val = StartDebugRecording(filename); |
+ if (ret_val != kNoError) { |
+ nr_bytes_left_for_log = -1; |
hlundin-webrtc
2015/10/30 08:02:21
Is it important to reset to -1 when an error happe
ivoc
2015/11/05 13:14:46
I did this because there was also the other versio
|
+ } |
+ return ret_val; |
+#else |
+ return kUnsupportedFunctionError; |
+#endif // WEBRTC_AUDIOPROC_DEBUG_DUMP |
+} |
+ |
int AudioProcessingImpl::StartDebugRecording(FILE* handle) { |
CriticalSectionScoped crit_scoped(crit_); |
@@ -957,6 +973,21 @@ int AudioProcessingImpl::StartDebugRecording(FILE* handle) { |
#endif // WEBRTC_AUDIOPROC_DEBUG_DUMP |
} |
+int AudioProcessingImpl::StartDebugRecording(FILE* handle, |
+ int max_log_size_bytes) { |
+#ifdef WEBRTC_AUDIOPROC_DEBUG_DUMP |
+ RTC_DCHECK_GT(max_log_size_bytes, 0); |
+ nr_bytes_left_for_log = max_log_size_bytes; |
+ int ret_val = StartDebugRecording(handle); |
+ if (ret_val != kNoError) { |
+ nr_bytes_left_for_log = -1; |
+ } |
+ return ret_val; |
+#else |
+ return kUnsupportedFunctionError; |
+#endif // WEBRTC_AUDIOPROC_DEBUG_DUMP |
+} |
+ |
int AudioProcessingImpl::StartDebugRecordingForPlatformFile( |
rtc::PlatformFile handle) { |
FILE* stream = rtc::FdopenPlatformFileForWriting(handle); |
@@ -1194,6 +1225,16 @@ int AudioProcessingImpl::WriteMessageToDebugFile() { |
return kUnspecifiedError; |
} |
+ if (nr_bytes_left_for_log >= 0) { |
+ nr_bytes_left_for_log -= (sizeof(int32_t) + event_str_.size()); |
kwiberg-webrtc
2015/10/25 02:29:12
You use event_str_.length() below. Are they the sa
ivoc
2015/11/05 13:14:46
for std::string, .size() and .length() are exactly
|
+ if (nr_bytes_left_for_log < 0) { |
+ // Not enough bytes are left to write this message, so stop logging. |
+ nr_bytes_left_for_log = -1; |
+ debug_file_->CloseFile(); |
the sun
2015/10/26 10:37:20
Can you add:
RTC_DCHECK(debug_file_->Open());
at t
hlundin-webrtc
2015/10/30 08:02:21
I agree. I'm also a bit uneasy about setting nr_by
ivoc
2015/11/05 13:14:45
I added the RTC_DCHECK. I removed the code setting
|
+ return kUnspecifiedError; |
+ } |
+ } |
+ |
// Write message preceded by its size. |
if (!debug_file_->Write(&size, sizeof(int32_t))) { |
return kFileError; |