| Index: media/filters/video_frame_scheduler_proxy.cc
|
| diff --git a/media/filters/video_frame_scheduler_proxy.cc b/media/filters/video_frame_scheduler_proxy.cc
|
| index 7499dc38d2fe1ca74a63b06a2b69a9c880e0db16..590412e6dca06bda89ce10a047adccb3f548305e 100644
|
| --- a/media/filters/video_frame_scheduler_proxy.cc
|
| +++ b/media/filters/video_frame_scheduler_proxy.cc
|
| @@ -13,14 +13,15 @@ namespace media {
|
| VideoFrameSchedulerProxy::VideoFrameSchedulerProxy(
|
| const scoped_refptr<base::SingleThreadTaskRunner>& task_runner,
|
| const scoped_refptr<base::SingleThreadTaskRunner>& scheduler_runner,
|
| - VideoFrameScheduler* scheduler)
|
| + scoped_ptr<VideoFrameScheduler> scheduler)
|
| : task_runner_(task_runner),
|
| scheduler_runner_(scheduler_runner),
|
| - scheduler_(scheduler),
|
| + scheduler_(scheduler.Pass()),
|
| weak_factory_(this) {
|
| }
|
|
|
| VideoFrameSchedulerProxy::~VideoFrameSchedulerProxy() {
|
| + scheduler_runner_->DeleteSoon(FROM_HERE, scheduler_.release());
|
| }
|
|
|
| void VideoFrameSchedulerProxy::ScheduleVideoFrame(
|
| @@ -31,7 +32,7 @@ void VideoFrameSchedulerProxy::ScheduleVideoFrame(
|
| scheduler_runner_->PostTask(
|
| FROM_HERE,
|
| base::Bind(&VideoFrameScheduler::ScheduleVideoFrame,
|
| - base::Unretained(scheduler_),
|
| + base::Unretained(scheduler_.get()),
|
| frame,
|
| wall_ticks,
|
| BindToCurrentLoop(done_cb)));
|
| @@ -39,9 +40,9 @@ void VideoFrameSchedulerProxy::ScheduleVideoFrame(
|
|
|
| void VideoFrameSchedulerProxy::Reset() {
|
| DCHECK(task_runner_->BelongsToCurrentThread());
|
| - scheduler_runner_->PostTask(
|
| - FROM_HERE,
|
| - base::Bind(&VideoFrameScheduler::Reset, base::Unretained(scheduler_)));
|
| + scheduler_runner_->PostTask(FROM_HERE,
|
| + base::Bind(&VideoFrameScheduler::Reset,
|
| + base::Unretained(scheduler_.get())));
|
| }
|
|
|
| } // namespace media
|
|
|