Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(511)

Unified Diff: media/blink/webmediaplayer_impl.cc

Issue 2770293002: Detect HLS from demuxing results (Closed)
Patch Set: Minor changes in comments Created 3 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « media/base/pipeline_status.h ('k') | media/blink/webmediaplayer_util.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/blink/webmediaplayer_impl.cc
diff --git a/media/blink/webmediaplayer_impl.cc b/media/blink/webmediaplayer_impl.cc
index b552a9b538b2a1e5066854b4b93baf247605575b..41b7d717e6525214457aa1b9e77f0818ffbc6df8 100644
--- a/media/blink/webmediaplayer_impl.cc
+++ b/media/blink/webmediaplayer_impl.cc
@@ -1322,6 +1322,18 @@ void WebMediaPlayerImpl::OnError(PipelineStatus status) {
if (suppress_destruction_errors_)
return;
+#if defined(OS_ANDROID)
+ if (status == PipelineStatus::DEMUXER_ERROR_DETECTED_HLS) {
+ renderer_factory_selector_->SetUseMediaPlayer(true);
+
+ pipeline_controller_.Stop();
+
+ main_task_runner_->PostTask(
+ FROM_HERE, base::Bind(&WebMediaPlayerImpl::StartPipeline, AsWeakPtr()));
+ return;
+ }
+#endif
+
ReportPipelineError(load_type_, status, media_log_.get());
media_log_->AddEvent(media_log_->CreatePipelineErrorEvent(status));
@@ -1812,21 +1824,6 @@ void WebMediaPlayerImpl::DataSourceInitialized(bool success) {
if (observer_ && IsNewRemotePlaybackPipelineEnabled() && data_source_)
observer_->OnDataSourceInitialized(data_source_->GetUrlAfterRedirects());
-#if defined(OS_ANDROID)
- // We can't play HLS URLs with WebMediaPlayerImpl, so in cases where they are
- // encountered, instruct the HTML media element to use the MediaPlayerRenderer
- // instead.
- //
- // TODO(tguilbert): Detect the presence of HLS based on demuxing results,
- // rather than the URL string. See crbug.com/663503.
- if (data_source_) {
- const GURL url_after_redirects = data_source_->GetUrlAfterRedirects();
- if (MediaCodecUtil::IsHLSURL(url_after_redirects)) {
- renderer_factory_selector_->SetUseMediaPlayer(true);
- }
- }
-#endif
-
if (!success) {
SetNetworkState(WebMediaPlayer::kNetworkStateFormatError);
« no previous file with comments | « media/base/pipeline_status.h ('k') | media/blink/webmediaplayer_util.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698