Commit a3d98f68 authored by Chris Mumford's avatar Chris Mumford Committed by Commit Bot

ConvertToBaseCallback to ConvertToBaseRepeatingCallback.

There are two CrossThreadFunction implementations, one that accepts
a base::OnceCallback, and another that accepts a base::Callback
(which is implicitly repeating). This change switches to explicitly
using base::RepeatingCallback to eliminate the use of base::Callback.

Also, renaming ConvertToBaseCallback to ConvertToBaseRepeatingCallback
for symmetry with CrossThreadBindRepeating and base::RepeatingCallback.

Bug: 1007835
Change-Id: I0b0a231bf74259194a78af9870960dbba0cc1f49
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1919941
Commit-Queue: Chris Mumford <cmumford@google.com>
Reviewed-by: default avatarGuido Urdaneta <guidou@chromium.org>
Reviewed-by: default avatarMike West <mkwst@chromium.org>
Cr-Commit-Position: refs/heads/master@{#720574}
parent 33202a51
...@@ -60,7 +60,7 @@ class BLINK_PLATFORM_EXPORT InterfaceRegistry { ...@@ -60,7 +60,7 @@ class BLINK_PLATFORM_EXPORT InterfaceRegistry {
void(mojo::PendingReceiver<Interface>)> factory, void(mojo::PendingReceiver<Interface>)> factory,
scoped_refptr<base::SingleThreadTaskRunner> task_runner) { scoped_refptr<base::SingleThreadTaskRunner> task_runner) {
AddInterface(Interface::Name_, AddInterface(Interface::Name_,
ConvertToBaseCallback(CrossThreadBind( ConvertToBaseRepeatingCallback(CrossThreadBind(
&InterfaceRegistry::ForwardToCrossThreadInterfaceFactory< &InterfaceRegistry::ForwardToCrossThreadInterfaceFactory<
mojo::PendingReceiver<Interface>>, mojo::PendingReceiver<Interface>>,
std::move(factory))), std::move(factory))),
......
...@@ -172,16 +172,16 @@ void BlinkInitializer::RegisterInterfaces(mojo::BinderMap& binders) { ...@@ -172,16 +172,16 @@ void BlinkInitializer::RegisterInterfaces(mojo::BinderMap& binders) {
return; return;
#if defined(OS_ANDROID) #if defined(OS_ANDROID)
binders.Add(ConvertToBaseCallback( binders.Add(ConvertToBaseRepeatingCallback(
CrossThreadBindRepeating(&OomInterventionImpl::Create)), CrossThreadBindRepeating(&OomInterventionImpl::Create)),
main_thread->GetTaskRunner()); main_thread->GetTaskRunner());
binders.Add(ConvertToBaseCallback(CrossThreadBindRepeating( binders.Add(ConvertToBaseRepeatingCallback(CrossThreadBindRepeating(
&CrashMemoryMetricsReporterImpl::Bind)), &CrashMemoryMetricsReporterImpl::Bind)),
main_thread->GetTaskRunner()); main_thread->GetTaskRunner());
#endif #endif
binders.Add(ConvertToBaseCallback( binders.Add(ConvertToBaseRepeatingCallback(
CrossThreadBindRepeating(&BlinkLeakDetector::Create)), CrossThreadBindRepeating(&BlinkLeakDetector::Create)),
main_thread->GetTaskRunner()); main_thread->GetTaskRunner());
} }
......
...@@ -96,8 +96,9 @@ void ImageCaptureFrameGrabber::SingleShotFrameHandler::OnVideoFrameOnIOThread( ...@@ -96,8 +96,9 @@ void ImageCaptureFrameGrabber::SingleShotFrameHandler::OnVideoFrameOnIOThread(
sk_sp<SkSurface> surface = SkSurface::MakeRaster(info); sk_sp<SkSurface> surface = SkSurface::MakeRaster(info);
DCHECK(surface); DCHECK(surface);
auto wrapper_callback = media::BindToLoop( auto wrapper_callback =
std::move(task_runner), ConvertToBaseCallback(std::move(callback))); media::BindToLoop(std::move(task_runner),
ConvertToBaseRepeatingCallback(std::move(callback)));
SkPixmap pixmap; SkPixmap pixmap;
if (!skia::GetWritablePixels(surface->getCanvas(), &pixmap)) { if (!skia::GetWritablePixels(surface->getCanvas(), &pixmap)) {
...@@ -210,7 +211,7 @@ void ImageCaptureFrameGrabber::GrabFrame( ...@@ -210,7 +211,7 @@ void ImageCaptureFrameGrabber::GrabFrame(
frame_grab_in_progress_ = true; frame_grab_in_progress_ = true;
MediaStreamVideoSink::ConnectToTrack( MediaStreamVideoSink::ConnectToTrack(
*track, *track,
ConvertToBaseCallback(CrossThreadBindRepeating( ConvertToBaseRepeatingCallback(CrossThreadBindRepeating(
&SingleShotFrameHandler::OnVideoFrameOnIOThread, &SingleShotFrameHandler::OnVideoFrameOnIOThread,
base::MakeRefCounted<SingleShotFrameHandler>(), base::MakeRefCounted<SingleShotFrameHandler>(),
WTF::Passed(CrossThreadBindRepeating( WTF::Passed(CrossThreadBindRepeating(
......
...@@ -61,7 +61,7 @@ void HtmlAudioElementCapturerSource::SetAudioCallback() { ...@@ -61,7 +61,7 @@ void HtmlAudioElementCapturerSource::SetAudioCallback() {
if (audio_source_ && is_started_) { if (audio_source_ && is_started_) {
// WTF::Unretained() is safe here since EnsureSourceIsStopped() guarantees // WTF::Unretained() is safe here since EnsureSourceIsStopped() guarantees
// no more calls to OnAudioBus(). // no more calls to OnAudioBus().
audio_source_->SetCopyAudioCallback(ConvertToBaseCallback( audio_source_->SetCopyAudioCallback(ConvertToBaseRepeatingCallback(
CrossThreadBindRepeating(&HtmlAudioElementCapturerSource::OnAudioBus, CrossThreadBindRepeating(&HtmlAudioElementCapturerSource::OnAudioBus,
CrossThreadUnretained(this)))); CrossThreadUnretained(this))));
} }
......
...@@ -581,7 +581,7 @@ void VideoTrackRecorder::InitializeEncoder( ...@@ -581,7 +581,7 @@ void VideoTrackRecorder::InitializeEncoder(
encoder_->SetPaused(should_pause_encoder_on_initialization_); encoder_->SetPaused(should_pause_encoder_on_initialization_);
// StartFrameEncode() will be called on Render IO thread. // StartFrameEncode() will be called on Render IO thread.
ConnectToTrack(ConvertToBaseCallback(CrossThreadBindRepeating( ConnectToTrack(ConvertToBaseRepeatingCallback(CrossThreadBindRepeating(
&VideoTrackRecorder::Encoder::StartFrameEncode, encoder_))); &VideoTrackRecorder::Encoder::StartFrameEncode, encoder_)));
} }
......
...@@ -96,7 +96,7 @@ class VideoTrackRecorderTest ...@@ -96,7 +96,7 @@ class VideoTrackRecorderTest
void InitializeRecorder(VideoTrackRecorder::CodecId codec) { void InitializeRecorder(VideoTrackRecorder::CodecId codec) {
video_track_recorder_ = MakeGarbageCollected<VideoTrackRecorder>( video_track_recorder_ = MakeGarbageCollected<VideoTrackRecorder>(
codec, blink_track_, codec, blink_track_,
ConvertToBaseCallback( ConvertToBaseRepeatingCallback(
CrossThreadBindRepeating(&VideoTrackRecorderTest::OnEncodedVideo, CrossThreadBindRepeating(&VideoTrackRecorderTest::OnEncodedVideo,
CrossThreadUnretained(this))), CrossThreadUnretained(this))),
0 /* bits_per_second */, 0 /* bits_per_second */,
......
...@@ -78,7 +78,7 @@ class FakeMediaStreamVideoSink : public MediaStreamVideoSink { ...@@ -78,7 +78,7 @@ class FakeMediaStreamVideoSink : public MediaStreamVideoSink {
void ConnectToTrack(const WebMediaStreamTrack& track) { void ConnectToTrack(const WebMediaStreamTrack& track) {
MediaStreamVideoSink::ConnectToTrack( MediaStreamVideoSink::ConnectToTrack(
track, track,
ConvertToBaseCallback( ConvertToBaseRepeatingCallback(
CrossThreadBindRepeating(&FakeMediaStreamVideoSink::OnVideoFrame, CrossThreadBindRepeating(&FakeMediaStreamVideoSink::OnVideoFrame,
WTF::CrossThreadUnretained(this))), WTF::CrossThreadUnretained(this))),
true); true);
......
...@@ -161,7 +161,7 @@ void MediaStreamVideoRendererSink::Start() { ...@@ -161,7 +161,7 @@ void MediaStreamVideoRendererSink::Start() {
// This callback is run on IO thread. It is safe to use base::Unretained // This callback is run on IO thread. It is safe to use base::Unretained
// here because |frame_receiver_| will be destroyed on IO thread after // here because |frame_receiver_| will be destroyed on IO thread after
// sink is disconnected from track. // sink is disconnected from track.
ConvertToBaseCallback(WTF::CrossThreadBindRepeating( ConvertToBaseRepeatingCallback(WTF::CrossThreadBindRepeating(
&FrameDeliverer::OnVideoFrame, &FrameDeliverer::OnVideoFrame,
WTF::CrossThreadUnretained(frame_deliverer_.get()))), WTF::CrossThreadUnretained(frame_deliverer_.get()))),
// Local display video rendering is considered a secure link. // Local display video rendering is considered a secure link.
......
...@@ -68,9 +68,9 @@ void MediaStreamVideoSource::AddTrack( ...@@ -68,9 +68,9 @@ void MediaStreamVideoSource::AddTrack(
case NEW: { case NEW: {
state_ = STARTING; state_ = STARTING;
StartSourceImpl( StartSourceImpl(
ConvertToBaseCallback(CrossThreadBindRepeating( ConvertToBaseRepeatingCallback(CrossThreadBindRepeating(
&VideoTrackAdapter::DeliverFrameOnIO, track_adapter_)), &VideoTrackAdapter::DeliverFrameOnIO, track_adapter_)),
ConvertToBaseCallback(CrossThreadBindRepeating( ConvertToBaseRepeatingCallback(CrossThreadBindRepeating(
&VideoTrackAdapter::DeliverEncodedVideoFrameOnIO, &VideoTrackAdapter::DeliverEncodedVideoFrameOnIO,
track_adapter_))); track_adapter_)));
break; break;
......
...@@ -402,10 +402,10 @@ MediaStreamVideoTrack::MediaStreamVideoTrack( ...@@ -402,10 +402,10 @@ MediaStreamVideoTrack::MediaStreamVideoTrack(
source->io_task_runner(), weak_factory_.GetWeakPtr(), enabled); source->io_task_runner(), weak_factory_.GetWeakPtr(), enabled);
source->AddTrack( source->AddTrack(
this, VideoTrackAdapterSettings(), this, VideoTrackAdapterSettings(),
ConvertToBaseCallback(CrossThreadBindRepeating( ConvertToBaseRepeatingCallback(CrossThreadBindRepeating(
&MediaStreamVideoTrack::FrameDeliverer::DeliverFrameOnIO, &MediaStreamVideoTrack::FrameDeliverer::DeliverFrameOnIO,
frame_deliverer_)), frame_deliverer_)),
ConvertToBaseCallback(CrossThreadBindRepeating( ConvertToBaseRepeatingCallback(CrossThreadBindRepeating(
&MediaStreamVideoTrack::FrameDeliverer::DeliverEncodedVideoFrameOnIO, &MediaStreamVideoTrack::FrameDeliverer::DeliverEncodedVideoFrameOnIO,
frame_deliverer_)), frame_deliverer_)),
media::BindToCurrentLoop(WTF::BindRepeating( media::BindToCurrentLoop(WTF::BindRepeating(
...@@ -437,10 +437,10 @@ MediaStreamVideoTrack::MediaStreamVideoTrack( ...@@ -437,10 +437,10 @@ MediaStreamVideoTrack::MediaStreamVideoTrack(
source->io_task_runner(), weak_factory_.GetWeakPtr(), enabled); source->io_task_runner(), weak_factory_.GetWeakPtr(), enabled);
source->AddTrack( source->AddTrack(
this, adapter_settings, this, adapter_settings,
ConvertToBaseCallback(CrossThreadBindRepeating( ConvertToBaseRepeatingCallback(CrossThreadBindRepeating(
&MediaStreamVideoTrack::FrameDeliverer::DeliverFrameOnIO, &MediaStreamVideoTrack::FrameDeliverer::DeliverFrameOnIO,
frame_deliverer_)), frame_deliverer_)),
ConvertToBaseCallback(CrossThreadBindRepeating( ConvertToBaseRepeatingCallback(CrossThreadBindRepeating(
&MediaStreamVideoTrack::FrameDeliverer::DeliverEncodedVideoFrameOnIO, &MediaStreamVideoTrack::FrameDeliverer::DeliverEncodedVideoFrameOnIO,
frame_deliverer_)), frame_deliverer_)),
media::BindToCurrentLoop(WTF::BindRepeating( media::BindToCurrentLoop(WTF::BindRepeating(
......
...@@ -1148,7 +1148,7 @@ blink::WebMediaStreamSource UserMediaProcessor::InitializeAudioSourceObject( ...@@ -1148,7 +1148,7 @@ blink::WebMediaStreamSource UserMediaProcessor::InitializeAudioSourceObject(
pending_local_sources_.push_back(source); pending_local_sources_.push_back(source);
blink::WebPlatformMediaStreamSource::ConstraintsRepeatingCallback blink::WebPlatformMediaStreamSource::ConstraintsRepeatingCallback
source_ready = ConvertToBaseCallback(CrossThreadBindRepeating( source_ready = ConvertToBaseRepeatingCallback(CrossThreadBindRepeating(
&UserMediaProcessor::OnAudioSourceStartedOnAudioThread, task_runner_, &UserMediaProcessor::OnAudioSourceStartedOnAudioThread, task_runner_,
WrapCrossThreadWeakPersistent(this))); WrapCrossThreadWeakPersistent(this)));
......
...@@ -361,7 +361,7 @@ WebMediaPlayer::LoadTiming WebMediaPlayerMS::Load( ...@@ -361,7 +361,7 @@ WebMediaPlayer::LoadTiming WebMediaPlayerMS::Load(
media_task_runner_, worker_task_runner_, gpu_factories_)); media_task_runner_, worker_task_runner_, gpu_factories_));
video_frame_provider_ = renderer_factory_->GetVideoRenderer( video_frame_provider_ = renderer_factory_->GetVideoRenderer(
web_stream_, web_stream_,
ConvertToBaseCallback(frame_deliverer_->GetRepaintCallback()), ConvertToBaseRepeatingCallback(frame_deliverer_->GetRepaintCallback()),
io_task_runner_, main_render_task_runner_); io_task_runner_, main_render_task_runner_);
if (internal_frame_->web_frame()) { if (internal_frame_->web_frame()) {
...@@ -519,7 +519,8 @@ void WebMediaPlayerMS::ReloadVideo() { ...@@ -519,7 +519,8 @@ void WebMediaPlayerMS::ReloadVideo() {
SetNetworkState(kNetworkStateLoading); SetNetworkState(kNetworkStateLoading);
video_frame_provider_ = renderer_factory_->GetVideoRenderer( video_frame_provider_ = renderer_factory_->GetVideoRenderer(
web_stream_, web_stream_,
ConvertToBaseCallback(frame_deliverer_->GetRepaintCallback()), ConvertToBaseRepeatingCallback(
frame_deliverer_->GetRepaintCallback()),
io_task_runner_, main_render_task_runner_); io_task_runner_, main_render_task_runner_);
DCHECK(video_frame_provider_); DCHECK(video_frame_provider_);
video_frame_provider_->Start(); video_frame_provider_->Start();
......
...@@ -160,11 +160,11 @@ WebMediaPlayerMSCompositor::WebMediaPlayerMSCompositor( ...@@ -160,11 +160,11 @@ WebMediaPlayerMSCompositor::WebMediaPlayerMSCompositor(
*video_frame_compositor_task_runner_, FROM_HERE, *video_frame_compositor_task_runner_, FROM_HERE,
CrossThreadBindOnce(&WebMediaPlayerMSCompositor::InitializeSubmitter, CrossThreadBindOnce(&WebMediaPlayerMSCompositor::InitializeSubmitter,
weak_ptr_factory_.GetWeakPtr())); weak_ptr_factory_.GetWeakPtr()));
update_submission_state_callback_ = update_submission_state_callback_ = media::BindToLoop(
media::BindToLoop(video_frame_compositor_task_runner_, video_frame_compositor_task_runner_,
ConvertToBaseCallback(CrossThreadBindRepeating( ConvertToBaseRepeatingCallback(CrossThreadBindRepeating(
&WebMediaPlayerMSCompositor::SetIsSurfaceVisible, &WebMediaPlayerMSCompositor::SetIsSurfaceVisible,
weak_ptr_factory_.GetWeakPtr()))); weak_ptr_factory_.GetWeakPtr())));
} }
WebVector<WebMediaStreamTrack> video_tracks; WebVector<WebMediaStreamTrack> video_tracks;
...@@ -177,7 +177,7 @@ WebMediaPlayerMSCompositor::WebMediaPlayerMSCompositor( ...@@ -177,7 +177,7 @@ WebMediaPlayerMSCompositor::WebMediaPlayerMSCompositor(
if (remote_video && Platform::Current()->RTCSmoothnessAlgorithmEnabled()) { if (remote_video && Platform::Current()->RTCSmoothnessAlgorithmEnabled()) {
base::AutoLock auto_lock(current_frame_lock_); base::AutoLock auto_lock(current_frame_lock_);
rendering_frame_buffer_.reset(new media::VideoRendererAlgorithm( rendering_frame_buffer_.reset(new media::VideoRendererAlgorithm(
ConvertToBaseCallback(CrossThreadBindRepeating( ConvertToBaseRepeatingCallback(CrossThreadBindRepeating(
&WebMediaPlayerMSCompositor::MapTimestampsToRenderTimeTicks, &WebMediaPlayerMSCompositor::MapTimestampsToRenderTimeTicks,
CrossThreadUnretained(this))), CrossThreadUnretained(this))),
&media_log_)); &media_log_));
......
...@@ -314,11 +314,11 @@ void ModulesInitializer::DidChangeManifest(LocalFrame& frame) { ...@@ -314,11 +314,11 @@ void ModulesInitializer::DidChangeManifest(LocalFrame& frame) {
void ModulesInitializer::RegisterInterfaces(mojo::BinderMap& binders) { void ModulesInitializer::RegisterInterfaces(mojo::BinderMap& binders) {
DCHECK(Platform::Current()); DCHECK(Platform::Current());
binders.Add(ConvertToBaseRepeatingCallback(
CrossThreadBindRepeating(&WebDatabaseImpl::Create)),
Platform::Current()->GetIOTaskRunner());
binders.Add( binders.Add(
ConvertToBaseCallback(CrossThreadBindRepeating(&WebDatabaseImpl::Create)), ConvertToBaseRepeatingCallback(CrossThreadBindRepeating(
Platform::Current()->GetIOTaskRunner());
binders.Add(
ConvertToBaseCallback(CrossThreadBindRepeating(
&PeerConnectionTracker::Bind, &PeerConnectionTracker::Bind,
WTF::CrossThreadUnretained(PeerConnectionTracker::GetInstance()))), WTF::CrossThreadUnretained(PeerConnectionTracker::GetInstance()))),
Thread::MainThread()->GetTaskRunner()); Thread::MainThread()->GetTaskRunner());
......
...@@ -464,7 +464,7 @@ int WebRtcAudioRenderer::Render(base::TimeDelta delay, ...@@ -464,7 +464,7 @@ int WebRtcAudioRenderer::Render(base::TimeDelta delay,
if (!audio_fifo_ && prior_frames_skipped != source_frames_per_buffer) { if (!audio_fifo_ && prior_frames_skipped != source_frames_per_buffer) {
audio_fifo_ = std::make_unique<media::AudioPullFifo>( audio_fifo_ = std::make_unique<media::AudioPullFifo>(
sink_params_.channels(), source_frames_per_buffer, sink_params_.channels(), source_frames_per_buffer,
ConvertToBaseCallback( ConvertToBaseRepeatingCallback(
CrossThreadBindRepeating(&WebRtcAudioRenderer::SourceCallback, CrossThreadBindRepeating(&WebRtcAudioRenderer::SourceCallback,
CrossThreadUnretained(this)))); CrossThreadUnretained(this))));
} }
...@@ -738,7 +738,7 @@ void WebRtcAudioRenderer::PrepareSink() { ...@@ -738,7 +738,7 @@ void WebRtcAudioRenderer::PrepareSink() {
audio_fifo_->SizeInFrames() != source_frames_per_buffer)) { audio_fifo_->SizeInFrames() != source_frames_per_buffer)) {
audio_fifo_ = std::make_unique<media::AudioPullFifo>( audio_fifo_ = std::make_unique<media::AudioPullFifo>(
channels, source_frames_per_buffer, channels, source_frames_per_buffer,
ConvertToBaseCallback( ConvertToBaseRepeatingCallback(
CrossThreadBindRepeating(&WebRtcAudioRenderer::SourceCallback, CrossThreadBindRepeating(&WebRtcAudioRenderer::SourceCallback,
CrossThreadUnretained(this)))); CrossThreadUnretained(this))));
} }
......
...@@ -218,10 +218,10 @@ class VideoCaptureImplManagerTest : public ::testing::Test, ...@@ -218,10 +218,10 @@ class VideoCaptureImplManagerTest : public ::testing::Test,
const media::VideoCaptureParams& params) { const media::VideoCaptureParams& params) {
return manager_->StartCapture( return manager_->StartCapture(
id, params, id, params,
ConvertToBaseCallback(CrossThreadBindRepeating( ConvertToBaseRepeatingCallback(CrossThreadBindRepeating(
&VideoCaptureImplManagerTest::OnStateUpdate, &VideoCaptureImplManagerTest::OnStateUpdate,
CrossThreadUnretained(this), id)), CrossThreadUnretained(this), id)),
ConvertToBaseCallback( ConvertToBaseRepeatingCallback(
CrossThreadBindRepeating(&VideoCaptureImplManagerTest::OnFrameReady, CrossThreadBindRepeating(&VideoCaptureImplManagerTest::OnFrameReady,
CrossThreadUnretained(this)))); CrossThreadUnretained(this))));
} }
......
...@@ -108,7 +108,7 @@ void PaintWorkletPaintDispatcher::DispatchWorklets( ...@@ -108,7 +108,7 @@ void PaintWorkletPaintDispatcher::DispatchWorklets(
// specified, base::RepeatingClosure will trigger immediately and so the // specified, base::RepeatingClosure will trigger immediately and so the
// callback will still happen. // callback will still happen.
base::RepeatingClosure repeating_on_done = base::BarrierClosure( base::RepeatingClosure repeating_on_done = base::BarrierClosure(
ongoing_jobs_.size(), ConvertToBaseCallback(std::move(on_done))); ongoing_jobs_.size(), ConvertToBaseRepeatingCallback(std::move(on_done)));
// Now dispatch the calls to the registered painters. For each input, we match // Now dispatch the calls to the registered painters. For each input, we match
// the id to a registered worklet and dispatch a cross-thread call to it, // the id to a registered worklet and dispatch a cross-thread call to it,
......
...@@ -385,7 +385,7 @@ void RTCVideoDecoderAdapter::InitializeOnMediaThread( ...@@ -385,7 +385,7 @@ void RTCVideoDecoderAdapter::InitializeOnMediaThread(
// Encryption is not supported. // Encryption is not supported.
media::CdmContext* cdm_context = nullptr; media::CdmContext* cdm_context = nullptr;
media::VideoDecoder::OutputCB output_cb = ConvertToBaseCallback( media::VideoDecoder::OutputCB output_cb = ConvertToBaseRepeatingCallback(
CrossThreadBindRepeating(&RTCVideoDecoderAdapter::OnOutput, weak_this_)); CrossThreadBindRepeating(&RTCVideoDecoderAdapter::OnOutput, weak_this_));
video_decoder_->Initialize(config, low_delay, cdm_context, video_decoder_->Initialize(config, low_delay, cdm_context,
ConvertToBaseOnceCallback(std::move(init_cb)), ConvertToBaseOnceCallback(std::move(init_cb)),
......
...@@ -45,7 +45,7 @@ WebRtcAudioSink::WebRtcAudioSink( ...@@ -45,7 +45,7 @@ WebRtcAudioSink::WebRtcAudioSink(
std::move(track_source), std::move(track_source),
std::move(signaling_task_runner), std::move(signaling_task_runner),
std::move(main_task_runner))), std::move(main_task_runner))),
fifo_(ConvertToBaseCallback( fifo_(ConvertToBaseRepeatingCallback(
CrossThreadBindRepeating(&WebRtcAudioSink::DeliverRebufferedAudio, CrossThreadBindRepeating(&WebRtcAudioSink::DeliverRebufferedAudio,
CrossThreadUnretained(this)))) { CrossThreadUnretained(this)))) {
DVLOG(1) << "WebRtcAudioSink::WebRtcAudioSink()"; DVLOG(1) << "WebRtcAudioSink::WebRtcAudioSink()";
......
...@@ -43,7 +43,7 @@ void LocalVideoCapturerSource::StartCapture( ...@@ -43,7 +43,7 @@ void LocalVideoCapturerSource::StartCapture(
stop_capture_cb_ = manager_->StartCapture( stop_capture_cb_ = manager_->StartCapture(
session_id_, params, session_id_, params,
media::BindToLoop(task_runner_, media::BindToLoop(task_runner_,
ConvertToBaseCallback(CrossThreadBindRepeating( ConvertToBaseRepeatingCallback(CrossThreadBindRepeating(
&LocalVideoCapturerSource::OnStateUpdate, &LocalVideoCapturerSource::OnStateUpdate,
weak_factory_.GetWeakPtr()))), weak_factory_.GetWeakPtr()))),
new_frame_callback); new_frame_callback);
......
...@@ -57,7 +57,7 @@ decltype(auto) CoerceFunctorForCrossThreadBind(T&& functor) { ...@@ -57,7 +57,7 @@ decltype(auto) CoerceFunctorForCrossThreadBind(T&& functor) {
template <typename Signature> template <typename Signature>
base::RepeatingCallback<Signature> CoerceFunctorForCrossThreadBind( base::RepeatingCallback<Signature> CoerceFunctorForCrossThreadBind(
CrossThreadFunction<Signature>&& functor) { CrossThreadFunction<Signature>&& functor) {
return ConvertToBaseCallback(std::move(functor)); return ConvertToBaseRepeatingCallback(std::move(functor));
} }
template <typename Signature> template <typename Signature>
......
...@@ -314,7 +314,7 @@ class CrossThreadFunction<R(Args...)> { ...@@ -314,7 +314,7 @@ class CrossThreadFunction<R(Args...)> {
public: public:
CrossThreadFunction() = default; CrossThreadFunction() = default;
explicit CrossThreadFunction(base::Callback<R(Args...)> callback) explicit CrossThreadFunction(base::RepeatingCallback<R(Args...)> callback)
: callback_(std::move(callback)) {} : callback_(std::move(callback)) {}
~CrossThreadFunction() = default; ~CrossThreadFunction() = default;
...@@ -332,13 +332,13 @@ class CrossThreadFunction<R(Args...)> { ...@@ -332,13 +332,13 @@ class CrossThreadFunction<R(Args...)> {
void Reset() { callback_.Reset(); } void Reset() { callback_.Reset(); }
explicit operator bool() const { return static_cast<bool>(callback_); } explicit operator bool() const { return static_cast<bool>(callback_); }
friend base::Callback<R(Args...)> ConvertToBaseCallback( friend base::RepeatingCallback<R(Args...)> ConvertToBaseRepeatingCallback(
CrossThreadFunction function) { CrossThreadFunction function) {
return std::move(function.callback_); return std::move(function.callback_);
} }
private: private:
base::Callback<R(Args...)> callback_; base::RepeatingCallback<R(Args...)> callback_;
}; };
template <typename Signature> template <typename Signature>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment