Index: media/remoting/remoting_renderer_controller.cc |
diff --git a/media/remoting/remoting_renderer_controller.cc b/media/remoting/remoting_renderer_controller.cc |
index 5f0d37eacdbc7a5939d49d5b0941e7077d07da8f..90c39cc429081fcdd5786a002b030582c34b5d56 100644 |
--- a/media/remoting/remoting_renderer_controller.cc |
+++ b/media/remoting/remoting_renderer_controller.cc |
@@ -73,6 +73,15 @@ void RemotingRendererController::OnSetCdm(CdmContext* cdm_context) { |
UpdateAndMaybeSwitch(); |
} |
+void RemotingRendererController::OnSetPoster(const GURL& poster_url) { |
+ DCHECK(thread_checker_.CalledOnValidThread()); |
+ |
+ if (poster_url != poster_url_) { |
+ poster_url_ = poster_url; |
+ UpdateAndMaybeShowInterstitial(); |
miu
2016/12/20 00:48:06
Instead of calling UpdateInterstitial() here, I wo
xjz
2016/12/20 21:46:25
Done. The poster image will be downloaded here onl
|
+ } |
+} |
+ |
void RemotingRendererController::SetSwitchRendererCallback( |
const base::Closure& cb) { |
DCHECK(thread_checker_.CalledOnValidThread()); |
@@ -243,4 +252,35 @@ void RemotingRendererController::UpdateAndMaybeSwitch() { |
} |
} |
+void RemotingRendererController::SetDownloadPosterCallback( |
+ const DownloadPosterCallback& cb) { |
+ DCHECK(thread_checker_.CalledOnValidThread()); |
+ DCHECK(download_poster_cb_.is_null()); |
+ download_poster_cb_ = cb; |
+} |
+ |
+void RemotingRendererController::UpdateAndMaybeShowInterstitial() { |
miu
2016/12/20 00:48:06
naming nit: It's fine to just call this UpdateInte
xjz
2016/12/20 21:46:25
Done.
|
+ DCHECK(thread_checker_.CalledOnValidThread()); |
+ if (pipeline_metadata_.natural_size.IsEmpty()) |
+ return; |
+ |
+ DCHECK(remote_rendering_started_); |
+ if (poster_url_.is_empty() || download_poster_cb_.is_null()) { |
+ // TODO(xjz): Draw interstitial on a black image and show it. |
+ // https://codereview.chromium.org/2566223005/ |
+ } else { |
+ download_poster_cb_.Run( |
+ poster_url_, |
+ base::Bind(&RemotingRendererController::PosterImageDownloaded, |
+ weak_factory_.GetWeakPtr())); |
miu
2016/12/20 00:48:06
Note: Recommend you pass |poster_url_| as an argum
xjz
2016/12/20 21:46:25
Done.
|
+ } |
+} |
+ |
+void RemotingRendererController::PosterImageDownloaded(const SkBitmap& image) { |
miu
2016/12/20 00:48:06
naming nit: OnPosterImageDownloaded().
miu
2016/12/20 00:48:06
Recommend you double-check that the Poster URL has
xjz
2016/12/20 21:46:25
Done.
xjz
2016/12/20 21:46:25
Done.
|
+ DCHECK(thread_checker_.CalledOnValidThread()); |
+ DCHECK(remote_rendering_started_); |
miu
2016/12/20 00:48:06
Since the downloading can take an unbounded amount
xjz
2016/12/20 21:46:25
Done.
|
+ // TODO(xjz): Draw interstitial on |image| and show it. |
+ // https://codereview.chromium.org/2566223005/ |
+} |
+ |
} // namespace media |