Index: content/renderer/media/media_recorder_handler.cc |
diff --git a/content/renderer/media/media_recorder_handler.cc b/content/renderer/media/media_recorder_handler.cc |
index 2944013d3a50abb1f91a641ae9f62be14c338e4a..713d709c6137870d054858edbe1cbaf0daff765c 100644 |
--- a/content/renderer/media/media_recorder_handler.cc |
+++ b/content/renderer/media/media_recorder_handler.cc |
@@ -82,7 +82,7 @@ bool MediaRecorderHandler::canSupportMimeType( |
bool MediaRecorderHandler::initialize( |
blink::WebMediaRecorderHandlerClient* client, |
- const blink::WebMediaStream& media_stream, |
+ const blink::WebMediaStream& web_media_stream, |
const blink::WebString& type, |
const blink::WebString& codecs) { |
DCHECK(main_render_thread_checker_.CalledOnValidThread()); |
@@ -96,10 +96,12 @@ bool MediaRecorderHandler::initialize( |
return false; |
} |
use_vp9_ = base::ToLowerASCII(codecs.utf8()).find("vp9") != std::string::npos; |
- media_stream_ = media_stream; |
DCHECK(client); |
client_ = client; |
+ web_media_stream_ = web_media_stream; |
+ MediaStream::GetMediaStream(web_media_stream)->AddObserver(this); |
+ |
return true; |
} |
@@ -112,7 +114,7 @@ bool MediaRecorderHandler::start() { |
bool MediaRecorderHandler::start(int timeslice) { |
DCHECK(main_render_thread_checker_.CalledOnValidThread()); |
DCHECK(!recording_); |
- DCHECK(!media_stream_.isNull()); |
+ DCHECK(!web_media_stream_.isNull()); |
DCHECK(timeslice_.is_zero()); |
DCHECK(!webm_muxer_); |
@@ -120,8 +122,8 @@ bool MediaRecorderHandler::start(int timeslice) { |
slice_origin_timestamp_ = TimeTicks::Now(); |
blink::WebVector<blink::WebMediaStreamTrack> video_tracks, audio_tracks; |
- media_stream_.videoTracks(video_tracks); |
- media_stream_.audioTracks(audio_tracks); |
+ web_media_stream_.videoTracks(video_tracks); |
+ web_media_stream_.audioTracks(audio_tracks); |
if (video_tracks.isEmpty() && audio_tracks.isEmpty()) { |
LOG(WARNING) << __FUNCTION__ << ": no media tracks."; |
@@ -205,6 +207,15 @@ void MediaRecorderHandler::resume() { |
video_recorder->Resume(); |
} |
+void MediaRecorderHandler::TrackAdded(const blink::WebMediaStreamTrack& track) { |
+ client_->onError("Track added"); |
+} |
+ |
+void MediaRecorderHandler::TrackRemoved( |
+ const blink::WebMediaStreamTrack& track) { |
+ client_->onError("Track removed"); |
+} |
+ |
void MediaRecorderHandler::OnEncodedVideo( |
const scoped_refptr<media::VideoFrame>& video_frame, |
scoped_ptr<std::string> encoded_data, |