summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Murdoch <benm@google.com>2014-10-29 14:40:55 +0000
committerBen Murdoch <benm@google.com>2014-10-29 14:40:55 +0000
commit0cf17964c0297044340a659477770e3420e6a4ed (patch)
tree5ac286c6f4e0bdcbdb3d530dde84630b2b7644ea
parentc0e300f3bb644feedac0049e05ad37a69d1225a4 (diff)
parent26a0c4c9568f9e616e9e9fa8652911ddd1f1f70a (diff)
downloadwebrtc-0cf17964c0297044340a659477770e3420e6a4ed.tar.gz
Merge third_party/webrtc from https://chromium.googlesource.com/a/external/webrtc/stable/webrtc.git at 26a0c4c9568f9e616e9e9fa8652911ddd1f1f70a
This commit was generated by merge_from_chromium.py. Change-Id: I3ebdc4c1beb90e1938d1646637e59ae4f3bc2b71
-rw-r--r--base/BUILD.gn2
-rw-r--r--base/base.gyp2
-rw-r--r--base/fileutils.cc31
-rw-r--r--base/fileutils.h23
-rw-r--r--base/platform_file.cc49
-rw-r--r--base/platform_file.h44
-rw-r--r--modules/audio_processing/BUILD.gn1
-rw-r--r--modules/audio_processing/audio_processing.gypi1
-rw-r--r--modules/audio_processing/audio_processing_impl.cc7
-rw-r--r--modules/audio_processing/audio_processing_impl.h2
-rw-r--r--modules/audio_processing/include/audio_processing.h8
11 files changed, 118 insertions, 52 deletions
diff --git a/base/BUILD.gn b/base/BUILD.gn
index 0de5ea46..c2a3f99c 100644
--- a/base/BUILD.gn
+++ b/base/BUILD.gn
@@ -111,6 +111,8 @@ static_library("rtc_base_approved") {
"md5.cc",
"md5.h",
"md5digest.h",
+ "platform_file.cc",
+ "platform_file.h",
"stringencode.cc",
"stringencode.h",
"stringutils.cc",
diff --git a/base/base.gyp b/base/base.gyp
index 07f4c0ba..569db740 100644
--- a/base/base.gyp
+++ b/base/base.gyp
@@ -46,6 +46,8 @@
'md5.cc',
'md5.h',
'md5digest.h',
+ 'platform_file.cc',
+ 'platform_file.h',
'stringencode.cc',
'stringencode.h',
'stringutils.cc',
diff --git a/base/fileutils.cc b/base/fileutils.cc
index 06d76d2b..24375c97 100644
--- a/base/fileutils.cc
+++ b/base/fileutils.cc
@@ -10,13 +10,6 @@
#include <assert.h>
-#if defined(WEBRTC_WIN)
-// TODO(grunell): Remove io.h includes when Chromium has started
-// to use AEC in each source. http://crbug.com/264611.
-#include <io.h>
-#include "webrtc/base/win32.h"
-#endif
-
#include "webrtc/base/pathutils.h"
#include "webrtc/base/fileutils.h"
#include "webrtc/base/stringutils.h"
@@ -279,28 +272,4 @@ bool CreateUniqueFile(Pathname& path, bool create_empty) {
return true;
}
-// Taken from Chromium's base/platform_file_*.cc.
-// TODO(grunell): Remove when Chromium has started to use AEC in each source.
-// http://crbug.com/264611.
-FILE* FdopenPlatformFileForWriting(PlatformFile file) {
-#if defined(WEBRTC_WIN)
- if (file == kInvalidPlatformFileValue)
- return NULL;
- int fd = _open_osfhandle(reinterpret_cast<intptr_t>(file), 0);
- if (fd < 0)
- return NULL;
- return _fdopen(fd, "w");
-#else
- return fdopen(file, "w");
-#endif
-}
-
-bool ClosePlatformFile(PlatformFile file) {
-#if defined(WEBRTC_WIN)
- return CloseHandle(file) != 0;
-#else
- return close(file);
-#endif
-}
-
} // namespace rtc
diff --git a/base/fileutils.h b/base/fileutils.h
index 33ce4579..91129524 100644
--- a/base/fileutils.h
+++ b/base/fileutils.h
@@ -13,9 +13,7 @@
#include <string>
-#if defined(WEBRTC_WIN)
-#include "webrtc/base/win32.h"
-#else
+#if !defined(WEBRTC_WIN)
#include <dirent.h>
#include <stdio.h>
#include <sys/stat.h>
@@ -25,6 +23,7 @@
#include "webrtc/base/basictypes.h"
#include "webrtc/base/common.h"
+#include "webrtc/base/platform_file.h"
#include "webrtc/base/scoped_ptr.h"
namespace rtc {
@@ -436,24 +435,6 @@ class FilesystemScope{
// process).
bool CreateUniqueFile(Pathname& path, bool create_empty);
-// Taken from Chromium's base/platform_file.h.
-// Don't use ClosePlatformFile to close a file opened with FdopenPlatformFile.
-// Use fclose instead.
-// TODO(grunell): Remove when Chromium has started to use AEC in each source.
-// http://crbug.com/264611.
-#if defined(WEBRTC_WIN)
-typedef HANDLE PlatformFile;
-const PlatformFile kInvalidPlatformFileValue = INVALID_HANDLE_VALUE;
-#elif defined(WEBRTC_POSIX)
-typedef int PlatformFile;
-const PlatformFile kInvalidPlatformFileValue = -1;
-#else
-#error Unsupported platform
-#endif
-
-FILE* FdopenPlatformFileForWriting(PlatformFile file);
-bool ClosePlatformFile(PlatformFile file);
-
} // namespace rtc
#endif // WEBRTC_BASE_FILEUTILS_H_
diff --git a/base/platform_file.cc b/base/platform_file.cc
new file mode 100644
index 00000000..d518b74a
--- /dev/null
+++ b/base/platform_file.cc
@@ -0,0 +1,49 @@
+/*
+ * Copyright 2014 The WebRTC Project Authors. All rights reserved.
+ *
+ * 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.
+ */
+
+#include "webrtc/base/platform_file.h"
+
+#if defined(WEBRTC_WIN)
+#include <io.h>
+#else
+#include <unistd.h>
+#endif
+
+namespace rtc {
+
+#if defined(WEBRTC_WIN)
+const PlatformFile kInvalidPlatformFileValue = INVALID_HANDLE_VALUE;
+
+FILE* FdopenPlatformFileForWriting(PlatformFile file) {
+ if (file == kInvalidPlatformFileValue)
+ return NULL;
+ int fd = _open_osfhandle(reinterpret_cast<intptr_t>(file), 0);
+ if (fd < 0)
+ return NULL;
+
+ return _fdopen(fd, "w");
+}
+
+bool ClosePlatformFile(PlatformFile file) {
+ return CloseHandle(file) != 0;
+}
+#else
+const PlatformFile kInvalidPlatformFileValue = -1;
+
+FILE* FdopenPlatformFileForWriting(PlatformFile file) {
+ return fdopen(file, "w");
+}
+
+bool ClosePlatformFile(PlatformFile file) {
+ return close(file);
+}
+#endif
+
+} // namespace rtc
diff --git a/base/platform_file.h b/base/platform_file.h
new file mode 100644
index 00000000..12e08e9a
--- /dev/null
+++ b/base/platform_file.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2014 The WebRTC Project Authors. All rights reserved.
+ *
+ * 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_BASE_PLATFORM_FILE_H_
+#define WEBRTC_BASE_PLATFORM_FILE_H_
+
+#include <stdio.h>
+
+#if defined(WEBRTC_WIN)
+#include <windows.h>
+#endif
+
+namespace rtc {
+
+#if defined(WEBRTC_WIN)
+typedef HANDLE PlatformFile;
+#elif defined(WEBRTC_POSIX)
+typedef int PlatformFile;
+#else
+#error Unsupported platform
+#endif
+
+extern const PlatformFile kInvalidPlatformFileValue;
+
+// Associates a standard FILE stream with an existing PlatformFile.
+// Note that after this function has returned a valid FILE stream,
+// the PlatformFile should no longer be used.
+FILE* FdopenPlatformFileForWriting(PlatformFile file);
+
+// Closes a PlatformFile.
+// Don't use ClosePlatformFile to close a file opened with FdopenPlatformFile.
+// Use fclose instead.
+bool ClosePlatformFile(PlatformFile file);
+
+} // namespace rtc
+
+#endif // WEBRTC_BASE_PLATFORM_FILE_H_
diff --git a/modules/audio_processing/BUILD.gn b/modules/audio_processing/BUILD.gn
index 9bf4da07..42ec6e76 100644
--- a/modules/audio_processing/BUILD.gn
+++ b/modules/audio_processing/BUILD.gn
@@ -157,6 +157,7 @@ source_set("audio_processing") {
}
deps += [
+ "../../base:rtc_base_approved",
"../../common_audio",
"../../system_wrappers",
]
diff --git a/modules/audio_processing/audio_processing.gypi b/modules/audio_processing/audio_processing.gypi
index 9bbcfae7..ce65f643 100644
--- a/modules/audio_processing/audio_processing.gypi
+++ b/modules/audio_processing/audio_processing.gypi
@@ -9,6 +9,7 @@
{
'variables': {
'audio_processing_dependencies': [
+ '<(webrtc_root)/base/base.gyp:rtc_base_approved',
'<(webrtc_root)/common_audio/common_audio.gyp:common_audio',
'<(webrtc_root)/system_wrappers/source/system_wrappers.gyp:system_wrappers',
],
diff --git a/modules/audio_processing/audio_processing_impl.cc b/modules/audio_processing/audio_processing_impl.cc
index d91cbd2f..d6e29060 100644
--- a/modules/audio_processing/audio_processing_impl.cc
+++ b/modules/audio_processing/audio_processing_impl.cc
@@ -12,6 +12,7 @@
#include <assert.h>
+#include "webrtc/base/platform_file.h"
#include "webrtc/common_audio/include/audio_util.h"
#include "webrtc/common_audio/signal_processing/include/signal_processing_library.h"
#include "webrtc/modules/audio_processing/audio_buffer.h"
@@ -716,6 +717,12 @@ int AudioProcessingImpl::StartDebugRecording(FILE* handle) {
#endif // WEBRTC_AUDIOPROC_DEBUG_DUMP
}
+int AudioProcessingImpl::StartDebugRecordingForPlatformFile(
+ rtc::PlatformFile handle) {
+ FILE* stream = rtc::FdopenPlatformFileForWriting(handle);
+ return StartDebugRecording(stream);
+}
+
int AudioProcessingImpl::StopDebugRecording() {
CriticalSectionScoped crit_scoped(crit_);
diff --git a/modules/audio_processing/audio_processing_impl.h b/modules/audio_processing/audio_processing_impl.h
index 9753423d..0817f471 100644
--- a/modules/audio_processing/audio_processing_impl.h
+++ b/modules/audio_processing/audio_processing_impl.h
@@ -125,6 +125,8 @@ class AudioProcessingImpl : public AudioProcessing {
virtual int StartDebugRecording(
const char filename[kMaxFilenameSize]) OVERRIDE;
virtual int StartDebugRecording(FILE* handle) OVERRIDE;
+ virtual int StartDebugRecordingForPlatformFile(
+ rtc::PlatformFile handle) OVERRIDE;
virtual int StopDebugRecording() OVERRIDE;
virtual EchoCancellation* echo_cancellation() const OVERRIDE;
virtual EchoControlMobile* echo_control_mobile() const OVERRIDE;
diff --git a/modules/audio_processing/include/audio_processing.h b/modules/audio_processing/include/audio_processing.h
index 30f0d9c5..10d2b8b8 100644
--- a/modules/audio_processing/include/audio_processing.h
+++ b/modules/audio_processing/include/audio_processing.h
@@ -14,6 +14,7 @@
#include <stddef.h> // size_t
#include <stdio.h> // FILE
+#include "webrtc/base/platform_file.h"
#include "webrtc/common.h"
#include "webrtc/typedefs.h"
@@ -325,6 +326,13 @@ class AudioProcessing {
// of |handle| and closes it at StopDebugRecording().
virtual int StartDebugRecording(FILE* handle) = 0;
+ // Same as above but uses an existing PlatformFile handle. Takes ownership
+ // of |handle| and closes it at StopDebugRecording().
+ // TODO(xians): Make this interface pure virtual.
+ virtual int StartDebugRecordingForPlatformFile(rtc::PlatformFile handle) {
+ return -1;
+ }
+
// Stops recording debugging information, and closes the file. Recording
// cannot be resumed in the same file (without overwriting it).
virtual int StopDebugRecording() = 0;