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

Unified Diff: content/renderer/media/media_stream_video_capturer_source.cc

Issue 2432373003: Follow up: stop mirroring session when tab is closed. (Closed)
Patch Set: Fix unittests. Created 4 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
Index: content/renderer/media/media_stream_video_capturer_source.cc
diff --git a/content/renderer/media/media_stream_video_capturer_source.cc b/content/renderer/media/media_stream_video_capturer_source.cc
index d69c6be975414aa4e3c46bf7b87808aabec972c9..8db2c355e4d5b9ac647cb1c0abe2543f66350e24 100644
--- a/content/renderer/media/media_stream_video_capturer_source.cc
+++ b/content/renderer/media/media_stream_video_capturer_source.cc
@@ -366,7 +366,7 @@ void LocalVideoCapturerSource::OnStateUpdate(VideoCaptureState state) {
case VIDEO_CAPTURE_STATE_PAUSED:
case VIDEO_CAPTURE_STATE_RESUMED:
- // Not applicable to reporting on device start success/failure.
+ // Not applicable to reporting on device starts or errors.
break;
}
}
@@ -481,18 +481,25 @@ void MediaStreamVideoCapturerSource::StartSourceImpl(
SetPowerLineFrequencyParamFromConstraints(constraints, &new_params);
}
- source_->StartCapture(new_params,
- frame_callback,
- base::Bind(&MediaStreamVideoCapturerSource::OnStarted,
- base::Unretained(this)));
+ is_capture_starting_ = true;
+ source_->StartCapture(
+ new_params, frame_callback,
+ base::Bind(&MediaStreamVideoCapturerSource::OnRunStateChanged,
+ base::Unretained(this)));
}
void MediaStreamVideoCapturerSource::StopSourceImpl() {
source_->StopCapture();
}
-void MediaStreamVideoCapturerSource::OnStarted(bool result) {
- OnStartDone(result ? MEDIA_DEVICE_OK : MEDIA_DEVICE_TRACK_START_FAILURE);
+void MediaStreamVideoCapturerSource::OnRunStateChanged(bool is_running) {
+ if (is_capture_starting_) {
+ OnStartDone(is_running ? MEDIA_DEVICE_OK
+ : MEDIA_DEVICE_TRACK_START_FAILURE);
+ is_capture_starting_ = false;
+ } else if (!is_running) {
+ StopSource();
+ }
}
const char*

Powered by Google App Engine
This is Rietveld 408576698