diff options
author | wez@chromium.org <wez@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-12-08 03:39:24 +0000 |
---|---|---|
committer | wez@chromium.org <wez@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-12-08 03:39:24 +0000 |
commit | c18ad894cab96cc4d308b4c6fadbea0d31c097c2 (patch) | |
tree | 62dbd99a9e4b7a7824ed7206f2cfe83a4f540254 /remoting/host/client_session.cc | |
parent | 68d01e87583a5dee2cd294f9fe7d1fe04f5c378e (diff) | |
download | chromium_src-c18ad894cab96cc4d308b4c6fadbea0d31c097c2.zip chromium_src-c18ad894cab96cc4d308b4c6fadbea0d31c097c2.tar.gz chromium_src-c18ad894cab96cc4d308b4c6fadbea0d31c097c2.tar.bz2 |
Fix AudioScheduler and VideoScheduler creation.
The schedulers post startup tasks to a secondary thread, running the risk that
the secondary thread will them down before the caller has had a chance to take
a reference to them.
BUG=164795
Review URL: https://chromiumcodereview.appspot.com/11474015
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@171925 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'remoting/host/client_session.cc')
-rw-r--r-- | remoting/host/client_session.cc | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/remoting/host/client_session.cc b/remoting/host/client_session.cc index c4fdecd..9a8f108 100644 --- a/remoting/host/client_session.cc +++ b/remoting/host/client_session.cc @@ -134,20 +134,21 @@ void ClientSession::OnConnectionChannelsConnected( CreateVideoEncoder(connection_->session()->config()); // Create a VideoScheduler to pump frames from the capturer to the client. - video_scheduler_ = new VideoScheduler(video_capture_task_runner_, - video_encode_task_runner_, - network_task_runner_, - desktop_environment_->video_capturer(), - video_encoder.Pass(), - connection_->client_stub(), - connection_->video_stub()); + video_scheduler_ = VideoScheduler::Create( + video_capture_task_runner_, + video_encode_task_runner_, + network_task_runner_, + desktop_environment_->video_capturer(), + video_encoder.Pass(), + connection_->client_stub(), + connection_->video_stub()); ++active_recorders_; // Create an AudioScheduler if audio is enabled, to pump audio samples. if (connection_->session()->config().is_audio_enabled()) { scoped_ptr<AudioEncoder> audio_encoder = CreateAudioEncoder(connection_->session()->config()); - audio_scheduler_ = new AudioScheduler( + audio_scheduler_ = AudioScheduler::Create( audio_task_runner_, network_task_runner_, desktop_environment_->audio_capturer(), |