Fixup! [M130] Set the right fps to espp 38/325338/2
authorwuxiaoliang <xliang.wu@samsung.com>
Mon, 9 Jun 2025 08:29:52 +0000 (16:29 +0800)
committerBot Blink <blinkbot@samsung.com>
Tue, 10 Jun 2025 00:50:41 +0000 (00:50 +0000)
Sometimes, fps get from demuxer is very quickly.
At this moment, shared_state_.renderer is not created yet.
Add delay set fps logic.

Change-Id: I702718a0a592af2b6291876f7cb16d900cc31371
Signed-off-by: wuxiaoliang <xliang.wu@samsung.com>
media/base/pipeline_impl.cc

index 3a706538c20dcbfa484e6cf199cab5dbe74b0300..9cebe07936eca76c50852490f3e45a28eda3659b 100644 (file)
@@ -397,6 +397,9 @@ class PipelineImpl::RendererWrapper final : public DemuxerHost,
   double start_date_{std::numeric_limits<double>::quiet_NaN()};
   std::unique_ptr<DecryptingMediaResource> decrypting_media_resource_{nullptr};
   base::OnceClosure player_destroy_cb_;
+  bool delay_set_fps_ = false;
+  int num_ = 0;
+  int den_ = 0;
 #endif
 
   // Whether we've received the audio/video ended events.
@@ -1246,6 +1249,12 @@ void PipelineImpl::RendererWrapper::OnDemuxerFpsGot(int num, int den) {
   if (shared_state_.renderer) {
     shared_state_.renderer->OnDemuxerFpsGot(num, den);
   }
+  else {
+    LOG(INFO) << "shared_state_.renderer is not created yet";
+    delay_set_fps_ = true;
+    num_ = num;
+    den_ = den;
+  }
 }
 
 void PipelineImpl::RendererWrapper::SetDecryptorHandle(
@@ -2172,6 +2181,13 @@ void PipelineImpl::RendererWrapper::InitializeRenderer(
         WrapCallbackWithTimeoutHandler(
             std::move(done_cb), /*timeout_delay=*/base::Seconds(10),
             base::BindOnce(&OnCallbackTimeout, uma_name)));
+
+#if BUILDFLAG(IS_TIZEN_TV)
+  if(delay_set_fps_){
+    delay_set_fps_ = false;
+    shared_state_.renderer->OnDemuxerFpsGot(num_, den_);
+  }
+#endif
 }
 
 void PipelineImpl::RendererWrapper::DestroyRenderer() {