diff --git a/webrtc/modules/audio_device/android/audio_device_unittest.cc b/webrtc/modules/audio_device/android/audio_device_unittest.cc index 768047df51..7655c820ad 100644 --- a/webrtc/modules/audio_device/android/audio_device_unittest.cc +++ b/webrtc/modules/audio_device/android/audio_device_unittest.cc @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include @@ -20,7 +21,6 @@ #include "webrtc/base/arraysize.h" #include "webrtc/base/criticalsection.h" #include "webrtc/base/format_macros.h" -#include "webrtc/base/scoped_ptr.h" #include "webrtc/base/scoped_ref_ptr.h" #include "webrtc/modules/audio_device/android/audio_common.h" #include "webrtc/modules/audio_device/android/audio_manager.h" @@ -144,7 +144,7 @@ class FileAudioStream : public AudioStreamInterface { private: size_t file_size_in_bytes_; int sample_rate_; - rtc::scoped_ptr file_; + std::unique_ptr file_; size_t file_pos_; }; @@ -239,7 +239,7 @@ class FifoAudioStream : public AudioStreamInterface { rtc::CriticalSection lock_; const size_t frames_per_buffer_; const size_t bytes_per_buffer_; - rtc::scoped_ptr fifo_; + std::unique_ptr fifo_; size_t largest_size_; size_t total_written_elements_; size_t write_count_; @@ -491,7 +491,7 @@ class MockAudioTransport : public AudioTransport { size_t play_count_; size_t rec_count_; AudioStreamInterface* audio_stream_; - rtc::scoped_ptr latency_audio_stream_; + std::unique_ptr latency_audio_stream_; }; // AudioDeviceTest test fixture. @@ -688,11 +688,11 @@ class AudioDeviceTest : public ::testing::Test { return volume; } - rtc::scoped_ptr test_is_done_; + std::unique_ptr test_is_done_; rtc::scoped_refptr audio_device_; AudioParameters playout_parameters_; AudioParameters record_parameters_; - rtc::scoped_ptr build_info_; + std::unique_ptr build_info_; }; TEST_F(AudioDeviceTest, ConstructDestruct) { @@ -935,7 +935,7 @@ TEST_F(AudioDeviceTest, RunPlayoutWithFileAsSource) { NiceMock mock(kPlayout); const int num_callbacks = kFilePlayTimeInSec * kNumCallbacksPerSecond; std::string file_name = GetFileName(playout_sample_rate()); - rtc::scoped_ptr file_audio_stream( + std::unique_ptr file_audio_stream( new FileAudioStream(num_callbacks, file_name, playout_sample_rate())); mock.HandleCallbacks(test_is_done_.get(), file_audio_stream.get(), @@ -964,7 +964,7 @@ TEST_F(AudioDeviceTest, RunPlayoutAndRecordingInFullDuplex) { EXPECT_EQ(record_channels(), playout_channels()); EXPECT_EQ(record_sample_rate(), playout_sample_rate()); NiceMock mock(kPlayout | kRecording); - rtc::scoped_ptr fifo_audio_stream( + std::unique_ptr fifo_audio_stream( new FifoAudioStream(playout_frames_per_10ms_buffer())); mock.HandleCallbacks(test_is_done_.get(), fifo_audio_stream.get(), @@ -994,7 +994,7 @@ TEST_F(AudioDeviceTest, DISABLED_MeasureLoopbackLatency) { EXPECT_EQ(record_channels(), playout_channels()); EXPECT_EQ(record_sample_rate(), playout_sample_rate()); NiceMock mock(kPlayout | kRecording); - rtc::scoped_ptr latency_audio_stream( + std::unique_ptr latency_audio_stream( new LatencyMeasuringAudioStream(playout_frames_per_10ms_buffer())); mock.HandleCallbacks(test_is_done_.get(), latency_audio_stream.get(), diff --git a/webrtc/modules/audio_device/android/audio_manager.cc b/webrtc/modules/audio_device/android/audio_manager.cc index 1d08a6adc0..9174a5b7ab 100644 --- a/webrtc/modules/audio_device/android/audio_manager.cc +++ b/webrtc/modules/audio_device/android/audio_manager.cc @@ -16,7 +16,6 @@ #include "webrtc/base/arraysize.h" #include "webrtc/base/checks.h" -#include "webrtc/base/scoped_ptr.h" #include "webrtc/modules/audio_device/android/audio_common.h" #include "webrtc/modules/utility/include/helpers_android.h" @@ -32,7 +31,7 @@ namespace webrtc { // AudioManager::JavaAudioManager implementation AudioManager::JavaAudioManager::JavaAudioManager( NativeRegistration* native_reg, - rtc::scoped_ptr audio_manager) + std::unique_ptr audio_manager) : audio_manager_(std::move(audio_manager)), init_(native_reg->GetMethodId("init", "()Z")), dispose_(native_reg->GetMethodId("dispose", "()V")), @@ -67,7 +66,7 @@ bool AudioManager::JavaAudioManager::IsDeviceBlacklistedForOpenSLESUsage() { // AudioManager implementation AudioManager::AudioManager() - : j_environment_(JVM::GetInstance()->environment()), + : j_environment_(rtc::ScopedToUnique(JVM::GetInstance()->environment())), audio_layer_(AudioDeviceModule::kPlatformDefaultAudio), initialized_(false), hardware_aec_(false), @@ -81,14 +80,14 @@ AudioManager::AudioManager() {"nativeCacheAudioParameters", "(IIZZZZIIJ)V", reinterpret_cast(&webrtc::AudioManager::CacheAudioParameters)}}; - j_native_registration_ = j_environment_->RegisterNatives( + j_native_registration_ = rtc::ScopedToUnique(j_environment_->RegisterNatives( "org/webrtc/voiceengine/WebRtcAudioManager", - native_methods, arraysize(native_methods)); + native_methods, arraysize(native_methods))); j_audio_manager_.reset(new JavaAudioManager( j_native_registration_.get(), - j_native_registration_->NewObject( + rtc::ScopedToUnique(j_native_registration_->NewObject( "", "(Landroid/content/Context;J)V", - JVM::GetInstance()->context(), PointerTojlong(this)))); + JVM::GetInstance()->context(), PointerTojlong(this))))); } AudioManager::~AudioManager() { diff --git a/webrtc/modules/audio_device/android/audio_manager.h b/webrtc/modules/audio_device/android/audio_manager.h index 26caf61afe..b4264a6f8c 100644 --- a/webrtc/modules/audio_device/android/audio_manager.h +++ b/webrtc/modules/audio_device/android/audio_manager.h @@ -11,9 +11,10 @@ #ifndef WEBRTC_MODULES_AUDIO_DEVICE_ANDROID_AUDIO_MANAGER_H_ #define WEBRTC_MODULES_AUDIO_DEVICE_ANDROID_AUDIO_MANAGER_H_ +#include + #include -#include "webrtc/base/scoped_ptr.h" #include "webrtc/base/thread_checker.h" #include "webrtc/modules/audio_device/android/audio_common.h" #include "webrtc/modules/audio_device/audio_device_config.h" @@ -39,7 +40,7 @@ class AudioManager { class JavaAudioManager { public: JavaAudioManager(NativeRegistration* native_registration, - rtc::scoped_ptr audio_manager); + std::unique_ptr audio_manager); ~JavaAudioManager(); bool Init(); @@ -48,7 +49,7 @@ class AudioManager { bool IsDeviceBlacklistedForOpenSLESUsage(); private: - rtc::scoped_ptr audio_manager_; + std::unique_ptr audio_manager_; jmethodID init_; jmethodID dispose_; jmethodID is_communication_mode_enabled_; @@ -128,13 +129,13 @@ class AudioManager { AttachCurrentThreadIfNeeded attach_thread_if_needed_; // Wraps the JNI interface pointer and methods associated with it. - rtc::scoped_ptr j_environment_; + std::unique_ptr j_environment_; // Contains factory method for creating the Java object. - rtc::scoped_ptr j_native_registration_; + std::unique_ptr j_native_registration_; // Wraps the Java specific parts of the AudioManager. - rtc::scoped_ptr j_audio_manager_; + std::unique_ptr j_audio_manager_; AudioDeviceModule::AudioLayer audio_layer_; diff --git a/webrtc/modules/audio_device/android/audio_manager_unittest.cc b/webrtc/modules/audio_device/android/audio_manager_unittest.cc index ddae73067a..d1107e05fd 100644 --- a/webrtc/modules/audio_device/android/audio_manager_unittest.cc +++ b/webrtc/modules/audio_device/android/audio_manager_unittest.cc @@ -8,9 +8,10 @@ * be found in the AUTHORS file in the root of the source tree. */ +#include + #include "testing/gtest/include/gtest/gtest.h" #include "webrtc/base/format_macros.h" -#include "webrtc/base/scoped_ptr.h" #include "webrtc/modules/audio_device/android/build_info.h" #include "webrtc/modules/audio_device/android/audio_manager.h" #include "webrtc/modules/audio_device/android/ensure_initialized.h" @@ -43,7 +44,7 @@ class AudioManagerTest : public ::testing::Test { EXPECT_NE(0, audio_manager()->GetDelayEstimateInMilliseconds()); } - rtc::scoped_ptr audio_manager_; + std::unique_ptr audio_manager_; AudioParameters playout_parameters_; AudioParameters record_parameters_; }; diff --git a/webrtc/modules/audio_device/android/audio_record_jni.cc b/webrtc/modules/audio_device/android/audio_record_jni.cc index 5dda7249ac..5ff59971cf 100644 --- a/webrtc/modules/audio_device/android/audio_record_jni.cc +++ b/webrtc/modules/audio_device/android/audio_record_jni.cc @@ -31,7 +31,7 @@ namespace webrtc { // AudioRecordJni::JavaAudioRecord implementation. AudioRecordJni::JavaAudioRecord::JavaAudioRecord( NativeRegistration* native_reg, - rtc::scoped_ptr audio_record) + std::unique_ptr audio_record) : audio_record_(std::move(audio_record)), init_recording_(native_reg->GetMethodId("initRecording", "(II)I")), start_recording_(native_reg->GetMethodId("startRecording", "()Z")), @@ -74,7 +74,7 @@ bool AudioRecordJni::JavaAudioRecord::EnableBuiltInNS(bool enable) { // AudioRecordJni implementation. AudioRecordJni::AudioRecordJni(AudioManager* audio_manager) - : j_environment_(JVM::GetInstance()->environment()), + : j_environment_(rtc::ScopedToUnique(JVM::GetInstance()->environment())), audio_manager_(audio_manager), audio_parameters_(audio_manager->GetRecordAudioParameters()), total_delay_in_milliseconds_(0), @@ -93,14 +93,14 @@ AudioRecordJni::AudioRecordJni(AudioManager* audio_manager) &webrtc::AudioRecordJni::CacheDirectBufferAddress)}, {"nativeDataIsRecorded", "(IJ)V", reinterpret_cast(&webrtc::AudioRecordJni::DataIsRecorded)}}; - j_native_registration_ = j_environment_->RegisterNatives( + j_native_registration_ = rtc::ScopedToUnique(j_environment_->RegisterNatives( "org/webrtc/voiceengine/WebRtcAudioRecord", - native_methods, arraysize(native_methods)); + native_methods, arraysize(native_methods))); j_audio_record_.reset(new JavaAudioRecord( j_native_registration_.get(), - j_native_registration_->NewObject( + rtc::ScopedToUnique(j_native_registration_->NewObject( "", "(Landroid/content/Context;J)V", - JVM::GetInstance()->context(), PointerTojlong(this)))); + JVM::GetInstance()->context(), PointerTojlong(this))))); // Detach from this thread since we want to use the checker to verify calls // from the Java based audio thread. thread_checker_java_.DetachFromThread(); diff --git a/webrtc/modules/audio_device/android/audio_record_jni.h b/webrtc/modules/audio_device/android/audio_record_jni.h index 766316a83a..13194939b6 100644 --- a/webrtc/modules/audio_device/android/audio_record_jni.h +++ b/webrtc/modules/audio_device/android/audio_record_jni.h @@ -11,6 +11,8 @@ #ifndef WEBRTC_MODULES_AUDIO_DEVICE_ANDROID_AUDIO_RECORD_JNI_H_ #define WEBRTC_MODULES_AUDIO_DEVICE_ANDROID_AUDIO_RECORD_JNI_H_ +#include + #include #include "webrtc/base/thread_checker.h" @@ -46,7 +48,7 @@ class AudioRecordJni { class JavaAudioRecord { public: JavaAudioRecord(NativeRegistration* native_registration, - rtc::scoped_ptr audio_track); + std::unique_ptr audio_track); ~JavaAudioRecord(); int InitRecording(int sample_rate, size_t channels); @@ -57,7 +59,7 @@ class AudioRecordJni { bool EnableBuiltInNS(bool enable); private: - rtc::scoped_ptr audio_record_; + std::unique_ptr audio_record_; jmethodID init_recording_; jmethodID start_recording_; jmethodID stop_recording_; @@ -117,13 +119,13 @@ class AudioRecordJni { AttachCurrentThreadIfNeeded attach_thread_if_needed_; // Wraps the JNI interface pointer and methods associated with it. - rtc::scoped_ptr j_environment_; + std::unique_ptr j_environment_; // Contains factory method for creating the Java object. - rtc::scoped_ptr j_native_registration_; + std::unique_ptr j_native_registration_; // Wraps the Java specific parts of the AudioRecordJni class. - rtc::scoped_ptr j_audio_record_; + std::unique_ptr j_audio_record_; // Raw pointer to the audio manger. const AudioManager* audio_manager_; diff --git a/webrtc/modules/audio_device/android/audio_track_jni.cc b/webrtc/modules/audio_device/android/audio_track_jni.cc index 057e016405..5bf3a5b8d7 100644 --- a/webrtc/modules/audio_device/android/audio_track_jni.cc +++ b/webrtc/modules/audio_device/android/audio_track_jni.cc @@ -31,7 +31,7 @@ namespace webrtc { // AudioTrackJni::JavaAudioTrack implementation. AudioTrackJni::JavaAudioTrack::JavaAudioTrack( NativeRegistration* native_reg, - rtc::scoped_ptr audio_track) + std::unique_ptr audio_track) : audio_track_(std::move(audio_track)), init_playout_(native_reg->GetMethodId("initPlayout", "(II)V")), start_playout_(native_reg->GetMethodId("startPlayout", "()Z")), @@ -69,7 +69,7 @@ int AudioTrackJni::JavaAudioTrack::GetStreamVolume() { // TODO(henrika): possible extend usage of AudioManager and add it as member. AudioTrackJni::AudioTrackJni(AudioManager* audio_manager) - : j_environment_(JVM::GetInstance()->environment()), + : j_environment_(rtc::ScopedToUnique(JVM::GetInstance()->environment())), audio_parameters_(audio_manager->GetPlayoutAudioParameters()), direct_buffer_address_(nullptr), direct_buffer_capacity_in_bytes_(0), @@ -86,14 +86,14 @@ AudioTrackJni::AudioTrackJni(AudioManager* audio_manager) &webrtc::AudioTrackJni::CacheDirectBufferAddress)}, {"nativeGetPlayoutData", "(IJ)V", reinterpret_cast(&webrtc::AudioTrackJni::GetPlayoutData)}}; - j_native_registration_ = j_environment_->RegisterNatives( + j_native_registration_ = rtc::ScopedToUnique(j_environment_->RegisterNatives( "org/webrtc/voiceengine/WebRtcAudioTrack", - native_methods, arraysize(native_methods)); + native_methods, arraysize(native_methods))); j_audio_track_.reset(new JavaAudioTrack( j_native_registration_.get(), - j_native_registration_->NewObject( + rtc::ScopedToUnique(j_native_registration_->NewObject( "", "(Landroid/content/Context;J)V", - JVM::GetInstance()->context(), PointerTojlong(this)))); + JVM::GetInstance()->context(), PointerTojlong(this))))); // Detach from this thread since we want to use the checker to verify calls // from the Java based audio thread. thread_checker_java_.DetachFromThread(); diff --git a/webrtc/modules/audio_device/android/audio_track_jni.h b/webrtc/modules/audio_device/android/audio_track_jni.h index 067dc6c651..32b0b77033 100644 --- a/webrtc/modules/audio_device/android/audio_track_jni.h +++ b/webrtc/modules/audio_device/android/audio_track_jni.h @@ -11,6 +11,8 @@ #ifndef WEBRTC_MODULES_AUDIO_DEVICE_ANDROID_AUDIO_TRACK_JNI_H_ #define WEBRTC_MODULES_AUDIO_DEVICE_ANDROID_AUDIO_TRACK_JNI_H_ +#include + #include #include "webrtc/base/thread_checker.h" @@ -42,7 +44,7 @@ class AudioTrackJni { class JavaAudioTrack { public: JavaAudioTrack(NativeRegistration* native_registration, - rtc::scoped_ptr audio_track); + std::unique_ptr audio_track); ~JavaAudioTrack(); void InitPlayout(int sample_rate, int channels); @@ -53,7 +55,7 @@ class AudioTrackJni { int GetStreamVolume(); private: - rtc::scoped_ptr audio_track_; + std::unique_ptr audio_track_; jmethodID init_playout_; jmethodID start_playout_; jmethodID stop_playout_; @@ -113,13 +115,13 @@ class AudioTrackJni { AttachCurrentThreadIfNeeded attach_thread_if_needed_; // Wraps the JNI interface pointer and methods associated with it. - rtc::scoped_ptr j_environment_; + std::unique_ptr j_environment_; // Contains factory method for creating the Java object. - rtc::scoped_ptr j_native_registration_; + std::unique_ptr j_native_registration_; // Wraps the Java specific parts of the AudioTrackJni class. - rtc::scoped_ptr j_audio_track_; + std::unique_ptr j_audio_track_; // Contains audio parameters provided to this class at construction by the // AudioManager. diff --git a/webrtc/modules/audio_device/android/build_info.cc b/webrtc/modules/audio_device/android/build_info.cc index 6289697073..c6cecc96c5 100644 --- a/webrtc/modules/audio_device/android/build_info.cc +++ b/webrtc/modules/audio_device/android/build_info.cc @@ -15,7 +15,7 @@ namespace webrtc { BuildInfo::BuildInfo() - : j_environment_(JVM::GetInstance()->environment()), + : j_environment_(rtc::ScopedToUnique(JVM::GetInstance()->environment())), j_build_info_(JVM::GetInstance()->GetClass( "org/webrtc/voiceengine/BuildInfo")) { } diff --git a/webrtc/modules/audio_device/android/build_info.h b/webrtc/modules/audio_device/android/build_info.h index 1490fa0772..4a4c30e836 100644 --- a/webrtc/modules/audio_device/android/build_info.h +++ b/webrtc/modules/audio_device/android/build_info.h @@ -12,6 +12,7 @@ #define WEBRTC_MODULES_AUDIO_DEVICE_ANDROID_BUILD_INFO_H_ #include +#include #include #include "webrtc/modules/utility/include/jvm_android.h" @@ -55,7 +56,7 @@ class BuildInfo { // Provides access to the JNIEnv interface pointer and the JavaToStdString() // method which is used to translate Java strings to std strings. - rtc::scoped_ptr j_environment_; + std::unique_ptr j_environment_; // Holds the jclass object and provides access to CallStaticObjectMethod(). // Used by GetStringFromJava() during construction only. diff --git a/webrtc/modules/audio_device/android/opensles_player.h b/webrtc/modules/audio_device/android/opensles_player.h index fa9e931218..084546dbf7 100644 --- a/webrtc/modules/audio_device/android/opensles_player.h +++ b/webrtc/modules/audio_device/android/opensles_player.h @@ -11,11 +11,12 @@ #ifndef WEBRTC_MODULES_AUDIO_DEVICE_ANDROID_OPENSLES_PLAYER_H_ #define WEBRTC_MODULES_AUDIO_DEVICE_ANDROID_OPENSLES_PLAYER_H_ +#include + #include #include #include -#include "webrtc/base/scoped_ptr.h" #include "webrtc/base/thread_checker.h" #include "webrtc/modules/audio_device/android/audio_common.h" #include "webrtc/modules/audio_device/android/audio_manager.h" @@ -150,7 +151,7 @@ class OpenSLESPlayer { // Queue of audio buffers to be used by the player object for rendering // audio. They will be used in a Round-robin way and the size of each buffer // is given by FineAudioBuffer::RequiredBufferSizeBytes(). - rtc::scoped_ptr audio_buffers_[kNumOfOpenSLESBuffers]; + std::unique_ptr audio_buffers_[kNumOfOpenSLESBuffers]; // FineAudioBuffer takes an AudioDeviceBuffer which delivers audio data // in chunks of 10ms. It then allows for this data to be pulled in @@ -162,7 +163,7 @@ class OpenSLESPlayer { // in each callback (one every 5ms). This class can then ask for 240 and the // FineAudioBuffer will ask WebRTC for new data only every second callback // and also cach non-utilized audio. - rtc::scoped_ptr fine_buffer_; + std::unique_ptr fine_buffer_; // Keeps track of active audio buffer 'n' in the audio_buffers_[n] queue. // Example (kNumOfOpenSLESBuffers = 2): counts 0, 1, 0, 1, ... diff --git a/webrtc/modules/audio_device/audio_device_impl.h b/webrtc/modules/audio_device/audio_device_impl.h index 5109693964..c7312bf4b0 100644 --- a/webrtc/modules/audio_device/audio_device_impl.h +++ b/webrtc/modules/audio_device/audio_device_impl.h @@ -13,8 +13,9 @@ #if defined(WEBRTC_INCLUDE_INTERNAL_AUDIO_DEVICE) +#include + #include "webrtc/base/checks.h" -#include "webrtc/base/scoped_ptr.h" #include "webrtc/modules/audio_device/audio_device_buffer.h" #include "webrtc/modules/audio_device/include/audio_device.h" @@ -216,7 +217,7 @@ class AudioDeviceModuleImpl : public AudioDeviceModule { AudioDeviceBuffer _audioDeviceBuffer; #if defined(WEBRTC_ANDROID) - rtc::scoped_ptr _audioManagerAndroid; + std::unique_ptr _audioManagerAndroid; #endif int32_t _id; AudioLayer _platformAudioLayer; diff --git a/webrtc/modules/audio_device/dummy/file_audio_device.h b/webrtc/modules/audio_device/dummy/file_audio_device.h index 77179409ea..be6fa3ddee 100644 --- a/webrtc/modules/audio_device/dummy/file_audio_device.h +++ b/webrtc/modules/audio_device/dummy/file_audio_device.h @@ -13,6 +13,7 @@ #include +#include #include #include "webrtc/modules/audio_device/audio_device_generic.h" @@ -182,8 +183,8 @@ class FileAudioDevice : public AudioDeviceGeneric { size_t _playoutFramesIn10MS; // TODO(pbos): Make plain members instead of pointers and stop resetting them. - rtc::scoped_ptr _ptrThreadRec; - rtc::scoped_ptr _ptrThreadPlay; + std::unique_ptr _ptrThreadRec; + std::unique_ptr _ptrThreadPlay; bool _playing; bool _recording; diff --git a/webrtc/modules/audio_device/fine_audio_buffer.h b/webrtc/modules/audio_device/fine_audio_buffer.h index 4ab5cd268c..478e0c6391 100644 --- a/webrtc/modules/audio_device/fine_audio_buffer.h +++ b/webrtc/modules/audio_device/fine_audio_buffer.h @@ -11,7 +11,8 @@ #ifndef WEBRTC_MODULES_AUDIO_DEVICE_FINE_AUDIO_BUFFER_H_ #define WEBRTC_MODULES_AUDIO_DEVICE_FINE_AUDIO_BUFFER_H_ -#include "webrtc/base/scoped_ptr.h" +#include + #include "webrtc/typedefs.h" namespace webrtc { @@ -86,14 +87,14 @@ class FineAudioBuffer { // Number of audio bytes per 10ms. const size_t bytes_per_10_ms_; // Storage for output samples that are not yet asked for. - rtc::scoped_ptr playout_cache_buffer_; + std::unique_ptr playout_cache_buffer_; // Location of first unread output sample. size_t playout_cached_buffer_start_; // Number of bytes stored in output (contain samples to be played out) cache. size_t playout_cached_bytes_; // Storage for input samples that are about to be delivered to the WebRTC // ADB or remains from the last successful delivery of a 10ms audio buffer. - rtc::scoped_ptr record_cache_buffer_; + std::unique_ptr record_cache_buffer_; // Required (max) size in bytes of the |record_cache_buffer_|. const size_t required_record_buffer_size_bytes_; // Number of bytes in input (contains recorded samples) cache. diff --git a/webrtc/modules/audio_device/fine_audio_buffer_unittest.cc b/webrtc/modules/audio_device/fine_audio_buffer_unittest.cc index 6666364c9e..ef189d1fef 100644 --- a/webrtc/modules/audio_device/fine_audio_buffer_unittest.cc +++ b/webrtc/modules/audio_device/fine_audio_buffer_unittest.cc @@ -15,7 +15,6 @@ #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" -#include "webrtc/base/scoped_ptr.h" #include "webrtc/modules/audio_device/mock_audio_device_buffer.h" using ::testing::_; @@ -118,9 +117,9 @@ void RunFineBufferTest(int sample_rate, int frame_size_in_samples) { FineAudioBuffer fine_buffer(&audio_device_buffer, kFrameSizeBytes, sample_rate); - rtc::scoped_ptr out_buffer; + std::unique_ptr out_buffer; out_buffer.reset(new int8_t[fine_buffer.RequiredPlayoutBufferSizeBytes()]); - rtc::scoped_ptr in_buffer; + std::unique_ptr in_buffer; in_buffer.reset(new int8_t[kFrameSizeBytes]); for (int i = 0; i < kNumberOfFrames; ++i) { fine_buffer.GetPlayoutData(out_buffer.get()); diff --git a/webrtc/modules/audio_device/ios/audio_device_ios.h b/webrtc/modules/audio_device/ios/audio_device_ios.h index c4eb0d6f64..73208864d2 100644 --- a/webrtc/modules/audio_device/ios/audio_device_ios.h +++ b/webrtc/modules/audio_device/ios/audio_device_ios.h @@ -11,9 +11,10 @@ #ifndef WEBRTC_MODULES_AUDIO_DEVICE_IOS_AUDIO_DEVICE_IOS_H_ #define WEBRTC_MODULES_AUDIO_DEVICE_IOS_AUDIO_DEVICE_IOS_H_ +#include + #include -#include "webrtc/base/scoped_ptr.h" #include "webrtc/base/thread_checker.h" #include "webrtc/modules/audio_device/audio_device_generic.h" @@ -256,11 +257,11 @@ class AudioDeviceIOS : public AudioDeviceGeneric { // can provide audio data frames of size 128 and these are accumulated until // enough data to supply one 10ms call exists. This 10ms chunk is then sent // to WebRTC and the remaining part is stored. - rtc::scoped_ptr fine_audio_buffer_; + std::unique_ptr fine_audio_buffer_; // Extra audio buffer to be used by the playout side for rendering audio. // The buffer size is given by FineAudioBuffer::RequiredBufferSizeBytes(). - rtc::scoped_ptr playout_audio_buffer_; + std::unique_ptr playout_audio_buffer_; // Provides a mechanism for encapsulating one or more buffers of audio data. // Only used on the recording side. @@ -268,7 +269,7 @@ class AudioDeviceIOS : public AudioDeviceGeneric { // Temporary storage for recorded data. AudioUnitRender() renders into this // array as soon as a frame of the desired buffer size has been recorded. - rtc::scoped_ptr record_audio_buffer_; + std::unique_ptr record_audio_buffer_; // Set to 1 when recording is active and 0 otherwise. volatile int recording_; diff --git a/webrtc/modules/audio_device/ios/audio_device_unittest_ios.cc b/webrtc/modules/audio_device/ios/audio_device_unittest_ios.cc index 076a67430d..4dfb073fa9 100644 --- a/webrtc/modules/audio_device/ios/audio_device_unittest_ios.cc +++ b/webrtc/modules/audio_device/ios/audio_device_unittest_ios.cc @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include @@ -21,7 +22,6 @@ #include "webrtc/base/criticalsection.h" #include "webrtc/base/format_macros.h" #include "webrtc/base/logging.h" -#include "webrtc/base/scoped_ptr.h" #include "webrtc/base/scoped_ref_ptr.h" #include "webrtc/modules/audio_device/audio_device_impl.h" #include "webrtc/modules/audio_device/include/audio_device.h" @@ -145,7 +145,7 @@ class FileAudioStream : public AudioStreamInterface { private: size_t file_size_in_bytes_; int sample_rate_; - rtc::scoped_ptr file_; + std::unique_ptr file_; size_t file_pos_; }; @@ -233,7 +233,7 @@ class FifoAudioStream : public AudioStreamInterface { rtc::CriticalSection lock_; const size_t frames_per_buffer_; const size_t bytes_per_buffer_; - rtc::scoped_ptr fifo_; + std::unique_ptr fifo_; size_t largest_size_; size_t total_written_elements_; size_t write_count_; @@ -593,7 +593,7 @@ class AudioDeviceTest : public ::testing::Test { EXPECT_FALSE(audio_device()->Recording()); } - rtc::scoped_ptr test_is_done_; + std::unique_ptr test_is_done_; rtc::scoped_refptr audio_device_; AudioParameters playout_parameters_; AudioParameters record_parameters_; @@ -761,7 +761,7 @@ TEST_F(AudioDeviceTest, RunPlayoutWithFileAsSource) { NiceMock mock(kPlayout); const int num_callbacks = kFilePlayTimeInSec * kNumCallbacksPerSecond; std::string file_name = GetFileName(playout_sample_rate()); - rtc::scoped_ptr file_audio_stream( + std::unique_ptr file_audio_stream( new FileAudioStream(num_callbacks, file_name, playout_sample_rate())); mock.HandleCallbacks(test_is_done_.get(), file_audio_stream.get(), num_callbacks); @@ -795,7 +795,7 @@ TEST_F(AudioDeviceTest, RunPlayoutAndRecordingInFullDuplex) { EXPECT_EQ(record_channels(), playout_channels()); EXPECT_EQ(record_sample_rate(), playout_sample_rate()); NiceMock mock(kPlayout | kRecording); - rtc::scoped_ptr fifo_audio_stream( + std::unique_ptr fifo_audio_stream( new FifoAudioStream(playout_frames_per_10ms_buffer())); mock.HandleCallbacks(test_is_done_.get(), fifo_audio_stream.get(), kFullDuplexTimeInSec * kNumCallbacksPerSecond); @@ -824,7 +824,7 @@ TEST_F(AudioDeviceTest, DISABLED_MeasureLoopbackLatency) { EXPECT_EQ(record_channels(), playout_channels()); EXPECT_EQ(record_sample_rate(), playout_sample_rate()); NiceMock mock(kPlayout | kRecording); - rtc::scoped_ptr latency_audio_stream( + std::unique_ptr latency_audio_stream( new LatencyMeasuringAudioStream(playout_frames_per_10ms_buffer())); mock.HandleCallbacks(test_is_done_.get(), latency_audio_stream.get(), kMeasureLatencyTimeInSec * kNumCallbacksPerSecond); diff --git a/webrtc/modules/audio_device/linux/audio_device_alsa_linux.h b/webrtc/modules/audio_device/linux/audio_device_alsa_linux.h index 4a1a5191be..340e96398f 100644 --- a/webrtc/modules/audio_device/linux/audio_device_alsa_linux.h +++ b/webrtc/modules/audio_device/linux/audio_device_alsa_linux.h @@ -11,6 +11,8 @@ #ifndef WEBRTC_AUDIO_DEVICE_AUDIO_DEVICE_ALSA_LINUX_H #define WEBRTC_AUDIO_DEVICE_AUDIO_DEVICE_ALSA_LINUX_H +#include + #include "webrtc/base/platform_thread.h" #include "webrtc/modules/audio_device/audio_device_generic.h" #include "webrtc/modules/audio_device/linux/audio_mixer_manager_alsa_linux.h" @@ -187,8 +189,8 @@ private: // TODO(pbos): Make plain members and start/stop instead of resetting these // pointers. A thread can be reused. - rtc::scoped_ptr _ptrThreadRec; - rtc::scoped_ptr _ptrThreadPlay; + std::unique_ptr _ptrThreadRec; + std::unique_ptr _ptrThreadPlay; int32_t _id; diff --git a/webrtc/modules/audio_device/linux/audio_device_pulse_linux.h b/webrtc/modules/audio_device/linux/audio_device_pulse_linux.h index de8df0be1b..a0a15e5f0e 100644 --- a/webrtc/modules/audio_device/linux/audio_device_pulse_linux.h +++ b/webrtc/modules/audio_device/linux/audio_device_pulse_linux.h @@ -11,6 +11,8 @@ #ifndef WEBRTC_AUDIO_DEVICE_AUDIO_DEVICE_PULSE_LINUX_H #define WEBRTC_AUDIO_DEVICE_AUDIO_DEVICE_PULSE_LINUX_H +#include + #include "webrtc/base/platform_thread.h" #include "webrtc/base/thread_checker.h" #include "webrtc/modules/audio_device/audio_device_generic.h" @@ -284,9 +286,9 @@ private: EventWrapper& _recStartEvent; EventWrapper& _playStartEvent; - // TODO(pbos): Remove scoped_ptr and use directly without resetting. - rtc::scoped_ptr _ptrThreadPlay; - rtc::scoped_ptr _ptrThreadRec; + // TODO(pbos): Remove unique_ptr and use directly without resetting. + std::unique_ptr _ptrThreadPlay; + std::unique_ptr _ptrThreadRec; int32_t _id; AudioMixerManagerLinuxPulse _mixerManager; diff --git a/webrtc/modules/audio_device/mac/audio_device_mac.h b/webrtc/modules/audio_device/mac/audio_device_mac.h index ca3a51997d..102c67e97c 100644 --- a/webrtc/modules/audio_device/mac/audio_device_mac.h +++ b/webrtc/modules/audio_device/mac/audio_device_mac.h @@ -11,7 +11,8 @@ #ifndef WEBRTC_AUDIO_DEVICE_AUDIO_DEVICE_MAC_H #define WEBRTC_AUDIO_DEVICE_AUDIO_DEVICE_MAC_H -#include "webrtc/base/scoped_ptr.h" +#include + #include "webrtc/base/thread_annotations.h" #include "webrtc/modules/audio_device/audio_device_generic.h" #include "webrtc/modules/audio_device/mac/audio_mixer_manager_mac.h" @@ -290,10 +291,10 @@ class AudioDeviceMac : public AudioDeviceGeneric { // TODO(pbos): Replace with direct members, just start/stop, no need to // recreate the thread. // Only valid/running between calls to StartRecording and StopRecording. - rtc::scoped_ptr capture_worker_thread_; + std::unique_ptr capture_worker_thread_; // Only valid/running between calls to StartPlayout and StopPlayout. - rtc::scoped_ptr render_worker_thread_; + std::unique_ptr render_worker_thread_; int32_t _id; diff --git a/webrtc/modules/audio_device/test/audio_device_test_api.cc b/webrtc/modules/audio_device/test/audio_device_test_api.cc index f2861ec3e5..a564e35584 100644 --- a/webrtc/modules/audio_device/test/audio_device_test_api.cc +++ b/webrtc/modules/audio_device/test/audio_device_test_api.cc @@ -12,6 +12,8 @@ #include #include +#include + #include "webrtc/modules/audio_device/test/audio_device_test_defines.h" #include "testing/gtest/include/gtest/gtest.h" @@ -140,7 +142,8 @@ class AudioDeviceAPITest: public testing::Test { virtual ~AudioDeviceAPITest() {} static void SetUpTestCase() { - process_thread_ = ProcessThread::Create("ProcessThread"); + process_thread_ = + rtc::ScopedToUnique(ProcessThread::Create("ProcessThread")); process_thread_->Start(); // Windows: @@ -300,7 +303,7 @@ class AudioDeviceAPITest: public testing::Test { // TODO(henrika): Get rid of globals. static bool linux_alsa_; - static rtc::scoped_ptr process_thread_; + static std::unique_ptr process_thread_; static AudioDeviceModule* audio_device_; static AudioTransportAPI* audio_transport_; static AudioEventObserverAPI* event_observer_; @@ -308,7 +311,7 @@ class AudioDeviceAPITest: public testing::Test { // Must be initialized like this to handle static SetUpTestCase() above. bool AudioDeviceAPITest::linux_alsa_ = false; -rtc::scoped_ptr AudioDeviceAPITest::process_thread_; +std::unique_ptr AudioDeviceAPITest::process_thread_; AudioDeviceModule* AudioDeviceAPITest::audio_device_ = NULL; AudioTransportAPI* AudioDeviceAPITest::audio_transport_ = NULL; AudioEventObserverAPI* AudioDeviceAPITest::event_observer_ = NULL; diff --git a/webrtc/modules/audio_device/test/func_test_manager.cc b/webrtc/modules/audio_device/test/func_test_manager.cc index 0a2963e9ae..bb7686c6c1 100644 --- a/webrtc/modules/audio_device/test/func_test_manager.cc +++ b/webrtc/modules/audio_device/test/func_test_manager.cc @@ -594,8 +594,8 @@ FuncTestManager::~FuncTestManager() int32_t FuncTestManager::Init() { - EXPECT_TRUE((_processThread = ProcessThread::Create("ProcessThread")) != - NULL); + EXPECT_TRUE((_processThread = rtc::ScopedToUnique( + ProcessThread::Create("ProcessThread"))) != NULL); if (_processThread == NULL) { return -1; @@ -832,8 +832,8 @@ int32_t FuncTestManager::TestAudioLayerSelection() // ================================================== // Next, try to make fresh start with new audio layer - EXPECT_TRUE((_processThread = ProcessThread::Create("ProcessThread")) != - NULL); + EXPECT_TRUE((_processThread = rtc::ScopedToUnique( + ProcessThread::Create("ProcessThread"))) != NULL); if (_processThread == NULL) { return -1; diff --git a/webrtc/modules/audio_device/test/func_test_manager.h b/webrtc/modules/audio_device/test/func_test_manager.h index b7cc81cc1a..2b8a19beb1 100644 --- a/webrtc/modules/audio_device/test/func_test_manager.h +++ b/webrtc/modules/audio_device/test/func_test_manager.h @@ -12,6 +12,7 @@ #define WEBRTC_AUDIO_DEVICE_FUNC_TEST_MANAGER_H #include +#include #include #include "webrtc/common_audio/resampler/include/resampler.h" @@ -206,7 +207,7 @@ private: std::string _playoutFile16; std::string _playoutFile8; - rtc::scoped_ptr _processThread; + std::unique_ptr _processThread; AudioDeviceModule* _audioDevice; AudioEventObserver* _audioEventObserver; AudioTransportImpl* _audioTransport; diff --git a/webrtc/modules/audio_device/win/audio_device_wave_win.h b/webrtc/modules/audio_device/win/audio_device_wave_win.h index a1cfc6acbf..402d575d8a 100644 --- a/webrtc/modules/audio_device/win/audio_device_wave_win.h +++ b/webrtc/modules/audio_device/win/audio_device_wave_win.h @@ -11,6 +11,8 @@ #ifndef WEBRTC_AUDIO_DEVICE_AUDIO_DEVICE_WAVE_WIN_H #define WEBRTC_AUDIO_DEVICE_AUDIO_DEVICE_WAVE_WIN_H +#include + #include "webrtc/base/platform_thread.h" #include "webrtc/modules/audio_device/audio_device_generic.h" #include "webrtc/modules/audio_device/win/audio_mixer_manager_win.h" @@ -222,8 +224,8 @@ private: HANDLE _hShutdownSetVolumeEvent; HANDLE _hSetCaptureVolumeEvent; - // TODO(pbos): Remove scoped_ptr usage and use PlatformThread directly - rtc::scoped_ptr _ptrThread; + // TODO(pbos): Remove unique_ptr usage and use PlatformThread directly + std::unique_ptr _ptrThread; CriticalSectionWrapper& _critSectCb;