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

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

Issue 883293005: Cast: Basic cast_receiver API for chrome. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: removed extra BUILD.gn line Created 5 years, 10 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 e03d440906d21fc26f969a89bcbbbaadcb1e9d73..b414f7a6eeb7cf9dd736a09cb54b99a8e61bed78 100644
--- a/content/renderer/media/media_stream_video_capturer_source.cc
+++ b/content/renderer/media/media_stream_video_capturer_source.cc
@@ -105,6 +105,7 @@ void VideoCapturerDelegate::GetCurrentSupportedFormats(
void VideoCapturerDelegate::StartCapture(
const media::VideoCaptureParams& params,
const VideoCaptureDeliverFrameCB& new_frame_callback,
+ scoped_refptr<base::SingleThreadTaskRunner> frame_callback_task_runner,
const RunningCallback& running_callback) {
DCHECK(params.requested_format.IsValid());
DCHECK(thread_checker_.CalledOnValidThread());
@@ -117,6 +118,13 @@ void VideoCapturerDelegate::StartCapture(
RenderThreadImpl::current()->video_capture_impl_manager();
if (!manager)
return;
+ if (frame_callback_task_runner !=
+ RenderThreadImpl::current()->GetIOMessageLoopProxy()) {
+ DCHECK(false) << "Only IO thread supported right now.";
+ running_callback.Run(false);
+ return;
+ }
+
stop_capture_cb_ =
manager->StartCapture(
session_id_,
@@ -143,12 +151,11 @@ void VideoCapturerDelegate::OnStateUpdateOnRenderThread(
DCHECK(thread_checker_.CalledOnValidThread());
DVLOG(3) << "OnStateUpdateOnRenderThread state = " << state;
if (state == VIDEO_CAPTURE_STATE_STARTED && !running_callback_.is_null()) {
- running_callback_.Run(MEDIA_DEVICE_OK);
+ running_callback_.Run(true);
return;
}
if (state > VIDEO_CAPTURE_STATE_STARTED && !running_callback_.is_null()) {
- base::ResetAndReturn(&running_callback_).Run(
- MEDIA_DEVICE_TRACK_START_FAILURE);
+ base::ResetAndReturn(&running_callback_).Run(false);
}
}
@@ -211,14 +218,17 @@ void VideoCapturerDelegate::OnDeviceSupportedFormatsEnumerated(
}
MediaStreamVideoCapturerSource::MediaStreamVideoCapturerSource(
- const StreamDeviceInfo& device_info,
const SourceStoppedCallback& stop_callback,
- scoped_ptr<VideoCapturerDelegate> delegate)
+ scoped_ptr<media::VideoCapturerSource> delegate)
: delegate_(delegate.Pass()) {
- SetDeviceInfo(device_info);
SetStopCallback(stop_callback);
}
+void MediaStreamVideoCapturerSource::SetDeviceInfo(
+ const StreamDeviceInfo& device_info) {
+ MediaStreamVideoSource::SetDeviceInfo(device_info);
+}
+
MediaStreamVideoCapturerSource::~MediaStreamVideoCapturerSource() {
}
@@ -247,10 +257,17 @@ void MediaStreamVideoCapturerSource::StartSourceImpl(
delegate_->StartCapture(
new_params,
frame_callback,
- base::Bind(&MediaStreamVideoCapturerSource::OnStartDone,
+ RenderThreadImpl::current() ?
+ RenderThreadImpl::current()->GetIOMessageLoopProxy() :
+ nullptr,
+ base::Bind(&MediaStreamVideoCapturerSource::OnStarted,
base::Unretained(this)));
}
+void MediaStreamVideoCapturerSource::OnStarted(bool result) {
+ OnStartDone(result ? MEDIA_DEVICE_OK : MEDIA_DEVICE_TRACK_START_FAILURE);
+}
+
void MediaStreamVideoCapturerSource::StopSourceImpl() {
delegate_->StopCapture();
}
« no previous file with comments | « content/renderer/media/media_stream_video_capturer_source.h ('k') | content/renderer/media/media_stream_video_source.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698