Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(169)

Unified Diff: webrtc/modules/audio_processing/logging/aec_logging.h

Issue 1272403003: Replaced the wav file dumping functionality in aec_core.c with the newly added corresponding macros (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Added support for inclusion from C++ code Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webrtc/modules/audio_processing/logging/aec_logging.h
diff --git a/webrtc/modules/audio_processing/logging/aec_logging.h b/webrtc/modules/audio_processing/logging/aec_logging.h
new file mode 100644
index 0000000000000000000000000000000000000000..61880fe825e718e3bc89cc8ceec15a313a82f053
--- /dev/null
+++ b/webrtc/modules/audio_processing/logging/aec_logging.h
@@ -0,0 +1,94 @@
+/*
+ * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved.
hlundin-webrtc 2015/08/10 13:04:41 2015
peah-webrtc 2015/08/12 20:25:52 Done.
+ *
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree. An additional intellectual property rights grant can be found
+ * in the file PATENTS. All contributing project authors may
+ * be found in the AUTHORS file in the root of the source tree.
+ */
+
+#ifndef WEBRTC_MODULES_AUDIO_PROCESSING_AEC_AEC_LOGGING_
+#define WEBRTC_MODULES_AUDIO_PROCESSING_AEC_AEC_LOGGING_
+
Andrew MacDonald 2015/08/10 15:25:55 Remove extra blank line.
peah-webrtc 2015/08/12 20:25:52 Done.
+
+// To enable AEC logging, run this command from trunk/ :
hlundin-webrtc 2015/08/10 13:04:41 See my other suggestion in aec_logging_file_handli
peah-webrtc 2015/08/12 20:25:52 Done.
+// python webrtc/build/gyp_webrtc.py -Daec_debug_dump=1
+#ifdef WEBRTC_AEC_DEBUG_DUMP
+#include <stdio.h>
+#include "webrtc/modules/audio_processing/logging/aec_logging_file_handling.h"
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
kwiberg-webrtc 2015/08/10 20:19:57 You only define macros, so the extern "C" thingy i
peah-webrtc 2015/08/12 20:25:52 Done.
+
+
Andrew MacDonald 2015/08/10 15:25:55 Remove extra blank line.
peah-webrtc 2015/08/12 20:25:52 Done.
+#ifndef WEBRTC_AEC_DEBUG_DUMP
+
+// Dump wav data to file
hlundin-webrtc 2015/08/10 13:04:41 End with . (On all comments.)
peah-webrtc 2015/08/12 20:25:51 Done.
+#define WEBRTC_AEC_DEBUG_WAV_WRITE(file, data, numSamples)
Andrew MacDonald 2015/08/10 15:25:55 I know this creates inconsistencies, but we've bee
peah-webrtc 2015/08/12 20:25:52 Done.
+
+// (Re)open wav file for writing using the specified sample rate
Andrew MacDonald 2015/08/10 15:25:55 Just add all these comments once on the implemente
peah-webrtc 2015/08/12 20:25:52 Done.
+#define WEBRTC_AEC_DEBUG_WAV_REOPEN(wavFile, name, seq1, seq2, sampleRate)
kwiberg-webrtc 2015/08/10 20:19:57 Macros that should expand to empty statements shou
peah-webrtc 2015/08/12 20:25:52 Done! Did I do it right now? One concern I have is
kwiberg-webrtc 2015/08/13 07:59:34 Looks good now. And yes, do {} while (0) really ou
+
+// Close wav file
+#define WEBRTC_AEC_DEBUG_WAV_CLOSE(wavFile)
+
+// Dump raw data to file
+#define WEBRTC_AEC_DEBUG_RAW_WRITE(file, data, dataSize)
+
+// Open raw data file for writing using the specified sample rate
+#define WEBRTC_AEC_DEBUG_RAW_OPEN(file, name, instanceCtr)
+
+// Close raw data file
+#define WEBRTC_AEC_DEBUG_RAW_CLOSE(file)
+
+#else // WEBRTC_AEC_DEBUG_DUMP
+
+// Dump wav data to file
+#define WEBRTC_AEC_DEBUG_WAV_WRITE(file, data, numSamples) \
+ do { \
+ rtc_WavWriteSamples(file, data, numSamples); \
hlundin-webrtc 2015/08/10 13:04:41 Parentheses around the parameters, like you have b
kwiberg-webrtc 2015/08/10 20:19:57 Can you give an example invocation of the macro wh
hlundin-webrtc 2015/08/12 11:48:18 No, I can not. It was just a knee-jerk reaction fr
peah-webrtc 2015/08/12 20:25:51 Please see comment below!
peah-webrtc 2015/08/12 20:25:52 I think you are both correct. I've been taught to
peah-webrtc 2015/08/12 20:25:52 Acknowledged.
kwiberg-webrtc 2015/08/13 07:59:34 I'd be happier if you removed them, since they clu
peah-webrtc 2015/08/13 13:37:39 Done.
+ } while (0);
kwiberg-webrtc 2015/08/10 20:19:56 Better to leave the semicolon out of the macro def
peah-webrtc 2015/08/12 20:25:51 Great point!
peah-webrtc 2015/08/12 20:25:52 Done.
+
+// (Re)open wav file for writing using the specified sample rate
+#define WEBRTC_AEC_DEBUG_WAV_REOPEN(wavFile, name, seq1, seq2, sampleRate) \
+ do { \
+ WebRtcAec_ReopenWav((wavFile), (name), (seq1), (seq2), (sampleRate)); \
+ } while (0);
+
+// Close wav file
+#define WEBRTC_AEC_DEBUG_WAV_CLOSE(wavFile) \
+ do { \
+ rtc_WavClose((wavFile)); \
+ } while (0);
+
+// Dump raw data to file
+#define WEBRTC_AEC_DEBUG_RAW_WRITE(file, data, dataSize) \
+ do { \
+ (void)fwrite((data), (dataSize) , 1, (file)); \
+ } while (0);
+
+// Open raw data file for writing using the specified sample rate
+#define WEBRTC_AEC_DEBUG_RAW_OPEN(file, name, instanceCtr) \
+ do { \
+ WebRtcAec_RawFileOpen((file), (name), (instanceCtr)); \
+ } while (0);
+
+
Andrew MacDonald 2015/08/10 15:25:54 Remove extra blank line.
peah-webrtc 2015/08/12 20:25:52 Done.
+// Close raw data file
+#define WEBRTC_AEC_DEBUG_RAW_CLOSE(file) \
+ do { \
+ fclose((file)); \
+ } while (0);
+
+
+
Andrew MacDonald 2015/08/10 15:25:54 Remove two extra blank lines.
peah-webrtc 2015/08/12 20:25:52 Done.
+#endif // WEBRTC_AEC_DEBUG_DUMP
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // WEBRTC_MODULES_AUDIO_PROCESSING_AEC_AEC_LOGGING_
kwiberg-webrtc 2015/08/10 20:19:57 Hmm. Suggestion: Instead of #ifdef WEBRTC_AEC_DE
peah-webrtc 2015/08/12 20:25:52 Would it be guaranteed that those inline function
kwiberg-webrtc 2015/08/13 07:59:34 There's no guarantee that the compiler will actual
peah-webrtc 2015/08/13 13:37:39 I think that you are correct in that all compilers
peah-webrtc 2015/08/17 09:36:16 After an offline discussion, it was concluded that
kwiberg-webrtc 2015/08/17 09:43:07 Yes. :-)
Andrew MacDonald 2015/08/17 16:37:05 Yes.

Powered by Google App Engine
This is Rietveld 408576698