shared_state_.renderer->SetWasPlayedWithUserActivation(
was_played_with_user_activation_);
+#if defined(TIZEN_VIDEO_HOLE)
+ LOG(INFO) << __func__ << " call SetVideoHole : " << is_video_hole_;
+ shared_state_.renderer->SetVideoHole(is_video_hole_);
+#endif
+
// Initialize Renderer and report timeout UMA.
std::string uma_name = "Media.InitializeRendererTimeout";
base::UmaHistogramEnumeration(uma_name, CallbackTimeoutStatus::kCreate);
WrapCallbackWithTimeoutHandler(
std::move(done_cb), /*timeout_delay=*/base::Seconds(10),
base::BindOnce(&OnCallbackTimeout, uma_name)));
-
-#if defined(TIZEN_VIDEO_HOLE)
- LOG(INFO) << __func__ << " call SetVideoHole : " << is_video_hole_;
- shared_state_.renderer->SetVideoHole(is_video_hole_);
-#endif
}
void PipelineImpl::RendererWrapper::DestroyRenderer() {
return client_->OnError(std::move(error));
}
+#if defined(TIZEN_MULTIMEDIA)
+ if (error == DEMUXER_ERROR_DETECTED_HLS) {
+ hls_fallback_ = HlsFallbackImplementation::kMediaPlayer;
+
+ client_->StopForDemuxerReset();
+ data_source_->Stop();
+ FreeResourcesAfterMediaThreadWait(base::BindOnce(
+ &DemuxerManager::RestartClientForHLS, weak_factory_.GetWeakPtr()));
+
+ return;
+ }
+#endif
+
#if BUILDFLAG(ENABLE_HLS_DEMUXER) || BUILDFLAG(IS_ANDROID)
bool can_play_hls =
SelectHlsFallbackImplementation() != HlsFallbackImplementation::kNone;
}
#endif // BUILDFLAG(ENABLE_HLS_DEMUXER)
-#if BUILDFLAG(IS_ANDROID)
+#if BUILDFLAG(IS_ANDROID) || defined(TIZEN_MULTIMEDIA)
const bool media_player_hls =
hls_fallback_ == HlsFallbackImplementation::kMediaPlayer;
if (media_player_hls || client_->IsMediaPlayerRendererClient()) {
}
#endif
-#if BUILDFLAG(IS_ANDROID)
+#if BUILDFLAG(IS_ANDROID) || defined(TIZEN_MULTIMEDIA)
std::unique_ptr<Demuxer> DemuxerManager::CreateMediaUrlDemuxer(
bool expect_hls_content) {
return std::make_unique<MediaUrlDemuxer>(
media_task_runner_, loaded_url_, site_for_cookies_, top_frame_origin_,
+#if BUILDFLAG(IS_ANDROID)
has_storage_access_, allow_media_player_renderer_credentials_,
+#else
+ // The platform media player in Tizen OS doesn't require these params
+ // except for the url, so they are not used for tizen multimedia.
+ true, true,
+#endif
expect_hls_content);
}
-#endif // BUILDFLAG(IS_ANDROID)
+#endif // BUILDFLAG(IS_ANDROID) || defined(TIZEN_MULTIMEDIA)
void DemuxerManager::SetDemuxer(std::unique_ptr<Demuxer> demuxer) {
DCHECK(!demuxer_);
std::unique_ptr<Demuxer> CreateHlsDemuxer();
#endif
-#if BUILDFLAG(IS_ANDROID)
+#if BUILDFLAG(IS_ANDROID) || defined(TIZEN_MULTIMEDIA)
std::unique_ptr<media::Demuxer> CreateMediaUrlDemuxer(bool hls_content);
#endif // BUILDFLAG(IS_ANDROID)
#if defined(TIZEN_VIDEO_HOLE)
void MojoRenderer::SetVideoHole(bool is_video_hole) {
- if (remote_renderer_.is_bound())
- remote_renderer_->SetVideoHole(is_video_hole);
+ BindRemoteRendererIfNeeded();
+ remote_renderer_->SetVideoHole(is_video_hole);
}
void MojoRenderer::SetMediaGeometry(const gfx::RectF& rect) {
return;
}
- audio_stream_ = media_resource_->GetFirstStream(media::DemuxerStream::AUDIO);
- if (audio_stream_)
- media_player_->SetMediaType(media::DemuxerStream::AUDIO);
- video_stream_ = media_resource_->GetFirstStream(media::DemuxerStream::VIDEO);
- if (video_stream_)
- media_player_->SetMediaType(media::DemuxerStream::VIDEO);
+ if (media_resource_->GetType() != media::MediaResource::Type::KUrl) {
+ audio_stream_ =
+ media_resource_->GetFirstStream(media::DemuxerStream::AUDIO);
+ if (audio_stream_) {
+ media_player_->SetMediaType(media::DemuxerStream::AUDIO);
+ }
+ video_stream_ =
+ media_resource_->GetFirstStream(media::DemuxerStream::VIDEO);
+ if (video_stream_) {
+ media_player_->SetMediaType(media::DemuxerStream::VIDEO);
+ }
+ }
#if defined(TIZEN_VIDEO_HOLE)
if (web_contents) {