aboutsummaryrefslogtreecommitdiff
path: root/webrtc/modules
diff options
context:
space:
mode:
authorivoc <ivoc@webrtc.org>2015-12-19 10:14:10 -0800
committerCommit bot <commit-bot@chromium.org>2015-12-19 18:14:18 +0000
commita4df27b6713583045e51e20c4eb93718d15ca33e (patch)
treec9576bbe1d9274c9c7c9afde21d81d041363cf34 /webrtc/modules
parentf4f5cb09277d5ef6aeac8341e5f54a055867803a (diff)
downloadwebrtc-a4df27b6713583045e51e20c4eb93718d15ca33e.tar.gz
Revert of Reland "Added option to specify a maximum file size when recording an AEC dump." (patchset #2 id:20001 of https://codereview.webrtc.org/1541633002/ )
Reason for revert: Compile error on Android needs to be fixed before relanding. Original issue's description: > Reland "Added option to specify a maximum file size when recording an AEC dump.", commit ae2c5ad12afc8cc29fe9c59dea432b697b871a87. > > The revert of the original CL was commit 36d4c545007129446e551c45c17b25377dce89a4. > Original review: https://codereview.webrtc.org/1413483003/ > > The original CL changes a function on audio_processing.h that is used by Chrome, this CL adds back the old function. > > NOTRY=true > TBR=glaznev@webrtc.org, henrik.lundin@webrtc.org, solenberg@google.com, henrikg@webrtc.org, perkj@webrtc.org > BUG=webrtc:4741 > > Committed: https://crrev.com/f4f5cb09277d5ef6aeac8341e5f54a055867803a > Cr-Commit-Position: refs/heads/master@{#11093} TBR=glaznev@webrtc.org,henrik.lundin@webrtc.org,solenberg@google.com,henrikg@webrtc.org,perkj@webrtc.org,kwiberg@webrtc.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=webrtc:4741 Review URL: https://codereview.webrtc.org/1537213002 Cr-Commit-Position: refs/heads/master@{#11094}
Diffstat (limited to 'webrtc/modules')
-rw-r--r--webrtc/modules/audio_processing/audio_processing_impl.cc32
-rw-r--r--webrtc/modules/audio_processing/audio_processing_impl.h9
-rw-r--r--webrtc/modules/audio_processing/include/audio_processing.h15
-rw-r--r--webrtc/modules/audio_processing/include/mock_audio_processing.h9
-rw-r--r--webrtc/modules/audio_processing/test/audio_processing_unittest.cc45
-rw-r--r--webrtc/modules/audio_processing/test/debug_dump_test.cc2
-rw-r--r--webrtc/modules/audio_processing/test/process_test.cc2
7 files changed, 26 insertions, 88 deletions
diff --git a/webrtc/modules/audio_processing/audio_processing_impl.cc b/webrtc/modules/audio_processing/audio_processing_impl.cc
index b79b4f0c76..a332945343 100644
--- a/webrtc/modules/audio_processing/audio_processing_impl.cc
+++ b/webrtc/modules/audio_processing/audio_processing_impl.cc
@@ -632,7 +632,6 @@ int AudioProcessingImpl::ProcessStream(const float* const* src,
for (int i = 0; i < formats_.api_format.output_stream().num_channels(); ++i)
msg->add_output_channel(dest[i], channel_size);
RETURN_ON_ERR(WriteMessageToDebugFile(debug_dump_.debug_file.get(),
- &debug_dump_.num_bytes_left_for_log_,
&crit_debug_, &debug_dump_.capture));
}
#endif
@@ -720,7 +719,6 @@ int AudioProcessingImpl::ProcessStream(AudioFrame* frame) {
sizeof(int16_t) * frame->samples_per_channel_ * frame->num_channels_;
msg->set_output_data(frame->data_, data_size);
RETURN_ON_ERR(WriteMessageToDebugFile(debug_dump_.debug_file.get(),
- &debug_dump_.num_bytes_left_for_log_,
&crit_debug_, &debug_dump_.capture));
}
#endif
@@ -888,7 +886,6 @@ int AudioProcessingImpl::AnalyzeReverseStreamLocked(
i < formats_.api_format.reverse_input_stream().num_channels(); ++i)
msg->add_channel(src[i], channel_size);
RETURN_ON_ERR(WriteMessageToDebugFile(debug_dump_.debug_file.get(),
- &debug_dump_.num_bytes_left_for_log_,
&crit_debug_, &debug_dump_.render));
}
#endif
@@ -957,7 +954,6 @@ int AudioProcessingImpl::AnalyzeReverseStream(AudioFrame* frame) {
sizeof(int16_t) * frame->samples_per_channel_ * frame->num_channels_;
msg->set_data(frame->data_, data_size);
RETURN_ON_ERR(WriteMessageToDebugFile(debug_dump_.debug_file.get(),
- &debug_dump_.num_bytes_left_for_log_,
&crit_debug_, &debug_dump_.render));
}
#endif
@@ -1043,8 +1039,7 @@ int AudioProcessingImpl::delay_offset_ms() const {
}
int AudioProcessingImpl::StartDebugRecording(
- const char filename[AudioProcessing::kMaxFilenameSize],
- int64_t max_log_size_bytes) {
+ const char filename[AudioProcessing::kMaxFilenameSize]) {
// Run in a single-threaded manner.
rtc::CritScope cs_render(&crit_render_);
rtc::CritScope cs_capture(&crit_capture_);
@@ -1055,7 +1050,6 @@ int AudioProcessingImpl::StartDebugRecording(
}
#ifdef WEBRTC_AUDIOPROC_DEBUG_DUMP
- debug_dump_.num_bytes_left_for_log_ = max_log_size_bytes;
// Stop any ongoing recording.
if (debug_dump_.debug_file->Open()) {
if (debug_dump_.debug_file->CloseFile() == -1) {
@@ -1076,8 +1070,7 @@ int AudioProcessingImpl::StartDebugRecording(
#endif // WEBRTC_AUDIOPROC_DEBUG_DUMP
}
-int AudioProcessingImpl::StartDebugRecording(FILE* handle,
- int64_t max_log_size_bytes) {
+int AudioProcessingImpl::StartDebugRecording(FILE* handle) {
// Run in a single-threaded manner.
rtc::CritScope cs_render(&crit_render_);
rtc::CritScope cs_capture(&crit_capture_);
@@ -1087,8 +1080,6 @@ int AudioProcessingImpl::StartDebugRecording(FILE* handle,
}
#ifdef WEBRTC_AUDIOPROC_DEBUG_DUMP
- debug_dump_.num_bytes_left_for_log_ = max_log_size_bytes;
-
// Stop any ongoing recording.
if (debug_dump_.debug_file->Open()) {
if (debug_dump_.debug_file->CloseFile() == -1) {
@@ -1114,7 +1105,7 @@ int AudioProcessingImpl::StartDebugRecordingForPlatformFile(
rtc::CritScope cs_render(&crit_render_);
rtc::CritScope cs_capture(&crit_capture_);
FILE* stream = rtc::FdopenPlatformFileForWriting(handle);
- return StartDebugRecording(stream, -1);
+ return StartDebugRecording(stream);
}
int AudioProcessingImpl::StopDebugRecording() {
@@ -1409,7 +1400,6 @@ void AudioProcessingImpl::UpdateHistogramsOnCallEnd() {
#ifdef WEBRTC_AUDIOPROC_DEBUG_DUMP
int AudioProcessingImpl::WriteMessageToDebugFile(
FileWrapper* debug_file,
- int64_t* filesize_limit_bytes,
rtc::CriticalSection* crit_debug,
ApmDebugDumpThreadState* debug_state) {
int32_t size = debug_state->event_msg->ByteSize();
@@ -1427,19 +1417,7 @@ int AudioProcessingImpl::WriteMessageToDebugFile(
{
// Ensure atomic writes of the message.
- rtc::CritScope cs_debug(crit_debug);
-
- RTC_DCHECK(debug_file->Open());
- // Update the byte counter.
- if (*filesize_limit_bytes >= 0) {
- *filesize_limit_bytes -=
- (sizeof(int32_t) + debug_state->event_str.length());
- if (*filesize_limit_bytes < 0) {
- // Not enough bytes are left to write this message, so stop logging.
- debug_file->CloseFile();
- return kNoError;
- }
- }
+ rtc::CritScope cs_capture(crit_debug);
// Write message preceded by its size.
if (!debug_file->Write(&size, sizeof(int32_t))) {
return kFileError;
@@ -1474,7 +1452,6 @@ int AudioProcessingImpl::WriteInitMessage() {
// debug_dump_.capture.event_msg.
RETURN_ON_ERR(WriteMessageToDebugFile(debug_dump_.debug_file.get(),
- &debug_dump_.num_bytes_left_for_log_,
&crit_debug_, &debug_dump_.capture));
return kNoError;
}
@@ -1527,7 +1504,6 @@ int AudioProcessingImpl::WriteConfigMessage(bool forced) {
debug_dump_.capture.event_msg->mutable_config()->CopyFrom(config);
RETURN_ON_ERR(WriteMessageToDebugFile(debug_dump_.debug_file.get(),
- &debug_dump_.num_bytes_left_for_log_,
&crit_debug_, &debug_dump_.capture));
return kNoError;
}
diff --git a/webrtc/modules/audio_processing/audio_processing_impl.h b/webrtc/modules/audio_processing/audio_processing_impl.h
index b720bbf1bc..3506ac4dc0 100644
--- a/webrtc/modules/audio_processing/audio_processing_impl.h
+++ b/webrtc/modules/audio_processing/audio_processing_impl.h
@@ -57,9 +57,8 @@ class AudioProcessingImpl : public AudioProcessing {
int Initialize(const ProcessingConfig& processing_config) override;
void SetExtraOptions(const Config& config) override;
void UpdateHistogramsOnCallEnd() override;
- int StartDebugRecording(const char filename[kMaxFilenameSize],
- int64_t max_log_size_bytes) override;
- int StartDebugRecording(FILE* handle, int64_t max_log_size_bytes) override;
+ int StartDebugRecording(const char filename[kMaxFilenameSize]) override;
+ int StartDebugRecording(FILE* handle) override;
int StartDebugRecordingForPlatformFile(rtc::PlatformFile handle) override;
int StopDebugRecording() override;
@@ -144,9 +143,6 @@ class AudioProcessingImpl : public AudioProcessing {
struct ApmDebugDumpState {
ApmDebugDumpState() : debug_file(FileWrapper::Create()) {}
- // Number of bytes that can still be written to the log before the maximum
- // size is reached. A value of <= 0 indicates that no limit is used.
- int64_t num_bytes_left_for_log_ = -1;
rtc::scoped_ptr<FileWrapper> debug_file;
ApmDebugDumpThreadState render;
ApmDebugDumpThreadState capture;
@@ -225,7 +221,6 @@ class AudioProcessingImpl : public AudioProcessing {
// TODO(andrew): make this more graceful. Ideally we would split this stuff
// out into a separate class with an "enabled" and "disabled" implementation.
static int WriteMessageToDebugFile(FileWrapper* debug_file,
- int64_t* filesize_limit_bytes,
rtc::CriticalSection* crit_debug,
ApmDebugDumpThreadState* debug_state);
int WriteInitMessage() EXCLUSIVE_LOCKS_REQUIRED(crit_render_, crit_capture_);
diff --git a/webrtc/modules/audio_processing/include/audio_processing.h b/webrtc/modules/audio_processing/include/audio_processing.h
index c96f23a228..5fcc4d4672 100644
--- a/webrtc/modules/audio_processing/include/audio_processing.h
+++ b/webrtc/modules/audio_processing/include/audio_processing.h
@@ -408,22 +408,13 @@ class AudioProcessing {
// Starts recording debugging information to a file specified by |filename|,
// a NULL-terminated string. If there is an ongoing recording, the old file
// will be closed, and recording will continue in the newly specified file.
- // An already existing file will be overwritten without warning. A maximum
- // file size (in bytes) for the log can be specified. The logging is stopped
- // once the limit has been reached. If max_log_size_bytes is set to a value
- // <= 0, no limit will be used.
+ // An already existing file will be overwritten without warning.
static const size_t kMaxFilenameSize = 1024;
- virtual int StartDebugRecording(const char filename[kMaxFilenameSize],
- int64_t max_log_size_bytes) = 0;
+ virtual int StartDebugRecording(const char filename[kMaxFilenameSize]) = 0;
// Same as above but uses an existing file handle. Takes ownership
// of |handle| and closes it at StopDebugRecording().
- virtual int StartDebugRecording(FILE* handle, int64_t max_log_size_bytes) = 0;
-
- // TODO(ivoc): Remove this function after Chromium switches to the one above.
- virtual int StartDebugRecording(FILE* handle) {
- return StartDebugRecording(handle, -1);
- }
+ virtual int StartDebugRecording(FILE* handle) = 0;
// Same as above but uses an existing PlatformFile handle. Takes ownership
// of |handle| and closes it at StopDebugRecording().
diff --git a/webrtc/modules/audio_processing/include/mock_audio_processing.h b/webrtc/modules/audio_processing/include/mock_audio_processing.h
index 3aea406bc8..4ff52baf1c 100644
--- a/webrtc/modules/audio_processing/include/mock_audio_processing.h
+++ b/webrtc/modules/audio_processing/include/mock_audio_processing.h
@@ -250,11 +250,10 @@ class MockAudioProcessing : public AudioProcessing {
void(int offset));
MOCK_CONST_METHOD0(delay_offset_ms,
int());
- MOCK_METHOD2(StartDebugRecording,
- int(const char filename[kMaxFilenameSize],
- int64_t max_log_size_bytes));
- MOCK_METHOD2(StartDebugRecording,
- int(FILE* handle, int64_t max_log_size_bytes));
+ MOCK_METHOD1(StartDebugRecording,
+ int(const char filename[kMaxFilenameSize]));
+ MOCK_METHOD1(StartDebugRecording,
+ int(FILE* handle));
MOCK_METHOD0(StopDebugRecording,
int());
MOCK_METHOD0(UpdateHistogramsOnCallEnd, void());
diff --git a/webrtc/modules/audio_processing/test/audio_processing_unittest.cc b/webrtc/modules/audio_processing/test/audio_processing_unittest.cc
index b6b94f0fce..eff791d129 100644
--- a/webrtc/modules/audio_processing/test/audio_processing_unittest.cc
+++ b/webrtc/modules/audio_processing/test/audio_processing_unittest.cc
@@ -388,8 +388,7 @@ class ApmTest : public ::testing::Test {
int AnalyzeReverseStreamChooser(Format format);
void ProcessDebugDump(const std::string& in_filename,
const std::string& out_filename,
- Format format,
- int max_size_bytes);
+ Format format);
void VerifyDebugDumpTest(Format format);
const std::string output_path_;
@@ -1712,8 +1711,7 @@ TEST_F(ApmTest, SplittingFilter) {
#ifdef WEBRTC_AUDIOPROC_DEBUG_DUMP
void ApmTest::ProcessDebugDump(const std::string& in_filename,
const std::string& out_filename,
- Format format,
- int max_size_bytes) {
+ Format format) {
FILE* in_file = fopen(in_filename.c_str(), "rb");
ASSERT_TRUE(in_file != NULL);
audioproc::Event event_msg;
@@ -1741,8 +1739,7 @@ void ApmTest::ProcessDebugDump(const std::string& in_filename,
if (first_init) {
// StartDebugRecording() writes an additional init message. Don't start
// recording until after the first init to avoid the extra message.
- EXPECT_NOERR(
- apm_->StartDebugRecording(out_filename.c_str(), max_size_bytes));
+ EXPECT_NOERR(apm_->StartDebugRecording(out_filename.c_str()));
first_init = false;
}
@@ -1815,54 +1812,34 @@ void ApmTest::VerifyDebugDumpTest(Format format) {
test::OutputPath(), std::string("ref") + format_string + "_aecdump");
const std::string out_filename = test::TempFilename(
test::OutputPath(), std::string("out") + format_string + "_aecdump");
- const std::string limited_filename = test::TempFilename(
- test::OutputPath(), std::string("limited") + format_string + "_aecdump");
- const size_t logging_limit_bytes = 100000;
- // We expect at least this many bytes in the created logfile.
- const size_t logging_expected_bytes = 95000;
EnableAllComponents();
- ProcessDebugDump(in_filename, ref_filename, format, -1);
- ProcessDebugDump(ref_filename, out_filename, format, -1);
- ProcessDebugDump(ref_filename, limited_filename, format, logging_limit_bytes);
+ ProcessDebugDump(in_filename, ref_filename, format);
+ ProcessDebugDump(ref_filename, out_filename, format);
FILE* ref_file = fopen(ref_filename.c_str(), "rb");
FILE* out_file = fopen(out_filename.c_str(), "rb");
- FILE* limited_file = fopen(limited_filename.c_str(), "rb");
ASSERT_TRUE(ref_file != NULL);
ASSERT_TRUE(out_file != NULL);
- ASSERT_TRUE(limited_file != NULL);
rtc::scoped_ptr<uint8_t[]> ref_bytes;
rtc::scoped_ptr<uint8_t[]> out_bytes;
- rtc::scoped_ptr<uint8_t[]> limited_bytes;
size_t ref_size = ReadMessageBytesFromFile(ref_file, &ref_bytes);
size_t out_size = ReadMessageBytesFromFile(out_file, &out_bytes);
- size_t limited_size = ReadMessageBytesFromFile(limited_file, &limited_bytes);
size_t bytes_read = 0;
- size_t bytes_read_limited = 0;
while (ref_size > 0 && out_size > 0) {
bytes_read += ref_size;
- bytes_read_limited += limited_size;
EXPECT_EQ(ref_size, out_size);
- EXPECT_GE(ref_size, limited_size);
EXPECT_EQ(0, memcmp(ref_bytes.get(), out_bytes.get(), ref_size));
- EXPECT_EQ(0, memcmp(ref_bytes.get(), limited_bytes.get(), limited_size));
ref_size = ReadMessageBytesFromFile(ref_file, &ref_bytes);
out_size = ReadMessageBytesFromFile(out_file, &out_bytes);
- limited_size = ReadMessageBytesFromFile(limited_file, &limited_bytes);
}
EXPECT_GT(bytes_read, 0u);
- EXPECT_GT(bytes_read_limited, logging_expected_bytes);
- EXPECT_LE(bytes_read_limited, logging_limit_bytes);
EXPECT_NE(0, feof(ref_file));
EXPECT_NE(0, feof(out_file));
- EXPECT_NE(0, feof(limited_file));
ASSERT_EQ(0, fclose(ref_file));
ASSERT_EQ(0, fclose(out_file));
- ASSERT_EQ(0, fclose(limited_file));
remove(ref_filename.c_str());
remove(out_filename.c_str());
- remove(limited_filename.c_str());
}
TEST_F(ApmTest, VerifyDebugDumpInt) {
@@ -1879,13 +1856,13 @@ TEST_F(ApmTest, DebugDump) {
const std::string filename =
test::TempFilename(test::OutputPath(), "debug_aec");
EXPECT_EQ(apm_->kNullPointerError,
- apm_->StartDebugRecording(static_cast<const char*>(NULL), -1));
+ apm_->StartDebugRecording(static_cast<const char*>(NULL)));
#ifdef WEBRTC_AUDIOPROC_DEBUG_DUMP
// Stopping without having started should be OK.
EXPECT_EQ(apm_->kNoError, apm_->StopDebugRecording());
- EXPECT_EQ(apm_->kNoError, apm_->StartDebugRecording(filename.c_str(), -1));
+ EXPECT_EQ(apm_->kNoError, apm_->StartDebugRecording(filename.c_str()));
EXPECT_EQ(apm_->kNoError, apm_->ProcessStream(frame_));
EXPECT_EQ(apm_->kNoError, apm_->AnalyzeReverseStream(revframe_));
EXPECT_EQ(apm_->kNoError, apm_->StopDebugRecording());
@@ -1899,7 +1876,7 @@ TEST_F(ApmTest, DebugDump) {
ASSERT_EQ(0, remove(filename.c_str()));
#else
EXPECT_EQ(apm_->kUnsupportedFunctionError,
- apm_->StartDebugRecording(filename.c_str(), -1));
+ apm_->StartDebugRecording(filename.c_str()));
EXPECT_EQ(apm_->kUnsupportedFunctionError, apm_->StopDebugRecording());
// Verify the file has NOT been written.
@@ -1910,7 +1887,7 @@ TEST_F(ApmTest, DebugDump) {
// TODO(andrew): expand test to verify output.
TEST_F(ApmTest, DebugDumpFromFileHandle) {
FILE* fid = NULL;
- EXPECT_EQ(apm_->kNullPointerError, apm_->StartDebugRecording(fid, -1));
+ EXPECT_EQ(apm_->kNullPointerError, apm_->StartDebugRecording(fid));
const std::string filename =
test::TempFilename(test::OutputPath(), "debug_aec");
fid = fopen(filename.c_str(), "w");
@@ -1920,7 +1897,7 @@ TEST_F(ApmTest, DebugDumpFromFileHandle) {
// Stopping without having started should be OK.
EXPECT_EQ(apm_->kNoError, apm_->StopDebugRecording());
- EXPECT_EQ(apm_->kNoError, apm_->StartDebugRecording(fid, -1));
+ EXPECT_EQ(apm_->kNoError, apm_->StartDebugRecording(fid));
EXPECT_EQ(apm_->kNoError, apm_->AnalyzeReverseStream(revframe_));
EXPECT_EQ(apm_->kNoError, apm_->ProcessStream(frame_));
EXPECT_EQ(apm_->kNoError, apm_->StopDebugRecording());
@@ -1934,7 +1911,7 @@ TEST_F(ApmTest, DebugDumpFromFileHandle) {
ASSERT_EQ(0, remove(filename.c_str()));
#else
EXPECT_EQ(apm_->kUnsupportedFunctionError,
- apm_->StartDebugRecording(fid, -1));
+ apm_->StartDebugRecording(fid));
EXPECT_EQ(apm_->kUnsupportedFunctionError, apm_->StopDebugRecording());
ASSERT_EQ(0, fclose(fid));
diff --git a/webrtc/modules/audio_processing/test/debug_dump_test.cc b/webrtc/modules/audio_processing/test/debug_dump_test.cc
index 6aa310c088..d2dd9c8b5a 100644
--- a/webrtc/modules/audio_processing/test/debug_dump_test.cc
+++ b/webrtc/modules/audio_processing/test/debug_dump_test.cc
@@ -181,7 +181,7 @@ void DebugDumpGenerator::SetOutputChannels(int channels) {
}
void DebugDumpGenerator::StartRecording() {
- apm_->StartDebugRecording(dump_file_name_.c_str(), -1);
+ apm_->StartDebugRecording(dump_file_name_.c_str());
}
void DebugDumpGenerator::Process(size_t num_blocks) {
diff --git a/webrtc/modules/audio_processing/test/process_test.cc b/webrtc/modules/audio_processing/test/process_test.cc
index f54eab3a1e..ae6b4dc0d5 100644
--- a/webrtc/modules/audio_processing/test/process_test.cc
+++ b/webrtc/modules/audio_processing/test/process_test.cc
@@ -434,7 +434,7 @@ void void_main(int argc, char* argv[]) {
} else if (strcmp(argv[i], "--debug_file") == 0) {
i++;
ASSERT_LT(i, argc) << "Specify filename after --debug_file";
- ASSERT_EQ(apm->kNoError, apm->StartDebugRecording(argv[i], -1));
+ ASSERT_EQ(apm->kNoError, apm->StartDebugRecording(argv[i]));
} else {
FAIL() << "Unrecognized argument " << argv[i];
}