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

Unified Diff: content/test/data/media/getusermedia.html

Issue 640253002: Speeding up TwoGetUserMediaAndStop WebRTC test (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 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
« no previous file with comments | « no previous file | content/test/data/media/webrtc_test_utilities.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/test/data/media/getusermedia.html
diff --git a/content/test/data/media/getusermedia.html b/content/test/data/media/getusermedia.html
index f42ce720fd43c84433d85478fd675b7c56903838..280571e021657472f8f7e10bc98bd7f3aa8dcb62 100644
--- a/content/test/data/media/getusermedia.html
+++ b/content/test/data/media/getusermedia.html
@@ -163,37 +163,32 @@
// Creates two MediaStream and renders them locally. When the video of both
// streams are detected to be rolling, we stop the local video tracks one at
- // the time.
+ // the time. In particular, we verify that stopping one track does not stop
+ // the other.
function twoGetUserMediaAndStop(constraints) {
- // TODO(phoglund): make gUM requests in parallel; this test is too slow
- // and flakes on slow bots (http://crbug.com/417756). The current cycle of
- // detect - gum - detect - gum - stop - detect - stop - detect contains too
- // many detection phases. On bots with GPU emulation this looks to be really
- // slow, so I was thinking we could at least get video up for both streams
- // simultaneously and thereby run the first two detects in parallel.
var stream1 = null;
phoglund_chromium 2014/10/09 12:20:07 Unless of course you see a problem with doing the
var stream2 = null;
navigator.webkitGetUserMedia(
constraints,
function(stream) {
stream1 = stream;
- detectVideoInLocalView1(stream, requestSecondGetUserMedia);
+ detectVideoInLocalView1(stream, maybeStopBothVideoTracksAndVerify);
+ },
+ failedCallback);
+ navigator.webkitGetUserMedia(
+ constraints,
+ function(stream) {
+ stream2 = stream;
+ attachMediaStream(stream, 'local-view-2');
+ detectVideoPlaying('local-view-2', maybeStopBothVideoTracksAndVerify);
},
failedCallback);
- var requestSecondGetUserMedia = function() {
- navigator.webkitGetUserMedia(
- constraints,
- function(stream) {
- stream2 = stream;
- attachMediaStream(stream, 'local-view-2');
- detectVideoPlaying('local-view-2', stopBothVideoTracksAndVerify);
- },
- failedCallback);
- };
- var stopBothVideoTracksAndVerify = function() {
- // Stop track 2, ensure that stops track 2 but not track 1, then stop
- // track 1.
+ var maybeStopBothVideoTracksAndVerify = function() {
+ if (stream1 == null || stream2 == null)
+ return;
+
+ // Stop track 2, ensure track 2 stops but not track 1, then stop track 1.
stream2.getVideoTracks()[0].stop();
waitForVideoToStop('local-view-1');
waitForVideoToStop('local-view-2');
@@ -203,35 +198,41 @@
};
}
- function twoGetUserMedia(constraints1,
- constraints2) {
- // TODO(phoglund): see TODO on twoGetUserMediaAndStop.
- var result="";
+ // Makes to getUserMedia calls in parallel and detects the aspect ratio for
+ // both. The two aspect ratios are returned to the test separated by a dash,
+ // like for instance w=640:h=480-w=640:h=480.
+ function twoGetUserMedia(constraints1, constraints2) {
+ var aspectRatio1 = null;
+ var aspectRatio2 = null;
navigator.webkitGetUserMedia(
constraints1,
function(stream) {
displayDetectAndAnalyzeVideoInElement(
stream,
function(aspectRatio) {
- result = aspectRatio;
- requestSecondGetUserMedia();
+ aspectRatio1 = aspectRatio;
+ maybeFinishTest();
},
'local-view-1');
},
failedCallback);
- var requestSecondGetUserMedia = function() {
- navigator.webkitGetUserMedia(
- constraints2,
- function(stream) {
- displayDetectAndAnalyzeVideoInElement(
- stream,
- function(aspectRatio) {
- result = result + '-' + aspectRatio;
- sendValueToTest(result);
- },
- 'local-view-2');
- },
- failedCallback);
+ navigator.webkitGetUserMedia(
+ constraints2,
+ function(stream) {
+ displayDetectAndAnalyzeVideoInElement(
+ stream,
+ function(aspectRatio) {
+ aspectRatio2 = aspectRatio;
+ maybeFinishTest();
+ },
+ 'local-view-2');
+ },
+ failedCallback);
+
+ var maybeFinishTest = function() {
+ if (aspectRatio1 == null || aspectRatio2 == null)
+ return;
+ sendValueToTest(aspectRatio1 + '-' + aspectRatio2);
}
}
@@ -241,19 +242,17 @@
constraints2,
expected_frame_rate1,
expected_frame_rate2) {
- // TODO(phoglund): see TODO on twoGetUserMediaAndStop.
addExpectedEvent();
addExpectedEvent();
- var validateFrameRateCallback = function (success) {
- if (!success)
- failTest("Failed to validate frameRate.");
+ var validateFrameRateCallback = function (result) {
+ if (result != 'OK')
+ failTest(result);
phoglund_chromium 2014/10/09 12:20:07 I've been annoyed by this rather bare error messag
eventOccured();
};
navigator.webkitGetUserMedia(
constraints1,
function(stream) {
- requestSecondGetUserMedia();
attachMediaStream(stream, 'local-view-1');
detectVideoPlaying('local-view-1',
function() {
@@ -262,19 +261,17 @@
});
},
failedCallback);
- var requestSecondGetUserMedia = function() {
- navigator.webkitGetUserMedia(
- constraints2,
- function(stream) {
- attachMediaStream(stream, 'local-view-2');
- detectVideoPlaying('local-view-2',
- function() {
- validateFrameRate('local-view-2', expected_frame_rate2,
- validateFrameRateCallback);
- });
- },
- failedCallback);
- }
+ navigator.webkitGetUserMedia(
+ constraints2,
+ function(stream) {
+ attachMediaStream(stream, 'local-view-2');
+ detectVideoPlaying('local-view-2',
+ function() {
+ validateFrameRate('local-view-2', expected_frame_rate2,
+ validateFrameRateCallback);
+ });
+ },
+ failedCallback);
}
function failedCallback(error) {
« no previous file with comments | « no previous file | content/test/data/media/webrtc_test_utilities.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698