Fix build error for Tizen multimedia migration. 26/304826/1
authorSun-woo Nam <sunny.nam@samsung.com>
Mon, 22 Jan 2024 23:05:36 +0000 (15:05 -0800)
committerSun-woo Nam <sunny.nam@samsung.com>
Wed, 24 Jan 2024 05:27:43 +0000 (21:27 -0800)
The codes that were changed during the update to m120 are applied.

The features below are enabled.
tizen_multimedia
tizen_audio_io
tizen_web_speech_recognition

tizen_tbm_support is still disabled.

Change-Id: Idfe6f0b877107d00298f4ab772108abfb65b90c2
Signed-off-by: Sun-woo Nam <sunny.nam@samsung.com>
23 files changed:
cc/layers/video_frame_provider.h
content/browser/BUILD.gn
content/public/renderer/content_renderer_client.cc
media/base/pipeline_impl.cc
media/capture/mojom/video_capture_types.mojom
media/mojo/clients/mojo_demuxer_stream_impl.cc
media/mojo/clients/mojo_renderer.cc
media/mojo/mojom/renderer_extensions.mojom
media/mojo/services/mojo_demuxer_stream_adapter.cc
third_party/blink/renderer/platform/media/web_media_player_impl.cc
tizen_src/build/gn_chromiumefl.sh
tizen_src/chromium_impl/content/browser/media/tizen_renderer_impl.cc
tizen_src/chromium_impl/content/browser/media/tizen_renderer_impl.h
tizen_src/chromium_impl/content/renderer/media/tizen/media_player_renderer_client.cc
tizen_src/chromium_impl/content/renderer/media/tizen/media_player_renderer_client.h
tizen_src/chromium_impl/content/renderer/media/tizen/media_player_renderer_client_factory.cc
tizen_src/chromium_impl/content/renderer/media/tizen/media_player_renderer_client_factory.h
tizen_src/chromium_impl/media/audio/tizen/capi_audio_input.cc
tizen_src/chromium_impl/media/audio/tizen/capi_audio_output.cc
tizen_src/chromium_impl/media/capture/video/tizen/camera_device_tizen.cc
tizen_src/chromium_impl/media/filters/media_player_esplusplayer.cc
tizen_src/chromium_impl/media/filters/media_player_esplusplayer.h
tizen_src/chromium_impl/media/filters/media_player_tizen.h

index 777655d..5fa4653 100644 (file)
@@ -10,7 +10,7 @@
 #include "cc/cc_export.h"
 
 #if defined(TIZEN_VIDEO_HOLE)
-#include "base/callback.h"
+#include "base/functional/callback.h"
 
 namespace gfx {
 class Rect;
index 2782f06..889534c 100644 (file)
@@ -2518,7 +2518,7 @@ source_set("browser") {
     ]
   }
 
-  if (is_linux || is_tizen) {
+  if (is_linux) {
     sources += [ "speech/tts_linux.cc" ]
     deps += [
       "//third_party/speech-dispatcher",
index 4290641..94d5a94 100644 (file)
@@ -90,7 +90,8 @@ std::unique_ptr<media::Demuxer> ContentRendererClient::OverrideDemuxerForUrl(
     blink::WebLocalFrame* frame = render_frame->GetWebFrame();
     return std::make_unique<media::MediaUrlDemuxer>(
         task_runner, url, frame->GetDocument().SiteForCookies(),
-        frame->GetDocument().TopFrameOrigin(), true, false);
+        frame->GetDocument().TopFrameOrigin(),
+        frame->GetDocument().HasStorageAccess(), true, false);
   }
 #endif
   return nullptr;
index 09066c0..2660465 100644 (file)
@@ -1015,7 +1015,7 @@ void PipelineImpl::RendererWrapper::OnRequestSuspend() {
 void PipelineImpl::RendererWrapper::OnRequestSeek(base::TimeDelta time) {
   LOG(INFO) << __func__ << " time:" << time;
 
-  if (!media_task_runner_->BelongsToCurrentThread()) {
+  if (!media_task_runner_->RunsTasksInCurrentSequence()) {
     media_task_runner_->PostTask(
         FROM_HERE,
         base::BindOnce(&media::PipelineImpl::RendererWrapper::OnRequestSeek,
index 87221ba..830c7a1 100644 (file)
@@ -311,13 +311,12 @@ struct VideoCaptureParams {
   ResolutionChangePolicy resolution_change_policy;
   PowerLineFrequency power_line_frequency;
   bool enable_face_detection;
+  [EnableIf=tizen_multimedia]
+  bool lazy_start;
 
   // TODO(https://crbug.com/1412589): remove this once HiDPI is enabled for
   // all video capture sessions.
   [MinVersion=1] bool is_high_dpi_enabled;
-
-  [EnableIf=tizen_multimedia]
-  bool lazy_start;
 };
 
 [Stable, RenamedFrom="media.mojom.VideoFrameFeedback"]
index f2c8cf2..f4b26f7 100644 (file)
@@ -98,7 +98,7 @@ void MojoDemuxerStreamImpl::OnBufferReady(
   if (status == Status::kNeedBuffer) {
     LOG(INFO) << __func__ << " (" << media::DemuxerStream::GetTypeName(stream_->type())
               << ") kNeedBuffer!";
-    std::move(callback).Run(Status::kNeedBuffer, mojom::DecoderBufferPtr(),
+    std::move(callback).Run(Status::kNeedBuffer, {},
                             audio_config, video_config);
     return;
   }
index 01bfc60..8c6c672 100644 (file)
@@ -187,7 +187,7 @@ void MojoRenderer::Flush(base::OnceClosure flush_cb) {
 #if defined(TIZEN_MULTIMEDIA)
 void MojoRenderer::Seek(base::TimeDelta time, base::OnceClosure seek_cb) {
   DVLOG(2) << __func__ << "(" << time << ")";
-  DCHECK(task_runner_->BelongsToCurrentThread());
+  DCHECK(task_runner_->RunsTasksInCurrentSequence());
   DCHECK(seek_cb);
 
   if (encountered_error_) {
@@ -202,7 +202,7 @@ void MojoRenderer::Seek(base::TimeDelta time, base::OnceClosure seek_cb) {
 
 void MojoRenderer::Suspend() {
   DVLOG(2) << __func__;
-  DCHECK(task_runner_->BelongsToCurrentThread());
+  DCHECK(task_runner_->RunsTasksInCurrentSequence());
 
   remote_renderer_->Suspend();
 }
@@ -433,7 +433,7 @@ void MojoRenderer::OnRequestSeek(base::TimeDelta time) {
 
 void MojoRenderer::OnSeekCompleted() {
   DVLOG(1) << __func__;
-  DCHECK(task_runner_->BelongsToCurrentThread());
+  DCHECK(task_runner_->RunsTasksInCurrentSequence());
   DCHECK(seek_cb_);
 
   std::move(seek_cb_).Run();
index 4dd4ebd..93abe9e 100644 (file)
@@ -35,7 +35,7 @@ interface MediaPlayerRendererClientExtension {
                       uint32 width,
                       uint32 height);
 
-  [EnableIf=tizen_multimedia]
+  [EnableIf=tizen_tbm_support]
   OnNewTbmFrameAvailable(uint32 playerId,
                          gfx.mojom.TbmBufferHandle tbm_buffer_handle,
                          mojo_base.mojom.TimeDelta timestamp);
@@ -54,7 +54,7 @@ interface MediaPlayerRendererExtension {
   InitiateScopedSurfaceRequest()
       => (mojo_base.mojom.UnguessableToken request_token);
 
-  [EnableIf=tizen_multimedia]
+  [EnableIf=tizen_tbm_support]
   OnTbmBufferExhausted(gfx.mojom.TbmBufferHandle tbm_buffer_handle);
 };
 
index e6504b5..173f977 100644 (file)
@@ -117,7 +117,7 @@ void MojoDemuxerStreamAdapter::OnBufferReady(
 
 #if defined(TIZEN_MULTIMEDIA)
   if (status == kNeedBuffer) {
-    std::move(read_cb_).Run(kNeedBuffer, nullptr);
+    std::move(read_cb_).Run(kNeedBuffer, {});
     return;
   }
 #endif
index 2e5f8c1..c75b160 100644 (file)
 #endif
 
 #if defined(TIZEN_VIDEO_HOLE)
+#include "cc/base/math_util.h"
+
 // NSW : Is this necessary?
 namespace {
 const base::TimeDelta kLayerBoundUpdateInterval = base::Milliseconds(50);
@@ -536,7 +538,7 @@ WebMediaPlayerImpl::WebMediaPlayerImpl(
         base::BindOnce(
             &VideoFrameCompositor::SetDrawableContentRectChangedCallback,
             base::Unretained(compositor_.get()),
-            media::BindToCurrentLoop(base::BindRepeating(
+            base::BindPostTaskToCurrentDefault(base::BindRepeating(
                 &WebMediaPlayerImpl::OnDrawableContentRectChanged,
                 weak_this_))));
   }
@@ -850,16 +852,6 @@ void WebMediaPlayerImpl::DoLoad(LoadType load_type,
   demuxer_manager_->SetLoadedUrl(GURL(url));
   load_type_ = load_type;
 
-#if defined(TIZEN_MULTIMEDIA)
-  // |MediaUrlDemuxer| will be created if |IsHbbTV| function returns true. In
-  // this case, |demuxer_override_| is not null. (i.e, |demuxer_override_| is
-  // allocated only for hbbtv case.) Even if hbbtv case, default MM path should
-  // be used for MSE contents. Only ME HbbTV contents will use
-  // |MediaUrlDemuxer| according to this condition.
-  if (demuxer_override_ && load_type != kLoadTypeURL)
-    demuxer_override_.release();
-#endif
-
   ReportMetrics(load_type, demuxer_manager_->LoadedUrl(), media_log_.get());
 
   // Set subresource URL for crash reporting; will be truncated to 256 bytes.
@@ -2176,7 +2168,7 @@ bool WebMediaPlayerImpl::CanPlayThrough() {
   if (GetDemuxerType() == media::DemuxerType::kChunkDemuxer)
     return true;
 #if defined(TIZEN_MULTIMEDIA)
-  if (demuxer_->GetType() == media::MediaResource::Type::URL) {
+  if (GetDemuxerType() == media::DemuxerType::kMediaUrlDemuxer) {
     // TODO : Need to check buffered status
     return true;
   }
index 854dc40..2385d52 100755 (executable)
@@ -234,10 +234,10 @@ add_tizen_flags() {
                                use_atk=false
                               "
   fi
-  ADDITIONAL_GN_PARAMETERS+="tizen_multimedia=false
+  ADDITIONAL_GN_PARAMETERS+="tizen_multimedia=true
                              proprietary_codecs=true
-                             tizen_audio_io=false
-                             tizen_web_speech_recognition=false
+                             tizen_audio_io=true
+                             tizen_web_speech_recognition=true
                              tizen_tbm_support=false
                             "
 
@@ -248,7 +248,7 @@ add_tizen_flags() {
 
   # Enable video hole only for standard and TV profile
   if [ \( "$tizen_product_tv" == "true" \) -o \( "$tizen_product_da" != "true" -a "$tizen_emulator_support" != "true" \) ]; then
-    ADDITIONAL_GN_PARAMETERS+="tizen_video_hole=false
+    ADDITIONAL_GN_PARAMETERS+="tizen_video_hole=true
                               "
   else
     ADDITIONAL_GN_PARAMETERS+="tizen_video_hole=false
index 522c6a2..f74e949 100644 (file)
@@ -18,7 +18,6 @@
 #include "content/public/browser/web_contents.h"
 #include "content/public/common/content_client.h"
 #include "media/base/audio_decoder_config.h"
-#include "media/base/bind_to_current_loop.h"
 #include "media/base/media_resource.h"
 #include "media/base/media_switches.h"
 #include "media/base/renderer_client.h"
@@ -230,14 +229,14 @@ void TizenRendererImpl::Initialize(media::MediaResource* media_resource,
   init_cb_ = std::move(init_cb);
   media_resource_ = media_resource;
 
-  if (media_resource_->GetType() == media::MediaResource::STREAM) {
+  if (media_resource_->GetType() == media::MediaResource::Type::kStream) {
 #if BUILDFLAG(IS_TIZEN_TV)
     media_player_ = std::make_unique<media::MediaPlayerESPlusPlayerTV>();
 #else
     media_player_ = std::make_unique<media::MediaPlayerESPlusPlayer>();
 #endif
   } else {
-    // When the type is media::MediaResource::URL
+    // When the type is media::MediaResource::Type::KUrl
     std::string user_agent;
     if (web_contents_) {
       user_agent = web_contents_->GetUserAgentOverride().ua_string_override;
@@ -273,7 +272,7 @@ void TizenRendererImpl::Initialize(media::MediaResource* media_resource,
 }
 
 void TizenRendererImpl::SetStreamInfo() {
-  if (media_resource_->GetType() == media::MediaResource::URL) {
+  if (media_resource_->GetType() == media::MediaResource::Type::KUrl) {
     video_renderer_client_ = std::make_unique<RendererClientInternal>(
         media::DemuxerStream::VIDEO, this);
     media_player_->SetStreamInfo(media::DemuxerStream::VIDEO, 0,
@@ -505,6 +504,10 @@ base::TimeDelta TizenRendererImpl::GetMediaTime() {
   return media_player_->GetCurrentTime();
 }
 
+media::RendererType TizenRendererImpl::GetRendererType() {
+  return media::RendererType::kMediaPlayer;
+}
+
 void TizenRendererImpl::OnSelectedVideoTracksChanged(
     const std::vector<media::DemuxerStream*>& enabled_tracks,
     base::OnceClosure change_completed_cb) {
index 532b99d..7776601 100644 (file)
@@ -72,6 +72,7 @@ class CONTENT_EXPORT TizenRendererImpl
   void SetPlaybackRate(double playback_rate) override;
   void SetVolume(float volume) override;
   base::TimeDelta GetMediaTime() override;
+  media::RendererType GetRendererType() override;
   void OnSelectedVideoTracksChanged(
       const std::vector<media::DemuxerStream*>& enabled_tracks,
       base::OnceClosure change_completed_cb) override;
index 0dce79a..05fa3e2 100644 (file)
@@ -14,7 +14,7 @@ namespace content {
 MediaPlayerRendererClient::MediaPlayerRendererClient(
     mojo::PendingRemote<RendererExtention> renderer_extension_remote,
     mojo::PendingReceiver<ClientExtention> client_extension_receiver,
-    scoped_refptr<base::SingleThreadTaskRunner> media_task_runner,
+    scoped_refptr<base::SequencedTaskRunner> media_task_runner,
     scoped_refptr<base::SingleThreadTaskRunner> compositor_task_runner,
     std::unique_ptr<media::MojoRenderer> mojo_renderer,
     media::VideoRendererSink* sink)
@@ -39,7 +39,7 @@ void MediaPlayerRendererClient::Initialize(
     media::MediaResource* media_resource,
     media::RendererClient* client,
     media::PipelineStatusCallback init_cb) {
-  DCHECK(media_task_runner_->BelongsToCurrentThread());
+  DCHECK(media_task_runner_->RunsTasksInCurrentSequence());
   DCHECK(!init_cb_);
 
   // Consume and bind the delayed PendingRemote and PendingReceiver now that we
@@ -59,6 +59,10 @@ void MediaPlayerRendererClient::Initialize(
                      weak_factory_.GetWeakPtr()));
 }
 
+media::RendererType MediaPlayerRendererClient::GetRendererType() {
+  return media::RendererType::kMediaPlayer;
+}
+
 #if defined(TIZEN_VIDEO_HOLE)
 void MediaPlayerRendererClient::SetVideoHole(bool is_video_hole) {
   is_video_hole_ = is_video_hole;
@@ -72,7 +76,7 @@ void MediaPlayerRendererClient::SetMediaGeometry(const gfx::RectF& rect) {
 
 void MediaPlayerRendererClient::OnRemoteRendererInitialized(
     media::PipelineStatus status) {
-  DCHECK(media_task_runner_->BelongsToCurrentThread());
+  DCHECK(media_task_runner_->RunsTasksInCurrentSequence());
   DCHECK(!init_cb_.is_null());
 
   if (status == media::PIPELINE_OK) {
@@ -93,7 +97,7 @@ void MediaPlayerRendererClient::OnVideoSizeChange(const gfx::Size& size) {
 }
 
 void MediaPlayerRendererClient::OnDurationChange(base::TimeDelta duration) {
-  DCHECK(media_task_runner_->BelongsToCurrentThread());
+  DCHECK(media_task_runner_->RunsTasksInCurrentSequence());
 
   media_resource_->ForwardDurationChangeToDemuxerHost(duration);
 }
@@ -140,7 +144,7 @@ void MediaPlayerRendererClient::OnNewFrameAvailable(
 
 #if defined(TIZEN_MULTIMEDIA)
 void MediaPlayerRendererClient::OnBufferUpdate(base::TimeDelta time) {
-  DCHECK(media_task_runner_->BelongsToCurrentThread());
+  DCHECK(media_task_runner_->RunsTasksInCurrentSequence());
   media_resource_->ForwardBufferUpdateToDemuxerHost(time);
 }
 #endif
index 8cceb5d..9dcbd90 100644 (file)
@@ -44,7 +44,7 @@ class CONTENT_EXPORT MediaPlayerRendererClient
   MediaPlayerRendererClient(
       mojo::PendingRemote<RendererExtention> renderer_extension_remote,
       mojo::PendingReceiver<ClientExtention> client_extension_receiver,
-      scoped_refptr<base::SingleThreadTaskRunner> media_task_runner,
+      scoped_refptr<base::SequencedTaskRunner> media_task_runner,
       scoped_refptr<base::SingleThreadTaskRunner> compositor_task_runner,
       std::unique_ptr<media::MojoRenderer> mojo_renderer,
       media::VideoRendererSink* sink);
@@ -60,6 +60,7 @@ class CONTENT_EXPORT MediaPlayerRendererClient
   void Initialize(media::MediaResource* media_resource,
                   media::RendererClient* client,
                   media::PipelineStatusCallback init_cb) override;
+  media::RendererType GetRendererType() override;
 
 #if defined(TIZEN_VIDEO_HOLE)
   void SetVideoHole(bool is_video_hole) override;
@@ -102,7 +103,7 @@ class CONTENT_EXPORT MediaPlayerRendererClient
 
   media::VideoRendererSink* sink_;
 
-  scoped_refptr<base::SingleThreadTaskRunner> media_task_runner_;
+  scoped_refptr<base::SequencedTaskRunner> media_task_runner_;
 
   // VideoFrames to |sink_| on the right thread.
   scoped_refptr<base::SingleThreadTaskRunner> compositor_task_runner_;
index 8519ca7..2c93df8 100644 (file)
@@ -21,7 +21,7 @@ MediaPlayerRendererClientFactory::~MediaPlayerRendererClientFactory() {}
 
 std::unique_ptr<media::Renderer>
 MediaPlayerRendererClientFactory::CreateRenderer(
-    const scoped_refptr<base::SingleThreadTaskRunner>& media_task_runner,
+    const scoped_refptr<base::SequencedTaskRunner>& media_task_runner,
     const scoped_refptr<base::TaskRunner>& worker_task_runner,
     media::AudioRendererSink* audio_renderer_sink,
     media::VideoRendererSink* video_renderer_sink,
index 300df9e..ce49f43 100644 (file)
@@ -30,7 +30,7 @@ class CONTENT_EXPORT MediaPlayerRendererClientFactory
   ~MediaPlayerRendererClientFactory() override;
 
   std::unique_ptr<media::Renderer> CreateRenderer(
-      const scoped_refptr<base::SingleThreadTaskRunner>& media_task_runner,
+      const scoped_refptr<base::SequencedTaskRunner>& media_task_runner,
       const scoped_refptr<base::TaskRunner>& worker_task_runner,
       media::AudioRendererSink* audio_renderer_sink,
       media::VideoRendererSink* video_renderer_sink,
index 93781e5..5cb2ae3 100644 (file)
@@ -113,7 +113,7 @@ void CapiAudioInputStream::OnAudioIOData(std::unique_ptr<AudioBus> audio_bus,
   callback_->OnData(
       audio_bus.get(),
       base::TimeTicks::Now() - base::Seconds(hardware_delay_seconds),
-      normalized_volume);
+      normalized_volume, {});
 }
 
 }  // namespace media
index 062d260..1b7bb2b 100644 (file)
@@ -177,7 +177,7 @@ void CapiAudioOutputStream::WriteAudioData(size_t nbytes) {
     int frames_filled = 0;
     if (source_callback_) {
       frames_filled = source_callback_->OnMoreData(
-          base::TimeDelta(), base::TimeTicks::Now(), 0, audio_bus_.get());
+          base::TimeDelta(), base::TimeTicks::Now(), {}, audio_bus_.get());
     }
 
     memset(buffer_, 0, bytes_to_fill);
index 7d46b37..ea0945b 100644 (file)
@@ -8,6 +8,7 @@
 #include "device/udev_linux/scoped_udev.h"
 #include "device/udev_linux/udev.h"
 #include "media/capture/video/tizen/video_capture_device_tizen.h"
+#include "tizen_src/chromium_impl/build/tizen_version.h"
 
 namespace {
 
index b487dea..9d96879 100644 (file)
@@ -748,7 +748,9 @@ void MediaPlayerESPlusPlayer::ReadBuffer(DemuxerStream::Type type) {
     return;
 
   SetReadRequested(type, true);
-  GetDemuxerStream(type)->Read(
+  uint32_t buffer_read_count = 1;
+  // TODO: Set correct buffer read count.
+  GetDemuxerStream(type)->Read(buffer_read_count,
       base::BindOnce(&MediaPlayerESPlusPlayer::OnBufferReady,
                      weak_factory_.GetWeakPtr(), type));
 }
@@ -764,7 +766,7 @@ void MediaPlayerESPlusPlayer::PostReadBuffer(DemuxerStream::Type type) {
 void MediaPlayerESPlusPlayer::OnBufferReady(
     DemuxerStream::Type type,
     DemuxerStream::Status status,
-    scoped_refptr<DecoderBuffer> buffer) {
+    DemuxerStream::DecoderBufferVector buffers) {
   bool should_delay_read = false;
   switch (status) {
     case DemuxerStream::kAborted:
@@ -780,7 +782,7 @@ void MediaPlayerESPlusPlayer::OnBufferReady(
       InitializeStreamConfig(type);
       break;
     case DemuxerStream::kOk: {
-      GetBufferQueue(type).push_back(buffer);
+      GetBufferQueue(type).push_back(buffers[0]);
       break;
     }
   }
index 0718057..d4c70ff 100644 (file)
@@ -148,7 +148,7 @@ class MEDIA_EXPORT MediaPlayerESPlusPlayer : public MediaPlayerTizen {
   void PostReadBuffer(DemuxerStream::Type type);
   void OnBufferReady(DemuxerStream::Type type,
                      DemuxerStream::Status status,
-                     scoped_refptr<DecoderBuffer> buffer);
+                     DemuxerStream::DecoderBufferVector buffer);
   esplusplayer_submit_status SubmitEosPacket(DemuxerStream::Type type);
 
   void SeekInternal(base::TimeDelta time);
index 27345c0..2d9c838 100644 (file)
@@ -5,6 +5,7 @@
 #ifndef MEDIA_MEDIA_PLAYER_TIZEN_H_
 #define MEDIA_MEDIA_PLAYER_TIZEN_H_
 
+#include "base/memory/unsafe_shared_memory_region.h"
 #include "base/task/single_thread_task_runner.h"
 #include "media/base/demuxer_stream.h"
 #include "media/filters/flags.h"