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

Unified Diff: media/audio/audio_output_device_unittest.cc

Issue 2517503003: Reland: Make more media APIs aware of |delay| and |delay_timestamp| (Closed)
Patch Set: Comments from chcunningham@ and Dale Created 4 years 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_device.cc ('k') | media/audio/audio_output_stream_sink.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/audio/audio_output_device_unittest.cc
diff --git a/media/audio/audio_output_device_unittest.cc b/media/audio/audio_output_device_unittest.cc
index 70a9b3902b8a4bb4ae0164c4a98aadde174eb33b..44414d4ca68bc9981ae1dc26d39c5e05a3223925 100644
--- a/media/audio/audio_output_device_unittest.cc
+++ b/media/audio/audio_output_device_unittest.cc
@@ -47,16 +47,18 @@ const char kDefaultDeviceId[] = "";
const char kNonDefaultDeviceId[] = "valid-nondefault-device-id";
const char kUnauthorizedDeviceId[] = "unauthorized-device-id";
const int kAuthTimeoutForTestingMs = 500;
+const int kOutputDelayMs = 20;
class MockRenderCallback : public AudioRendererSink::RenderCallback {
public:
MockRenderCallback() {}
virtual ~MockRenderCallback() {}
- MOCK_METHOD3(Render,
- int(AudioBus* dest,
- uint32_t frames_delayed,
- uint32_t frames_skipped));
+ MOCK_METHOD4(Render,
+ int(base::TimeDelta delay,
+ base::TimeTicks timestamp,
+ int prior_frames_skipped,
+ AudioBus* dest));
MOCK_METHOD0(OnRenderError, void());
};
@@ -79,8 +81,17 @@ class MockAudioOutputIPC : public AudioOutputIPC {
MOCK_METHOD1(SetVolume, void(double volume));
};
-ACTION_P2(SendPendingBytes, socket, pending_bytes) {
- socket->Send(&pending_bytes, sizeof(pending_bytes));
+ACTION_P2(RequestMoreData, socket, shared_memory) {
+ AudioOutputBuffer* buffer =
+ reinterpret_cast<AudioOutputBuffer*>(shared_memory->memory());
+ buffer->params.frames_skipped = 0;
+ buffer->params.delay =
+ base::TimeDelta::FromMilliseconds(kOutputDelayMs).InMicroseconds();
+ buffer->params.delay_timestamp =
+ (base::TimeTicks::Now() - base::TimeTicks()).InMicroseconds();
+
+ constexpr int kControlSignal = 0;
+ socket->Send(&kControlSignal, sizeof(kControlSignal));
}
// Used to terminate a loop from a different thread than the loop belongs to.
@@ -227,10 +238,8 @@ void AudioOutputDeviceTest::ExpectRenderCallback() {
// Respond by asking for some audio data. This should ask our callback
// to provide some audio data that AudioOutputDevice then writes into the
// shared memory section.
- const int kMemorySize = CalculateMemorySize();
-
EXPECT_CALL(*audio_output_ipc_, PlayStream())
- .WillOnce(SendPendingBytes(&browser_socket_, kMemorySize));
+ .WillOnce(RequestMoreData(&browser_socket_, &shared_memory_));
// We expect calls to our audio renderer callback, which returns the number
// of frames written to the memory section.
@@ -240,7 +249,9 @@ void AudioOutputDeviceTest::ExpectRenderCallback() {
// So, for the sake of this test, we consider the call to Render a sign
// of success and quit the loop.
const int kNumberOfFramesToProcess = 0;
- EXPECT_CALL(callback_, Render(_, _, _))
+ EXPECT_CALL(
+ callback_,
+ Render(base::TimeDelta::FromMilliseconds(kOutputDelayMs), _, _, _))
.WillOnce(DoAll(QuitLoop(io_loop_.task_runner()),
Return(kNumberOfFramesToProcess)));
}
« no previous file with comments | « media/audio/audio_output_device.cc ('k') | media/audio/audio_output_stream_sink.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698