| 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 "content/renderer/media/android/webmediaplayer_android.h" | 5 #include "content/renderer/media/android/webmediaplayer_android.h" |
| 6 | 6 |
| 7 #include <limits> | 7 #include <limits> |
| 8 | 8 |
| 9 #include "base/android/build_info.h" | 9 #include "base/android/build_info.h" |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| 11 #include "base/callback_helpers.h" | 11 #include "base/callback_helpers.h" |
| 12 #include "base/command_line.h" | 12 #include "base/command_line.h" |
| 13 #include "base/files/file_path.h" | 13 #include "base/files/file_path.h" |
| 14 #include "base/logging.h" | 14 #include "base/logging.h" |
| 15 #include "base/message_loop/message_loop.h" | |
| 16 #include "base/metrics/histogram.h" | 15 #include "base/metrics/histogram.h" |
| 16 #include "base/single_thread_task_runner.h" |
| 17 #include "base/strings/string_number_conversions.h" | 17 #include "base/strings/string_number_conversions.h" |
| 18 #include "base/strings/utf_string_conversions.h" | 18 #include "base/strings/utf_string_conversions.h" |
| 19 #include "cc/blink/web_layer_impl.h" | 19 #include "cc/blink/web_layer_impl.h" |
| 20 #include "cc/layers/video_layer.h" | 20 #include "cc/layers/video_layer.h" |
| 21 #include "content/public/common/content_client.h" | 21 #include "content/public/common/content_client.h" |
| 22 #include "content/public/common/content_switches.h" | 22 #include "content/public/common/content_switches.h" |
| 23 #include "content/public/renderer/render_frame.h" | 23 #include "content/public/renderer/render_frame.h" |
| 24 #include "content/renderer/media/android/renderer_demuxer_android.h" | 24 #include "content/renderer/media/android/renderer_demuxer_android.h" |
| 25 #include "content/renderer/media/android/renderer_media_player_manager.h" | 25 #include "content/renderer/media/android/renderer_media_player_manager.h" |
| 26 #include "content/renderer/media/crypto/key_systems.h" | 26 #include "content/renderer/media/crypto/key_systems.h" |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 108 | 108 |
| 109 namespace content { | 109 namespace content { |
| 110 | 110 |
| 111 WebMediaPlayerAndroid::WebMediaPlayerAndroid( | 111 WebMediaPlayerAndroid::WebMediaPlayerAndroid( |
| 112 blink::WebFrame* frame, | 112 blink::WebFrame* frame, |
| 113 blink::WebMediaPlayerClient* client, | 113 blink::WebMediaPlayerClient* client, |
| 114 base::WeakPtr<WebMediaPlayerDelegate> delegate, | 114 base::WeakPtr<WebMediaPlayerDelegate> delegate, |
| 115 RendererMediaPlayerManager* player_manager, | 115 RendererMediaPlayerManager* player_manager, |
| 116 RendererCdmManager* cdm_manager, | 116 RendererCdmManager* cdm_manager, |
| 117 scoped_refptr<StreamTextureFactory> factory, | 117 scoped_refptr<StreamTextureFactory> factory, |
| 118 const scoped_refptr<base::MessageLoopProxy>& media_loop, | 118 const scoped_refptr<base::SingleThreadTaskRunner>& task_runner, |
| 119 media::MediaLog* media_log) | 119 media::MediaLog* media_log) |
| 120 : RenderFrameObserver(RenderFrame::FromWebFrame(frame)), | 120 : RenderFrameObserver(RenderFrame::FromWebFrame(frame)), |
| 121 frame_(frame), | 121 frame_(frame), |
| 122 client_(client), | 122 client_(client), |
| 123 delegate_(delegate), | 123 delegate_(delegate), |
| 124 buffered_(static_cast<size_t>(1)), | 124 buffered_(static_cast<size_t>(1)), |
| 125 media_loop_(media_loop), | 125 media_task_runner_(task_runner), |
| 126 ignore_metadata_duration_change_(false), | 126 ignore_metadata_duration_change_(false), |
| 127 pending_seek_(false), | 127 pending_seek_(false), |
| 128 seeking_(false), | 128 seeking_(false), |
| 129 did_loading_progress_(false), | 129 did_loading_progress_(false), |
| 130 player_manager_(player_manager), | 130 player_manager_(player_manager), |
| 131 cdm_manager_(cdm_manager), | 131 cdm_manager_(cdm_manager), |
| 132 network_state_(WebMediaPlayer::NetworkStateEmpty), | 132 network_state_(WebMediaPlayer::NetworkStateEmpty), |
| 133 ready_state_(WebMediaPlayer::ReadyStateHaveNothing), | 133 ready_state_(WebMediaPlayer::ReadyStateHaveNothing), |
| 134 texture_id_(0), | 134 texture_id_(0), |
| 135 stream_id_(0), | 135 stream_id_(0), |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 217 } | 217 } |
| 218 | 218 |
| 219 url_ = url; | 219 url_ = url; |
| 220 int demuxer_client_id = 0; | 220 int demuxer_client_id = 0; |
| 221 if (player_type_ != MEDIA_PLAYER_TYPE_URL) { | 221 if (player_type_ != MEDIA_PLAYER_TYPE_URL) { |
| 222 RendererDemuxerAndroid* demuxer = | 222 RendererDemuxerAndroid* demuxer = |
| 223 RenderThreadImpl::current()->renderer_demuxer(); | 223 RenderThreadImpl::current()->renderer_demuxer(); |
| 224 demuxer_client_id = demuxer->GetNextDemuxerClientID(); | 224 demuxer_client_id = demuxer->GetNextDemuxerClientID(); |
| 225 | 225 |
| 226 media_source_delegate_.reset(new MediaSourceDelegate( | 226 media_source_delegate_.reset(new MediaSourceDelegate( |
| 227 demuxer, demuxer_client_id, media_loop_, media_log_)); | 227 demuxer, demuxer_client_id, media_task_runner_, media_log_)); |
| 228 | 228 |
| 229 if (player_type_ == MEDIA_PLAYER_TYPE_MEDIA_SOURCE) { | 229 if (player_type_ == MEDIA_PLAYER_TYPE_MEDIA_SOURCE) { |
| 230 media::SetDecryptorReadyCB set_decryptor_ready_cb = | 230 media::SetDecryptorReadyCB set_decryptor_ready_cb = |
| 231 media::BindToCurrentLoop( | 231 media::BindToCurrentLoop( |
| 232 base::Bind(&WebMediaPlayerAndroid::SetDecryptorReadyCB, | 232 base::Bind(&WebMediaPlayerAndroid::SetDecryptorReadyCB, |
| 233 weak_factory_.GetWeakPtr())); | 233 weak_factory_.GetWeakPtr())); |
| 234 | 234 |
| 235 media_source_delegate_->InitializeMediaSource( | 235 media_source_delegate_->InitializeMediaSource( |
| 236 base::Bind(&WebMediaPlayerAndroid::OnMediaSourceOpened, | 236 base::Bind(&WebMediaPlayerAndroid::OnMediaSourceOpened, |
| 237 weak_factory_.GetWeakPtr()), | 237 weak_factory_.GetWeakPtr()), |
| (...skipping 1502 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1740 } | 1740 } |
| 1741 | 1741 |
| 1742 bool WebMediaPlayerAndroid::IsHLSStream() const { | 1742 bool WebMediaPlayerAndroid::IsHLSStream() const { |
| 1743 std::string mime; | 1743 std::string mime; |
| 1744 if (!net::GetMimeTypeFromFile(base::FilePath(url_.path()), &mime)) | 1744 if (!net::GetMimeTypeFromFile(base::FilePath(url_.path()), &mime)) |
| 1745 return false; | 1745 return false; |
| 1746 return !mime.compare("application/x-mpegurl"); | 1746 return !mime.compare("application/x-mpegurl"); |
| 1747 } | 1747 } |
| 1748 | 1748 |
| 1749 } // namespace content | 1749 } // namespace content |
| OLD | NEW |