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

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

Issue 1534553003: MediaRecorder: correct MIME type parsing (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: tommi@s comments Created 5 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 | « content/renderer/media/media_recorder_handler.cc ('k') | content/test/data/media/mediarecorder_test.html » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 57fb60d02da9fef49b7c6d02053c52da3d8d2b72..44d1296ff664ea24d956f8c67d46a78079496456 100644
--- a/content/renderer/media/media_recorder_handler_unittest.cc
+++ b/content/renderer/media/media_recorder_handler_unittest.cc
@@ -44,16 +44,19 @@ struct MediaRecorderTestParams {
const bool has_video;
const bool has_audio;
const char* const mime_type;
+ const char* const codecs;
const size_t first_encoded_video_frame_size;
const size_t second_encoded_video_frame_size;
const size_t first_encoded_audio_frame_size;
const size_t second_encoded_audio_frame_size;
};
+// Array of valid combinations of video/audio/codecs and expected collected
+// encoded sizes to use for parameterizing MediaRecorderHandlerTest.
static const MediaRecorderTestParams kMediaRecorderTestParams[] = {
- {true, false, "video/vp8", 52, 32, 0, 0},
- {true, false, "video/vp9", 33, 18, 0, 0},
- {false, true, "video/vp8", 0, 0, 990, 706}};
+ {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}};
class MediaRecorderHandlerTest : public TestWithParam<MediaRecorderTestParams>,
public blink::WebMediaRecorderHandlerClient {
@@ -130,38 +133,57 @@ class MediaRecorderHandlerTest : public TestWithParam<MediaRecorderTestParams>,
DISALLOW_COPY_AND_ASSIGN(MediaRecorderHandlerTest);
};
-// Checks that canSupportMimeType() works as expected.
-// TODO(mcasas): revisit this when canSupportMimeType() is fully implemented.
+// Checks that canSupportMimeType() works as expected, by sending supported
+// combinations and unsupported ones.
TEST_F(MediaRecorderHandlerTest, CanSupportMimeType) {
- const WebString good_mime_type_vp8(base::UTF8ToUTF16("video/vp8"));
- EXPECT_TRUE(media_recorder_handler_->canSupportMimeType(good_mime_type_vp8));
-
- const WebString good_mime_type_vp9(base::UTF8ToUTF16("video/vp9"));
- EXPECT_TRUE(media_recorder_handler_->canSupportMimeType(good_mime_type_vp9));
-
- const WebString audio_mime_type(base::UTF8ToUTF16("audio/opus"));
- EXPECT_TRUE(media_recorder_handler_->canSupportMimeType(audio_mime_type));
-
- const WebString combo_mime_type(base::UTF8ToUTF16("video/vp8, audio/opus"));
- EXPECT_TRUE(media_recorder_handler_->canSupportMimeType(combo_mime_type));
-
- const WebString bad_combo(base::UTF8ToUTF16("video/vp8, audio/unsupported"));
- EXPECT_FALSE(media_recorder_handler_->canSupportMimeType(bad_combo));
-
- const WebString bad_mime_type(base::UTF8ToUTF16("video/unsupportedcodec"));
- EXPECT_FALSE(media_recorder_handler_->canSupportMimeType(bad_mime_type));
-
- const WebString empty_mime_type(base::UTF8ToUTF16(""));
- EXPECT_TRUE(media_recorder_handler_->canSupportMimeType(empty_mime_type));
+ const WebString unsupported_mime_type(base::UTF8ToUTF16("video/mpeg"));
+ EXPECT_FALSE(media_recorder_handler_->canSupportMimeType(
+ unsupported_mime_type, WebString()));
+
+ const WebString mime_type_video(base::UTF8ToUTF16("video/webm"));
+ EXPECT_TRUE(media_recorder_handler_->canSupportMimeType(
+ mime_type_video, WebString()));
+ const WebString mime_type_video_uppercase(base::UTF8ToUTF16("video/WEBM"));
+ EXPECT_TRUE(media_recorder_handler_->canSupportMimeType(
+ mime_type_video_uppercase, WebString()));
+ const WebString example_good_codecs_1(base::UTF8ToUTF16("vp8"));
+ EXPECT_TRUE(media_recorder_handler_->canSupportMimeType(
+ mime_type_video, example_good_codecs_1));
+ const WebString example_good_codecs_2(base::UTF8ToUTF16("vp9,opus"));
+ EXPECT_TRUE(media_recorder_handler_->canSupportMimeType(
+ mime_type_video, example_good_codecs_2));
+ const WebString example_good_codecs_3(base::UTF8ToUTF16("VP9,opus"));
+ EXPECT_TRUE(media_recorder_handler_->canSupportMimeType(
+ mime_type_video, example_good_codecs_3));
+
+ const WebString example_unsupported_codecs_1(base::UTF8ToUTF16("daala"));
+ EXPECT_FALSE(media_recorder_handler_->canSupportMimeType(
+ mime_type_video, example_unsupported_codecs_1));
+
+ const WebString mime_type_audio(base::UTF8ToUTF16("audio/webm"));
+ EXPECT_TRUE(media_recorder_handler_->canSupportMimeType(
+ mime_type_audio, WebString()));
+ const WebString example_good_codecs_4(base::UTF8ToUTF16("opus"));
+ EXPECT_TRUE(media_recorder_handler_->canSupportMimeType(
+ mime_type_audio, example_good_codecs_4));
+ const WebString example_good_codecs_5(base::UTF8ToUTF16("OpUs"));
+ EXPECT_TRUE(media_recorder_handler_->canSupportMimeType(
+ mime_type_audio, example_good_codecs_5));
+
+ const WebString example_unsupported_codecs_2(base::UTF8ToUTF16("vorbis"));
+ EXPECT_FALSE(media_recorder_handler_->canSupportMimeType(
+ mime_type_audio, example_unsupported_codecs_2));
}
// Checks that the initialization-destruction sequence works fine.
TEST_P(MediaRecorderHandlerTest, InitializeStartStop) {
AddTracks();
const WebString mime_type(base::UTF8ToUTF16(GetParam().mime_type));
+ const WebString codecs(base::UTF8ToUTF16(GetParam().codecs));
EXPECT_TRUE(media_recorder_handler_->initialize(this,
registry_.test_stream(),
- mime_type));
+ mime_type,
+ codecs));
EXPECT_FALSE(recording());
EXPECT_FALSE(hasVideoRecorders());
EXPECT_FALSE(hasAudioRecorders());
@@ -191,8 +213,9 @@ TEST_P(MediaRecorderHandlerTest, EncodeVideoFrames) {
AddTracks();
const WebString mime_type(base::UTF8ToUTF16(GetParam().mime_type));
+ const WebString codecs(base::UTF8ToUTF16(GetParam().codecs));
EXPECT_TRUE(media_recorder_handler_->initialize(this, registry_.test_stream(),
- mime_type));
+ mime_type, codecs));
EXPECT_TRUE(media_recorder_handler_->start());
InSequence s;
@@ -250,9 +273,9 @@ TEST_P(MediaRecorderHandlerTest, EncodeAudioFrames) {
AddTracks();
- const WebString mime_type(base::UTF8ToUTF16("audio/opus"));
+ const WebString mime_type(base::UTF8ToUTF16("audio/webm"));
EXPECT_TRUE(media_recorder_handler_->initialize(this, registry_.test_stream(),
- mime_type));
+ mime_type, WebString()));
EXPECT_TRUE(media_recorder_handler_->start());
InSequence s;
« no previous file with comments | « content/renderer/media/media_recorder_handler.cc ('k') | content/test/data/media/mediarecorder_test.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698