summaryrefslogtreecommitdiffstats
path: root/content/renderer
diff options
context:
space:
mode:
authormcasas <mcasas@chromium.org>2016-03-22 15:00:44 -0700
committerCommit bot <commit-bot@chromium.org>2016-03-22 22:03:33 +0000
commit2181b9dfb8af9622a2a87afda9bbc10717721f0b (patch)
tree6b4724d8b45ded80542ee125a0e6ee2651ed18b0 /content/renderer
parent6ce80494acfd8abf6f1164891cd8ff9487071304 (diff)
downloadchromium_src-2181b9dfb8af9622a2a87afda9bbc10717721f0b.zip
chromium_src-2181b9dfb8af9622a2a87afda9bbc10717721f0b.tar.gz
chromium_src-2181b9dfb8af9622a2a87afda9bbc10717721f0b.tar.bz2
MediaStreamTrack: don't wait to record MediaStreamTrack's whose state is not 'live'
A MSTrack on which stop() has been called has state 'ended'. With this CL MR avoids waiting for those Tracks. BUG=596178 TEST= See bug #1: Steps to reproduce: 1- Go to https://cdn.rawgit.com/cricdecyan/mediarecorder/master/manualtest/index.html (note: needs either --enable-blink-features=GetUserMedia flag or chrome://flags -> Experimental Web Platform features enabled) 2- Click on GetUserMedia 3- Click on StopLocalAudioTracks to disable all audio tracks. 4- Click on CreateRecorder 5- Click on Start Review URL: https://codereview.chromium.org/1824933005 Cr-Commit-Position: refs/heads/master@{#382697}
Diffstat (limited to 'content/renderer')
-rw-r--r--content/renderer/media/media_recorder_handler.cc15
1 files changed, 10 insertions, 5 deletions
diff --git a/content/renderer/media/media_recorder_handler.cc b/content/renderer/media/media_recorder_handler.cc
index be5252c..a6e641c 100644
--- a/content/renderer/media/media_recorder_handler.cc
+++ b/content/renderer/media/media_recorder_handler.cc
@@ -24,6 +24,7 @@
#include "media/base/video_frame.h"
#include "media/muxers/webm_muxer.h"
#include "third_party/WebKit/public/platform/WebMediaRecorderHandlerClient.h"
+#include "third_party/WebKit/public/platform/WebMediaStreamSource.h"
#include "third_party/WebKit/public/platform/WebString.h"
using base::TimeDelta;
@@ -134,11 +135,15 @@ bool MediaRecorderHandler::start(int timeslice) {
return false;
}
- const bool use_video_tracks =
- !video_tracks.isEmpty() && video_tracks[0].isEnabled();
- const bool use_audio_tracks =
- !audio_tracks.isEmpty() && MediaStreamAudioTrack::From(audio_tracks[0])
- && audio_tracks[0].isEnabled();
+ const bool use_video_tracks = !video_tracks.isEmpty() &&
+ video_tracks[0].isEnabled() &&
+ video_tracks[0].source().getReadyState() ==
+ blink::WebMediaStreamSource::ReadyStateLive;
+ const bool use_audio_tracks = !audio_tracks.isEmpty() &&
+ MediaStreamAudioTrack::From(audio_tracks[0]) &&
+ audio_tracks[0].isEnabled() &&
+ audio_tracks[0].source().getReadyState() ==
+ blink::WebMediaStreamSource::ReadyStateLive;
webm_muxer_.reset(new media::WebmMuxer(
use_vp9_ ? media::kCodecVP9 : media::kCodecVP8, use_video_tracks,