| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/blink/webmediaplayer_impl.h" | 5 #include "media/blink/webmediaplayer_impl.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <cmath> | 8 #include <cmath> |
| 9 #include <limits> | 9 #include <limits> |
| 10 | 10 |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 109 base::WeakPtr<WebMediaPlayerDelegate> delegate, | 109 base::WeakPtr<WebMediaPlayerDelegate> delegate, |
| 110 scoped_ptr<RendererFactory> renderer_factory, | 110 scoped_ptr<RendererFactory> renderer_factory, |
| 111 CdmFactory* cdm_factory, | 111 CdmFactory* cdm_factory, |
| 112 const WebMediaPlayerParams& params) | 112 const WebMediaPlayerParams& params) |
| 113 : frame_(frame), | 113 : frame_(frame), |
| 114 network_state_(WebMediaPlayer::NetworkStateEmpty), | 114 network_state_(WebMediaPlayer::NetworkStateEmpty), |
| 115 ready_state_(WebMediaPlayer::ReadyStateHaveNothing), | 115 ready_state_(WebMediaPlayer::ReadyStateHaveNothing), |
| 116 preload_(BufferedDataSource::AUTO), | 116 preload_(BufferedDataSource::AUTO), |
| 117 main_task_runner_(base::ThreadTaskRunnerHandle::Get()), | 117 main_task_runner_(base::ThreadTaskRunnerHandle::Get()), |
| 118 media_task_runner_(params.media_task_runner()), | 118 media_task_runner_(params.media_task_runner()), |
| 119 worker_task_runner_(params.worker_task_runner()), |
| 119 media_log_(params.media_log()), | 120 media_log_(params.media_log()), |
| 120 pipeline_(media_task_runner_, media_log_.get()), | 121 pipeline_(media_task_runner_, media_log_.get()), |
| 121 load_type_(LoadTypeURL), | 122 load_type_(LoadTypeURL), |
| 122 opaque_(false), | 123 opaque_(false), |
| 123 playback_rate_(0.0), | 124 playback_rate_(0.0), |
| 124 paused_(true), | 125 paused_(true), |
| 125 seeking_(false), | 126 seeking_(false), |
| 126 ended_(false), | 127 ended_(false), |
| 127 pending_seek_(false), | 128 pending_seek_(false), |
| 128 should_notify_time_changed_(false), | 129 should_notify_time_changed_(false), |
| (...skipping 805 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 934 chunk_demuxer_ = new ChunkDemuxer( | 935 chunk_demuxer_ = new ChunkDemuxer( |
| 935 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnDemuxerOpened), | 936 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnDemuxerOpened), |
| 936 encrypted_media_init_data_cb, media_log_, true); | 937 encrypted_media_init_data_cb, media_log_, true); |
| 937 demuxer_.reset(chunk_demuxer_); | 938 demuxer_.reset(chunk_demuxer_); |
| 938 } | 939 } |
| 939 | 940 |
| 940 // ... and we're ready to go! | 941 // ... and we're ready to go! |
| 941 seeking_ = true; | 942 seeking_ = true; |
| 942 | 943 |
| 943 pipeline_.Start( | 944 pipeline_.Start( |
| 944 demuxer_.get(), | 945 demuxer_.get(), renderer_factory_->CreateRenderer( |
| 945 renderer_factory_->CreateRenderer( | 946 media_task_runner_, worker_task_runner_, |
| 946 media_task_runner_, audio_source_provider_.get(), compositor_), | 947 audio_source_provider_.get(), compositor_), |
| 947 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnPipelineEnded), | 948 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnPipelineEnded), |
| 948 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnPipelineError), | 949 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnPipelineError), |
| 949 BIND_TO_RENDER_LOOP1(&WebMediaPlayerImpl::OnPipelineSeeked, false), | 950 BIND_TO_RENDER_LOOP1(&WebMediaPlayerImpl::OnPipelineSeeked, false), |
| 950 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnPipelineMetadata), | 951 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnPipelineMetadata), |
| 951 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnPipelineBufferingStateChanged), | 952 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnPipelineBufferingStateChanged), |
| 952 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnDurationChanged), | 953 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnDurationChanged), |
| 953 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnAddTextTrack), | 954 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnAddTextTrack), |
| 954 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnWaitingForDecryptionKey)); | 955 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnWaitingForDecryptionKey)); |
| 955 } | 956 } |
| 956 | 957 |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1052 | 1053 |
| 1053 // pause() may be called after playback has ended and the HTMLMediaElement | 1054 // pause() may be called after playback has ended and the HTMLMediaElement |
| 1054 // requires that currentTime() == duration() after ending. We want to ensure | 1055 // requires that currentTime() == duration() after ending. We want to ensure |
| 1055 // |paused_time_| matches currentTime() in this case or a future seek() may | 1056 // |paused_time_| matches currentTime() in this case or a future seek() may |
| 1056 // incorrectly discard what it thinks is a seek to the existing time. | 1057 // incorrectly discard what it thinks is a seek to the existing time. |
| 1057 paused_time_ = | 1058 paused_time_ = |
| 1058 ended_ ? pipeline_.GetMediaDuration() : pipeline_.GetMediaTime(); | 1059 ended_ ? pipeline_.GetMediaDuration() : pipeline_.GetMediaTime(); |
| 1059 } | 1060 } |
| 1060 | 1061 |
| 1061 } // namespace media | 1062 } // namespace media |
| OLD | NEW |