commit 6bf1b0362d689dc60f361c883567d26d80651844
parent 0bfa0288ec67b17f74eb439bc6028b317a36f4d9
Author: Dan Baker <dbaker@mozilla.com>
Date: Thu, 23 Oct 2025 16:41:56 -0600
Bug 1995393 - Vendor libwebrtc from e7f1e2356d
Upstream commit: https://webrtc.googlesource.com/src/+/e7f1e2356d2141b1e444e77a8e96916f6a722eb8
Use propagate clock in FrameEncodeMetadataWriter
Bug: webrtc:42223992
Change-Id: I2512099011d5f37a7ab5020079a8da1ca75b7a1b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/404920
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Auto-Submit: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#45362}
Diffstat:
3 files changed, 9 insertions(+), 19 deletions(-)
diff --git a/third_party/libwebrtc/README.mozilla.last-vendor b/third_party/libwebrtc/README.mozilla.last-vendor
@@ -1,4 +1,4 @@
# ./mach python dom/media/webrtc/third_party_build/vendor-libwebrtc.py --from-local /Users/danielbaker/elm/.moz-fast-forward/moz-libwebrtc --commit mozpatches libwebrtc
-libwebrtc updated from /Users/danielbaker/elm/.moz-fast-forward/moz-libwebrtc commit mozpatches on 2025-10-23T22:39:26.209121+00:00.
+libwebrtc updated from /Users/danielbaker/elm/.moz-fast-forward/moz-libwebrtc commit mozpatches on 2025-10-23T22:41:43.265601+00:00.
# base of lastest vendoring
-d242314f3b
+e7f1e2356d
diff --git a/third_party/libwebrtc/video/frame_encode_metadata_writer.cc b/third_party/libwebrtc/video/frame_encode_metadata_writer.cc
@@ -66,19 +66,10 @@ FrameEncodeMetadataWriter::TimingFramesLayerInfo::~TimingFramesLayerInfo() =
default;
FrameEncodeMetadataWriter::FrameEncodeMetadataWriter(
- const Environment& /*env*/,
+ const Environment& env,
EncodedImageCallback* frame_drop_callback)
-// TODO: bugs.webrtc.org/42223992 - Save `Environment` into member and use
-// it to query current time when deprecated constructor is removed.
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
- : FrameEncodeMetadataWriter(frame_drop_callback) {
-}
-#pragma clang diagnostic pop
-
-FrameEncodeMetadataWriter::FrameEncodeMetadataWriter(
- EncodedImageCallback* frame_drop_callback)
- : frame_drop_callback_(frame_drop_callback),
+ : env_(env),
+ frame_drop_callback_(frame_drop_callback),
framerate_fps_(0),
last_timing_frame_time_ms_(-1),
reordered_frames_logged_messages_(0),
@@ -130,7 +121,7 @@ void FrameEncodeMetadataWriter::OnEncodeStarted(const VideoFrame& frame) {
timing_frames_info_.resize(num_spatial_layers_);
FrameMetadata metadata;
metadata.rtp_timestamp = frame.rtp_timestamp();
- metadata.encode_start_time_ms = TimeMillis();
+ metadata.encode_start_time_ms = env_.clock().TimeInMilliseconds();
metadata.ntp_time_ms = frame.ntp_time_ms();
metadata.timestamp_us = frame.timestamp_us();
metadata.rotation = frame.rotation();
@@ -174,7 +165,7 @@ void FrameEncodeMetadataWriter::FillMetadataAndTimingInfo(
std::optional<int64_t> encode_start_ms;
uint8_t timing_flags = VideoSendTiming::kNotTriggered;
- int64_t encode_done_ms = TimeMillis();
+ int64_t encode_done_ms = env_.clock().TimeInMilliseconds();
encode_start_ms =
ExtractEncodeStartTimeAndFillMetadata(simulcast_svc_idx, encoded_image);
@@ -213,7 +204,7 @@ void FrameEncodeMetadataWriter::FillMetadataAndTimingInfo(
// If encode start is not available that means that encoder uses internal
// source. In that case capture timestamp may be from a different clock with a
- // drift relative to TimeMillis(). We can't use it for Timing frames,
+ // drift relative to `env_.clock()`. We can't use it for Timing frames,
// because to being sent in the network capture time required to be less than
// all the other timestamps.
if (encode_start_ms) {
diff --git a/third_party/libwebrtc/video/frame_encode_metadata_writer.h b/third_party/libwebrtc/video/frame_encode_metadata_writer.h
@@ -34,8 +34,6 @@ namespace webrtc {
class FrameEncodeMetadataWriter {
public:
- [[deprecated("bugs.webrtc.org/42223992")]]
- explicit FrameEncodeMetadataWriter(EncodedImageCallback* frame_drop_callback);
FrameEncodeMetadataWriter(const Environment& env,
EncodedImageCallback* frame_drop_callback);
~FrameEncodeMetadataWriter();
@@ -78,6 +76,7 @@ class FrameEncodeMetadataWriter {
std::list<FrameMetadata> frames;
};
+ const Environment env_;
Mutex lock_;
EncodedImageCallback* const frame_drop_callback_;
VideoCodec codec_settings_ RTC_GUARDED_BY(&lock_);