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 |