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

Unified Diff: media/audio/audio_output_controller_unittest.cc

Issue 9121062: Remove "high"-latency audio code path (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase ToT yet again Created 8 years, 11 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
« no previous file with comments | « media/audio/audio_output_controller.cc ('k') | media/filters/reference_audio_renderer.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/audio/audio_output_controller_unittest.cc
diff --git a/media/audio/audio_output_controller_unittest.cc b/media/audio/audio_output_controller_unittest.cc
index 700ee334a5e6c221283d447b92c64d180fcc4827..49ee34268cc458d224ee1ed6ffa6b93217f84580 100644
--- a/media/audio/audio_output_controller_unittest.cc
+++ b/media/audio/audio_output_controller_unittest.cc
@@ -11,6 +11,8 @@
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
+// TODO(vrk): These tests need to be rewritten! (crbug.com/112500)
+
using ::testing::_;
using ::testing::AtLeast;
using ::testing::DoAll;
@@ -25,7 +27,6 @@ static const ChannelLayout kChannelLayout = CHANNEL_LAYOUT_STEREO;
static const int kSamplesPerPacket = kSampleRate / 10;
static const int kHardwareBufferSize = kSamplesPerPacket *
ChannelLayoutToChannelCount(kChannelLayout) * kBitsPerSample / 8;
-static const int kBufferCapacity = 3 * kHardwareBufferSize;
namespace media {
@@ -39,8 +40,6 @@ class MockAudioOutputControllerEventHandler
MOCK_METHOD1(OnPaused, void(AudioOutputController* controller));
MOCK_METHOD2(OnError, void(AudioOutputController* controller,
int error_code));
- MOCK_METHOD2(OnMoreData, void(AudioOutputController* controller,
- AudioBuffersState buffers_state));
private:
DISALLOW_COPY_AND_ASSIGN(MockAudioOutputControllerEventHandler);
@@ -81,114 +80,18 @@ TEST(AudioOutputControllerTest, CreateAndClose) {
EXPECT_CALL(event_handler, OnCreated(NotNull()))
.Times(1);
- EXPECT_CALL(event_handler, OnMoreData(NotNull(), _));
-
- AudioParameters params(AudioParameters::AUDIO_PCM_LINEAR, kChannelLayout,
- kSampleRate, kBitsPerSample, kSamplesPerPacket);
- scoped_refptr<AudioOutputController> controller =
- AudioOutputController::Create(audio_manager, &event_handler, params,
- kBufferCapacity);
- ASSERT_TRUE(controller.get());
-
- // Close the controller immediately.
- CloseAudioController(controller);
-}
-
-TEST(AudioOutputControllerTest, PlayAndClose) {
- scoped_refptr<AudioManager> audio_manager(AudioManager::Create());
- if (!audio_manager->HasAudioOutputDevices())
- return;
-
- MockAudioOutputControllerEventHandler event_handler;
- base::WaitableEvent event(false, false);
-
- // If OnCreated is called then signal the event.
- EXPECT_CALL(event_handler, OnCreated(NotNull()))
- .WillOnce(SignalEvent(&event));
-
- // OnPlaying() will be called only once.
- EXPECT_CALL(event_handler, OnPlaying(NotNull()))
- .Times(Exactly(1));
-
- // If OnMoreData is called enough then signal the event.
- EXPECT_CALL(event_handler, OnMoreData(NotNull(), _))
- .Times(AtLeast(10))
- .WillRepeatedly(SignalEvent(&event));
-
- AudioParameters params(AudioParameters::AUDIO_PCM_LINEAR, kChannelLayout,
- kSampleRate, kBitsPerSample, kSamplesPerPacket);
- scoped_refptr<AudioOutputController> controller =
- AudioOutputController::Create(audio_manager, &event_handler, params,
- kBufferCapacity);
- ASSERT_TRUE(controller.get());
-
- // Wait for OnCreated() to be called.
- event.Wait();
-
- controller->Play();
-
- // Wait until the date is requested at least 10 times.
- for (int i = 0; i < 10; i++) {
- event.Wait();
- uint8 buf[1];
- controller->EnqueueData(buf, 0);
- }
-
- // Now stop the controller.
- CloseAudioController(controller);
-}
-
-TEST(AudioOutputControllerTest, PlayAndCloseLowLatency) {
- scoped_refptr<AudioManager> audio_manager(AudioManager::Create());
- if (!audio_manager->HasAudioOutputDevices())
- return;
-
- MockAudioOutputControllerEventHandler event_handler;
- base::WaitableEvent event(false, false);
-
- // If OnCreated is called then signal the event.
- EXPECT_CALL(event_handler, OnCreated(NotNull()))
- .WillOnce(SignalEvent(&event));
-
- // OnPlaying() will be called only once.
- EXPECT_CALL(event_handler, OnPlaying(NotNull()))
- .Times(Exactly(1));
MockAudioOutputControllerSyncReader sync_reader;
- EXPECT_CALL(sync_reader, UpdatePendingBytes(_))
- .Times(AtLeast(10));
- EXPECT_CALL(sync_reader, DataReady())
- .WillOnce(Return(false))
- .WillOnce(Return(false))
- .WillRepeatedly(Return(true));
- EXPECT_CALL(sync_reader, Read(_, kHardwareBufferSize))
- .Times(AtLeast(10))
- .WillRepeatedly(DoAll(SignalEvent(&event),
- Return(4)));
EXPECT_CALL(sync_reader, Close());
AudioParameters params(AudioParameters::AUDIO_PCM_LINEAR, kChannelLayout,
kSampleRate, kBitsPerSample, kSamplesPerPacket);
scoped_refptr<AudioOutputController> controller =
- AudioOutputController::CreateLowLatency(audio_manager,
- &event_handler,
- params,
- &sync_reader);
+ AudioOutputController::Create(
+ audio_manager, &event_handler, params, &sync_reader);
ASSERT_TRUE(controller.get());
- // Wait for OnCreated() to be called.
- event.Wait();
-
- controller->Play();
-
- // Wait until the date is requested at least 10 times.
- for (int i = 0; i < 10; i++) {
- event.Wait();
- uint8 buf[1];
- controller->EnqueueData(buf, 0);
- }
-
- // Now stop the controller.
+ // Close the controller immediately.
CloseAudioController(controller);
}
@@ -203,62 +106,6 @@ TEST(AudioOutputControllerTest, PlayPauseClose) {
// If OnCreated is called then signal the event.
EXPECT_CALL(event_handler, OnCreated(NotNull()))
- .Times(Exactly(1))
- .WillOnce(InvokeWithoutArgs(&event, &base::WaitableEvent::Signal));
-
- // OnPlaying() will be called only once.
- EXPECT_CALL(event_handler, OnPlaying(NotNull()))
- .Times(Exactly(1));
-
- // If OnMoreData is called enough then signal the event.
- EXPECT_CALL(event_handler, OnMoreData(NotNull(), _))
- .Times(AtLeast(10))
- .WillRepeatedly(SignalEvent(&event));
-
- // And then OnPaused() will be called.
- EXPECT_CALL(event_handler, OnPaused(NotNull()))
- .Times(Exactly(1))
- .WillOnce(InvokeWithoutArgs(&pause_event, &base::WaitableEvent::Signal));
-
- AudioParameters params(AudioParameters::AUDIO_PCM_LINEAR, kChannelLayout,
- kSampleRate, kBitsPerSample, kSamplesPerPacket);
- scoped_refptr<AudioOutputController> controller =
- AudioOutputController::Create(audio_manager, &event_handler, params,
- kBufferCapacity);
- ASSERT_TRUE(controller.get());
-
- // Wait for OnCreated() to be called.
- event.Wait();
-
- controller->Play();
-
- // Wait until the date is requested at least 10 times.
- for (int i = 0; i < 10; i++) {
- event.Wait();
- uint8 buf[1];
- controller->EnqueueData(buf, 0);
- }
-
- // And then wait for pause to complete.
- ASSERT_FALSE(pause_event.IsSignaled());
- controller->Pause();
- pause_event.Wait();
-
- // Now stop the controller.
- CloseAudioController(controller);
-}
-
-TEST(AudioOutputControllerTest, PlayPauseCloseLowLatency) {
- scoped_refptr<AudioManager> audio_manager(AudioManager::Create());
- if (!audio_manager->HasAudioOutputDevices())
- return;
-
- MockAudioOutputControllerEventHandler event_handler;
- base::WaitableEvent event(false, false);
- base::WaitableEvent pause_event(false, false);
-
- // If OnCreated is called then signal the event.
- EXPECT_CALL(event_handler, OnCreated(NotNull()))
.WillOnce(InvokeWithoutArgs(&event, &base::WaitableEvent::Signal));
// OnPlaying() will be called only once.
@@ -277,10 +124,8 @@ TEST(AudioOutputControllerTest, PlayPauseCloseLowLatency) {
AudioParameters params(AudioParameters::AUDIO_PCM_LINEAR, kChannelLayout,
kSampleRate, kBitsPerSample, kSamplesPerPacket);
scoped_refptr<AudioOutputController> controller =
- AudioOutputController::CreateLowLatency(audio_manager,
- &event_handler,
- params,
- &sync_reader);
+ AudioOutputController::Create(
+ audio_manager, &event_handler, params, &sync_reader);
ASSERT_TRUE(controller.get());
// Wait for OnCreated() to be called.
@@ -295,77 +140,6 @@ TEST(AudioOutputControllerTest, PlayPauseCloseLowLatency) {
CloseAudioController(controller);
}
-TEST(AudioOutputControllerTest, PlayPausePlay) {
- scoped_refptr<AudioManager> audio_manager(AudioManager::Create());
- if (!audio_manager->HasAudioOutputDevices())
- return;
-
- MockAudioOutputControllerEventHandler event_handler;
- base::WaitableEvent event(false, false);
- base::WaitableEvent pause_event(false, false);
-
- // If OnCreated is called then signal the event.
- EXPECT_CALL(event_handler, OnCreated(NotNull()))
- .Times(Exactly(1))
- .WillOnce(InvokeWithoutArgs(&event, &base::WaitableEvent::Signal));
-
- // OnPlaying() will be called only once.
- EXPECT_CALL(event_handler, OnPlaying(NotNull()))
- .Times(Exactly(1))
- .RetiresOnSaturation();
-
- // If OnMoreData() is called enough then signal the event.
- EXPECT_CALL(event_handler, OnMoreData(NotNull(), _))
- .Times(AtLeast(1))
- .WillRepeatedly(SignalEvent(&event));
-
- // And then OnPaused() will be called.
- EXPECT_CALL(event_handler, OnPaused(NotNull()))
- .Times(Exactly(1))
- .WillOnce(InvokeWithoutArgs(&pause_event, &base::WaitableEvent::Signal));
-
- // OnPlaying() will be called only once.
- EXPECT_CALL(event_handler, OnPlaying(NotNull()))
- .Times(Exactly(1))
- .RetiresOnSaturation();
-
- AudioParameters params(AudioParameters::AUDIO_PCM_LINEAR, kChannelLayout,
- kSampleRate, kBitsPerSample, kSamplesPerPacket);
- scoped_refptr<AudioOutputController> controller =
- AudioOutputController::Create(audio_manager, &event_handler, params,
- kBufferCapacity);
- ASSERT_TRUE(controller.get());
-
- // Wait for OnCreated() to be called.
- event.Wait();
-
- controller->Play();
-
- // Wait until the date is requested at least 10 times.
- for (int i = 0; i < 10; i++) {
- event.Wait();
- uint8 buf[1];
- controller->EnqueueData(buf, 0);
- }
-
- // And then wait for pause to complete.
- ASSERT_FALSE(pause_event.IsSignaled());
- controller->Pause();
- pause_event.Wait();
-
- // Then we play again.
- controller->Play();
-
- // Wait until the date is requested at least 10 times.
- for (int i = 0; i < 10; i++) {
- event.Wait();
- uint8 buf[1];
- controller->EnqueueData(buf, 0);
- }
-
- // Now stop the controller.
- CloseAudioController(controller);
-}
TEST(AudioOutputControllerTest, HardwareBufferTooLarge) {
scoped_refptr<AudioManager> audio_manager(AudioManager::Create());
@@ -374,58 +148,18 @@ TEST(AudioOutputControllerTest, HardwareBufferTooLarge) {
// Create an audio device with a very large hardware buffer size.
MockAudioOutputControllerEventHandler event_handler;
+
+ MockAudioOutputControllerSyncReader sync_reader;
AudioParameters params(AudioParameters::AUDIO_PCM_LINEAR, kChannelLayout,
kSampleRate, kBitsPerSample,
kSamplesPerPacket * 1000);
scoped_refptr<AudioOutputController> controller =
- AudioOutputController::Create(audio_manager, &event_handler, params,
- kBufferCapacity);
+ AudioOutputController::Create(
+ audio_manager, &event_handler, params, &sync_reader);
// Use assert because we don't stop the device and assume we can't
// create one.
ASSERT_FALSE(controller);
}
-TEST(AudioOutputControllerTest, CloseTwice) {
- scoped_refptr<AudioManager> audio_manager(AudioManager::Create());
- if (!audio_manager->HasAudioOutputDevices())
- return;
-
- MockAudioOutputControllerEventHandler event_handler;
- base::WaitableEvent event(false, false);
-
- // If OnCreated is called then signal the event.
- EXPECT_CALL(event_handler, OnCreated(NotNull()))
- .WillOnce(SignalEvent(&event));
-
- // One OnMoreData() is expected.
- EXPECT_CALL(event_handler, OnMoreData(NotNull(), _))
- .Times(AtLeast(1))
- .WillRepeatedly(SignalEvent(&event));
-
- AudioParameters params(AudioParameters::AUDIO_PCM_LINEAR, kChannelLayout,
- kSampleRate, kBitsPerSample, kSamplesPerPacket);
- scoped_refptr<AudioOutputController> controller =
- AudioOutputController::Create(audio_manager, &event_handler, params,
- kBufferCapacity);
- ASSERT_TRUE(controller.get());
-
- // Wait for OnCreated() to be called.
- event.Wait();
-
- // Wait for OnMoreData() to be called.
- event.Wait();
-
- base::WaitableEvent closed_event_1(true, false);
- controller->Close(base::Bind(&base::WaitableEvent::Signal,
- base::Unretained(&closed_event_1)));
-
- base::WaitableEvent closed_event_2(true, false);
- controller->Close(base::Bind(&base::WaitableEvent::Signal,
- base::Unretained(&closed_event_2)));
-
- closed_event_1.Wait();
- closed_event_2.Wait();
-}
-
} // namespace media
« no previous file with comments | « media/audio/audio_output_controller.cc ('k') | media/filters/reference_audio_renderer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698