| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <stdint.h> | 5 #include <stdint.h> |
| 6 | 6 |
| 7 #include <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "base/at_exit.h" | 9 #include "base/at_exit.h" |
| 10 #include "base/bind_helpers.h" | 10 #include "base/bind_helpers.h" |
| (...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 220 | 220 |
| 221 ASSERT_TRUE(CancelableSyncSocket::CreatePair(&browser_socket_, | 221 ASSERT_TRUE(CancelableSyncSocket::CreatePair(&browser_socket_, |
| 222 &renderer_socket_)); | 222 &renderer_socket_)); |
| 223 | 223 |
| 224 // Create duplicates of the handles we pass to AudioOutputDevice since | 224 // Create duplicates of the handles we pass to AudioOutputDevice since |
| 225 // ownership will be transferred and AudioOutputDevice is responsible for | 225 // ownership will be transferred and AudioOutputDevice is responsible for |
| 226 // freeing. | 226 // freeing. |
| 227 SyncSocket::TransitDescriptor audio_device_socket_descriptor; | 227 SyncSocket::TransitDescriptor audio_device_socket_descriptor; |
| 228 ASSERT_TRUE(renderer_socket_.PrepareTransitDescriptor( | 228 ASSERT_TRUE(renderer_socket_.PrepareTransitDescriptor( |
| 229 base::GetCurrentProcessHandle(), &audio_device_socket_descriptor)); | 229 base::GetCurrentProcessHandle(), &audio_device_socket_descriptor)); |
| 230 base::SharedMemoryHandle duplicated_memory_handle; | 230 base::SharedMemoryHandle duplicated_memory_handle = |
| 231 ASSERT_TRUE(shared_memory_.ShareToProcess(base::GetCurrentProcessHandle(), | 231 shared_memory_.handle().Duplicate(); |
| 232 &duplicated_memory_handle)); | 232 ASSERT_TRUE(duplicated_memory_handle.IsValid()); |
| 233 | 233 |
| 234 // TODO(erikchen): This appears to leak the SharedMemoryHandle. |
| 235 // https://crbug.com/640840. |
| 234 audio_device_->OnStreamCreated( | 236 audio_device_->OnStreamCreated( |
| 235 duplicated_memory_handle, | 237 duplicated_memory_handle, |
| 236 SyncSocket::UnwrapHandle(audio_device_socket_descriptor), kMemorySize); | 238 SyncSocket::UnwrapHandle(audio_device_socket_descriptor), kMemorySize); |
| 237 base::RunLoop().RunUntilIdle(); | 239 base::RunLoop().RunUntilIdle(); |
| 238 } | 240 } |
| 239 | 241 |
| 240 void AudioOutputDeviceTest::ExpectRenderCallback() { | 242 void AudioOutputDeviceTest::ExpectRenderCallback() { |
| 241 // We should get a 'play' notification when we call OnStreamCreated(). | 243 // We should get a 'play' notification when we call OnStreamCreated(). |
| 242 // Respond by asking for some audio data. This should ask our callback | 244 // Respond by asking for some audio data. This should ask our callback |
| 243 // to provide some audio data that AudioOutputDevice then writes into the | 245 // to provide some audio data that AudioOutputDevice then writes into the |
| (...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 378 // Runs the loop and waits for |thread| to call event's closure. | 380 // Runs the loop and waits for |thread| to call event's closure. |
| 379 event.RunAndWait(); | 381 event.RunAndWait(); |
| 380 | 382 |
| 381 audio_device_->Stop(); | 383 audio_device_->Stop(); |
| 382 base::RunLoop().RunUntilIdle(); | 384 base::RunLoop().RunUntilIdle(); |
| 383 } | 385 } |
| 384 | 386 |
| 385 INSTANTIATE_TEST_CASE_P(Render, AudioOutputDeviceTest, Values(false)); | 387 INSTANTIATE_TEST_CASE_P(Render, AudioOutputDeviceTest, Values(false)); |
| 386 | 388 |
| 387 } // namespace media. | 389 } // namespace media. |
| OLD | NEW |