From 08cba5ce9d91575d10a867e741d43ae7fcfade13 Mon Sep 17 00:00:00 2001 From: "zhishun.zhou" Date: Tue, 24 Oct 2023 11:53:48 +0800 Subject: [PATCH] [M120 Migration] Fixup! [WebRTC] Add TizenEsPlusPlayerRendererManager Implementation When stop capture, a EOS frame deliver through MediaStreamVideoTrack. Because EOS frame has no timestamp and empty size, use it to create black frame or compute framerate could cause crash. refer to: https://review.tizen.org/gerrit/#/c/300405/ Change-Id: I7d2fc3bf96e3c9ea663309d8f78d96e821d0105c Signed-off-by: zhishun.zhou --- .../blink/renderer/modules/mediastream/media_stream_video_track.cc | 2 +- third_party/blink/renderer/modules/mediastream/video_track_adapter.cc | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/third_party/blink/renderer/modules/mediastream/media_stream_video_track.cc b/third_party/blink/renderer/modules/mediastream/media_stream_video_track.cc index 84db0f2..dfabc7a 100644 --- a/third_party/blink/renderer/modules/mediastream/media_stream_video_track.cc +++ b/third_party/blink/renderer/modules/mediastream/media_stream_video_track.cc @@ -602,7 +602,7 @@ void MediaStreamVideoTrack::FrameDeliverer::DeliverFrameOnVideoTaskRunner( kVideoTrackFrameDelivererNotEnabledReplacingWithBlackFrame); } scoped_refptr video_frame; - if (enabled_) { + if (enabled_ || frame->metadata().end_of_stream) { video_frame = std::move(frame); ++deliverable_frames_; } else { diff --git a/third_party/blink/renderer/modules/mediastream/video_track_adapter.cc b/third_party/blink/renderer/modules/mediastream/video_track_adapter.cc index c9d4d07..e8f03c2 100644 --- a/third_party/blink/renderer/modules/mediastream/video_track_adapter.cc +++ b/third_party/blink/renderer/modules/mediastream/video_track_adapter.cc @@ -23,6 +23,7 @@ #include "base/trace_event/trace_event.h" #include "build/build_config.h" #include "media/base/limits.h" +#include "media/base/timestamp_constants.h" #include "media/base/video_util.h" #include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/blink/public/common/features.h" @@ -88,6 +89,9 @@ int ClampToValidDimension(int dimension) { void ComputeFrameRate(const base::TimeDelta& frame_timestamp, double* frame_rate, base::TimeDelta* prev_frame_timestamp) { + if (frame_timestamp == media::kNoTimestamp) + return; + const double delta_ms = (frame_timestamp - *prev_frame_timestamp).InMillisecondsF(); *prev_frame_timestamp = frame_timestamp; -- 2.7.4