| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "media/base/pipeline_impl.h" | 5 #include "media/base/pipeline_impl.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/bind_helpers.h" | 10 #include "base/bind_helpers.h" |
| (...skipping 30 matching lines...) Expand all Loading... |
| 41 return gfx::Size(natural_size.height(), natural_size.width()); | 41 return gfx::Size(natural_size.height(), natural_size.width()); |
| 42 return natural_size; | 42 return natural_size; |
| 43 } | 43 } |
| 44 | 44 |
| 45 } // namespace | 45 } // namespace |
| 46 | 46 |
| 47 class PipelineImpl::RendererWrapper : public DemuxerHost, | 47 class PipelineImpl::RendererWrapper : public DemuxerHost, |
| 48 public RendererClient { | 48 public RendererClient { |
| 49 public: | 49 public: |
| 50 RendererWrapper(scoped_refptr<base::SingleThreadTaskRunner> media_task_runner, | 50 RendererWrapper(scoped_refptr<base::SingleThreadTaskRunner> media_task_runner, |
| 51 scoped_refptr<MediaLog> media_log); | 51 MediaLog* media_log); |
| 52 ~RendererWrapper() final; | 52 ~RendererWrapper() final; |
| 53 | 53 |
| 54 void Start(Demuxer* demuxer, | 54 void Start(Demuxer* demuxer, |
| 55 std::unique_ptr<Renderer> renderer, | 55 std::unique_ptr<Renderer> renderer, |
| 56 std::unique_ptr<TextRenderer> text_renderer, | 56 std::unique_ptr<TextRenderer> text_renderer, |
| 57 base::WeakPtr<PipelineImpl> weak_pipeline); | 57 base::WeakPtr<PipelineImpl> weak_pipeline); |
| 58 void Stop(const base::Closure& stop_cb); | 58 void Stop(const base::Closure& stop_cb); |
| 59 void Seek(base::TimeDelta time); | 59 void Seek(base::TimeDelta time); |
| 60 void Suspend(); | 60 void Suspend(); |
| 61 void Resume(std::unique_ptr<Renderer> renderer, base::TimeDelta time); | 61 void Resume(std::unique_ptr<Renderer> renderer, base::TimeDelta time); |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 142 void SetState(State next_state); | 142 void SetState(State next_state); |
| 143 void CompleteSeek(base::TimeDelta seek_time, PipelineStatus status); | 143 void CompleteSeek(base::TimeDelta seek_time, PipelineStatus status); |
| 144 void CompleteSuspend(PipelineStatus status); | 144 void CompleteSuspend(PipelineStatus status); |
| 145 void InitializeDemuxer(const PipelineStatusCB& done_cb); | 145 void InitializeDemuxer(const PipelineStatusCB& done_cb); |
| 146 void InitializeRenderer(const PipelineStatusCB& done_cb); | 146 void InitializeRenderer(const PipelineStatusCB& done_cb); |
| 147 void DestroyRenderer(); | 147 void DestroyRenderer(); |
| 148 void ReportMetadata(); | 148 void ReportMetadata(); |
| 149 | 149 |
| 150 const scoped_refptr<base::SingleThreadTaskRunner> media_task_runner_; | 150 const scoped_refptr<base::SingleThreadTaskRunner> media_task_runner_; |
| 151 const scoped_refptr<base::SingleThreadTaskRunner> main_task_runner_; | 151 const scoped_refptr<base::SingleThreadTaskRunner> main_task_runner_; |
| 152 const scoped_refptr<MediaLog> media_log_; | 152 MediaLog* const media_log_; |
| 153 | 153 |
| 154 base::WeakPtr<PipelineImpl> weak_pipeline_; | 154 base::WeakPtr<PipelineImpl> weak_pipeline_; |
| 155 Demuxer* demuxer_; | 155 Demuxer* demuxer_; |
| 156 std::unique_ptr<TextRenderer> text_renderer_; | 156 std::unique_ptr<TextRenderer> text_renderer_; |
| 157 double playback_rate_; | 157 double playback_rate_; |
| 158 float volume_; | 158 float volume_; |
| 159 CdmContext* cdm_context_; | 159 CdmContext* cdm_context_; |
| 160 | 160 |
| 161 // Lock used to serialize |shared_state_|. | 161 // Lock used to serialize |shared_state_|. |
| 162 mutable base::Lock shared_state_lock_; | 162 mutable base::Lock shared_state_lock_; |
| (...skipping 17 matching lines...) Expand all Loading... |
| 180 // Series of tasks to Start(), Seek(), and Resume(). | 180 // Series of tasks to Start(), Seek(), and Resume(). |
| 181 std::unique_ptr<SerialRunner> pending_callbacks_; | 181 std::unique_ptr<SerialRunner> pending_callbacks_; |
| 182 | 182 |
| 183 base::WeakPtr<RendererWrapper> weak_this_; | 183 base::WeakPtr<RendererWrapper> weak_this_; |
| 184 base::WeakPtrFactory<RendererWrapper> weak_factory_; | 184 base::WeakPtrFactory<RendererWrapper> weak_factory_; |
| 185 DISALLOW_COPY_AND_ASSIGN(RendererWrapper); | 185 DISALLOW_COPY_AND_ASSIGN(RendererWrapper); |
| 186 }; | 186 }; |
| 187 | 187 |
| 188 PipelineImpl::RendererWrapper::RendererWrapper( | 188 PipelineImpl::RendererWrapper::RendererWrapper( |
| 189 scoped_refptr<base::SingleThreadTaskRunner> media_task_runner, | 189 scoped_refptr<base::SingleThreadTaskRunner> media_task_runner, |
| 190 scoped_refptr<MediaLog> media_log) | 190 MediaLog* media_log) |
| 191 : media_task_runner_(std::move(media_task_runner)), | 191 : media_task_runner_(std::move(media_task_runner)), |
| 192 main_task_runner_(base::ThreadTaskRunnerHandle::Get()), | 192 main_task_runner_(base::ThreadTaskRunnerHandle::Get()), |
| 193 media_log_(std::move(media_log)), | 193 media_log_(media_log), |
| 194 demuxer_(nullptr), | 194 demuxer_(nullptr), |
| 195 playback_rate_(kDefaultPlaybackRate), | 195 playback_rate_(kDefaultPlaybackRate), |
| 196 volume_(kDefaultVolume), | 196 volume_(kDefaultVolume), |
| 197 cdm_context_(nullptr), | 197 cdm_context_(nullptr), |
| 198 state_(kCreated), | 198 state_(kCreated), |
| 199 status_(PIPELINE_OK), | 199 status_(PIPELINE_OK), |
| 200 renderer_ended_(false), | 200 renderer_ended_(false), |
| 201 text_renderer_ended_(false), | 201 text_renderer_ended_(false), |
| 202 weak_factory_(this) { | 202 weak_factory_(this) { |
| 203 weak_this_ = weak_factory_.GetWeakPtr(); | 203 weak_this_ = weak_factory_.GetWeakPtr(); |
| (...skipping 1158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1362 void PipelineImpl::OnSuspendDone() { | 1362 void PipelineImpl::OnSuspendDone() { |
| 1363 DVLOG(3) << __func__; | 1363 DVLOG(3) << __func__; |
| 1364 DCHECK(thread_checker_.CalledOnValidThread()); | 1364 DCHECK(thread_checker_.CalledOnValidThread()); |
| 1365 DCHECK(IsRunning()); | 1365 DCHECK(IsRunning()); |
| 1366 | 1366 |
| 1367 DCHECK(!suspend_cb_.is_null()); | 1367 DCHECK(!suspend_cb_.is_null()); |
| 1368 base::ResetAndReturn(&suspend_cb_).Run(PIPELINE_OK); | 1368 base::ResetAndReturn(&suspend_cb_).Run(PIPELINE_OK); |
| 1369 } | 1369 } |
| 1370 | 1370 |
| 1371 } // namespace media | 1371 } // namespace media |
| OLD | NEW |