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

Unified Diff: content/renderer/media/media_recorder_handler_unittest.cc

Issue 1579693006: MediaRecorder: support sampling rate adaption in AudioTrackRecorder (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: miu@s second round of comments Created 4 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
Index: content/renderer/media/media_recorder_handler_unittest.cc
diff --git a/content/renderer/media/media_recorder_handler_unittest.cc b/content/renderer/media/media_recorder_handler_unittest.cc
index 4a92b223b26d5d55755dd62eeadb3999f94916b6..0769a263b2ec746e2358e28fbd3a5c18682f5606 100644
--- a/content/renderer/media/media_recorder_handler_unittest.cc
+++ b/content/renderer/media/media_recorder_handler_unittest.cc
@@ -41,7 +41,11 @@ static const std::string kTestAudioTrackId = "audio_track_id";
static const int kTestAudioChannels = 2;
static const int kTestAudioBitsPerSample = 16;
static const int kTestAudioSampleRate = 48000;
-static const int kTestAudioBufferDurationMS = 60;
+// MediaStream Audio Track always provides audio in chunks of 10 ms.
miu 2016/01/29 02:37:15 This is not a global assumption. The current Chro
mcasas 2016/01/29 20:37:34 Removed the comment. For these tests is fine to us
+static const int kMediaStreamAudioTrackBufferDurationMs = 10;
+// Opus works with 60ms buffers, so 6 MediaStreamAudioTrack Buffers are needed
+// to encode one output buffer.
+static const int kRatioOpusToMediaStreamTrackBuffers = 6;
struct MediaRecorderTestParams {
const bool has_video;
@@ -59,7 +63,7 @@ struct MediaRecorderTestParams {
static const MediaRecorderTestParams kMediaRecorderTestParams[] = {
{true, false, "video/webm", "vp8", 52, 32, 0, 0},
{true, false, "video/webm", "vp9", 33, 18, 0, 0},
- {false, true, "video/webm", "vp8", 0, 0, 990, 706}};
+ {false, true, "video/webm", "vp8", 0, 0, 996, 746}};
miu 2016/01/29 02:37:15 It's a bit brittle to require the tests pass based
mcasas 2016/01/29 20:37:34 My opinion is that a potential libvpx roller shoul
class MediaRecorderHandlerTest : public TestWithParam<MediaRecorderTestParams>,
public blink::WebMediaRecorderHandlerClient {
@@ -113,7 +117,7 @@ class MediaRecorderHandlerTest : public TestWithParam<MediaRecorderTestParams>,
scoped_ptr<media::AudioBus> NextAudioBus() {
scoped_ptr<media::AudioBus> bus(media::AudioBus::Create(
kTestAudioChannels,
- kTestAudioSampleRate * kTestAudioBufferDurationMS / 1000));
+ kTestAudioSampleRate * kMediaStreamAudioTrackBufferDurationMs / 1000));
audio_source_.OnMoreData(bus.get(), 0, 0);
return bus;
}
@@ -284,7 +288,7 @@ TEST_P(MediaRecorderHandlerTest, EncodeAudioFrames) {
media::AudioParameters params(
media::AudioParameters::AUDIO_PCM_LINEAR, media::CHANNEL_LAYOUT_STEREO,
kTestAudioSampleRate, kTestAudioBitsPerSample,
- kTestAudioSampleRate * kTestAudioBufferDurationMS / 1000);
+ kTestAudioSampleRate * kMediaStreamAudioTrackBufferDurationMs / 1000);
SetAudioFormatForTesting(params);
{
@@ -298,7 +302,8 @@ TEST_P(MediaRecorderHandlerTest, EncodeAudioFrames) {
.Times(1)
.WillOnce(RunClosure(quit_closure));
- OnAudioBusForTesting(*audio_bus1);
+ for (int i = 0; i < kRatioOpusToMediaStreamTrackBuffers; ++i)
+ OnAudioBusForTesting(*audio_bus1);
run_loop.Run();
}
@@ -315,7 +320,8 @@ TEST_P(MediaRecorderHandlerTest, EncodeAudioFrames) {
.Times(1)
.WillOnce(RunClosure(quit_closure));
- OnAudioBusForTesting(*audio_bus2);
+ for (int i = 0; i < kRatioOpusToMediaStreamTrackBuffers; ++i)
+ OnAudioBusForTesting(*audio_bus2);
run_loop.Run();
}

Powered by Google App Engine
This is Rietveld 408576698