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

Unified Diff: content/browser/webrtc/webrtc_media_recorder_browsertest.cc

Issue 2801803002: Android: enable H264&VP8 HW accelerator for MediaRecorder (Closed)
Patch Set: Created 3 years, 8 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/browser/webrtc/webrtc_media_recorder_browsertest.cc
diff --git a/content/browser/webrtc/webrtc_media_recorder_browsertest.cc b/content/browser/webrtc/webrtc_media_recorder_browsertest.cc
index 7d945a9a38b9c9afa42bc7ad70a74a4017c0b505..45f96ef5ee39196cefe52d2dc88b52774f1a7364 100644
--- a/content/browser/webrtc/webrtc_media_recorder_browsertest.cc
+++ b/content/browser/webrtc/webrtc_media_recorder_browsertest.cc
@@ -53,12 +53,21 @@ class WebRtcMediaRecorderTest
switches::kEnableBlinkFeatures, "GetUserMedia");
}
- void MaybeForceDisableEncodeAccelerator(bool disable) {
+ void MaybeForceDisableEncodeAccelerator(bool disable, std::string mime_type) {
if (!disable)
return;
+
+ bool disable_flag = true;
+#if defined(OS_ANDROID)
+ // There is no SW H264 on Android.
emircan 2017/04/07 17:33:04 // OpenH264 encoder is not supported on Android.
braveyao 2017/04/08 00:56:26 Done.
+ if (mime_type.find("AVC1"))
+ disable_flag = false;
+#endif
+
// This flag is also used for encoding, https://crbug.com/616640.
- base::CommandLine::ForCurrentProcess()->AppendSwitch(
- switches::kDisableAcceleratedVideoDecode);
+ if (disable_flag)
emircan 2017/04/07 17:33:04 How was this test running and passing on android b
braveyao 2017/04/08 00:56:26 Done.
+ base::CommandLine::ForCurrentProcess()->AppendSwitch(
+ switches::kDisableAcceleratedVideoDecode);
}
private:
@@ -74,14 +83,16 @@ IN_PROC_BROWSER_TEST_F(WebRtcMediaRecorderTest, StartAndStop) {
}
IN_PROC_BROWSER_TEST_P(WebRtcMediaRecorderTest, StartAndDataAvailable) {
- MaybeForceDisableEncodeAccelerator(GetParam().disable_accelerator);
+ MaybeForceDisableEncodeAccelerator(GetParam().disable_accelerator,
+ GetParam().mime_type);
MakeTypicalCall(base::StringPrintf("testStartAndDataAvailable(\"%s\");",
GetParam().mime_type.c_str()),
kMediaRecorderHtmlFile);
}
IN_PROC_BROWSER_TEST_P(WebRtcMediaRecorderTest, StartWithTimeSlice) {
- MaybeForceDisableEncodeAccelerator(GetParam().disable_accelerator);
+ MaybeForceDisableEncodeAccelerator(GetParam().disable_accelerator,
+ GetParam().mime_type);
MakeTypicalCall(base::StringPrintf("testStartWithTimeSlice(\"%s\");",
GetParam().mime_type.c_str()),
kMediaRecorderHtmlFile);
@@ -96,7 +107,8 @@ IN_PROC_BROWSER_TEST_F(WebRtcMediaRecorderTest, NoResumeWhenRecorderInactive) {
}
IN_PROC_BROWSER_TEST_P(WebRtcMediaRecorderTest, ResumeAndDataAvailable) {
- MaybeForceDisableEncodeAccelerator(GetParam().disable_accelerator);
+ MaybeForceDisableEncodeAccelerator(GetParam().disable_accelerator,
+ GetParam().mime_type);
MakeTypicalCall(base::StringPrintf("testResumeAndDataAvailable(\"%s\");",
GetParam().mime_type.c_str()),
kMediaRecorderHtmlFile);
@@ -123,9 +135,17 @@ IN_PROC_BROWSER_TEST_F(WebRtcMediaRecorderTest, IllegalPauseThrowsDOMError) {
IN_PROC_BROWSER_TEST_F(WebRtcMediaRecorderTest, TwoChannelAudioRecording) {
MakeTypicalCall("testTwoChannelAudio();", kMediaRecorderHtmlFile);
}
+#if defined(OS_ANDROID)
+// Basically HW codec is preferred on Android, which doesn't support alpha
+// channel. And this test doesn't work on some old platforms.
emircan 2017/04/07 17:33:04 This test only inputs alpha channel video for reco
braveyao 2017/04/08 00:56:26 Emmm you are right. The failure of this case on N5
braveyao 2017/04/14 22:28:28 Done.
+#define MAYBE_RecordWithTransparency DISABLED_RecordWithTransparency
+#else
+#define MAYBE_RecordWithTransparency RecordWithTransparency
+#endif
-IN_PROC_BROWSER_TEST_P(WebRtcMediaRecorderTest, RecordWithTransparency) {
- MaybeForceDisableEncodeAccelerator(GetParam().disable_accelerator);
+IN_PROC_BROWSER_TEST_P(WebRtcMediaRecorderTest, MAYBE_RecordWithTransparency) {
+ MaybeForceDisableEncodeAccelerator(GetParam().disable_accelerator,
+ GetParam().mime_type);
MakeTypicalCall(base::StringPrintf("testRecordWithTransparency(\"%s\");",
GetParam().mime_type.c_str()),
kMediaRecorderHtmlFile);
@@ -168,7 +188,8 @@ IN_PROC_BROWSER_TEST_F(WebRtcMediaRecorderTest,
#endif
IN_PROC_BROWSER_TEST_P(WebRtcMediaRecorderTest, MAYBE_PeerConnection) {
- MaybeForceDisableEncodeAccelerator(GetParam().disable_accelerator);
+ MaybeForceDisableEncodeAccelerator(GetParam().disable_accelerator,
+ GetParam().mime_type);
MakeTypicalCall(base::StringPrintf("testRecordRemotePeerConnection(\"%s\");",
GetParam().mime_type.c_str()),
kMediaRecorderHtmlFile);

Powered by Google App Engine
This is Rietveld 408576698