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); |