[webkit-changes] [WebKit/WebKit] aef6a7: WebCodecs remote video encoders get timestamps in ...

youennf noreply at github.com
Tue Feb 27 10:42:16 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: aef6a763596ad4bd9e007a52b373eb1b423e1f84
      https://github.com/WebKit/WebKit/commit/aef6a763596ad4bd9e007a52b373eb1b423e1f84
  Author: Youenn Fablet <youenn at apple.com>
  Date:   2024-02-27 (Tue, 27 Feb 2024)

  Changed paths:
    M Source/WebKit/GPUProcess/webrtc/LibWebRTCCodecsProxy.mm
    M Source/WebKit/WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp

  Log Message:
  -----------
  WebCodecs remote video encoders get timestamps in microseconds and not nanoseconds
rdar://123684436
https://bugs.webkit.org/show_bug.cgi?id=270159

Reviewed by Eric Carlson.

In WebRTC code path, we are getting a microsecond timestamp.
We were converting it to a MediaTime in LibWebRTCCodecs which was then converted back to
a nanosecond timestamp in LibWebRTCCodecsProxy.
A factor of 1000 was applied in LibWebRTCCodecs and handled correctly on LibWebRTCCodecsProxy.

The WebCodecs path is getting a MediaTime directly but without the 1000 factor.
This was causing the timestamps given to WebCodecs encoder to be in microseconds and not nanoseconds.
This can have an impact on encoders in some circumstances.

We fix this by using Seconds/MediaTime routines on WebProcess WebRTC side (this removes the 1000 factor),
and we update LibWebRTCCodecsProxy to do the same.

* Source/WebKit/GPUProcess/webrtc/LibWebRTCCodecsProxy.mm:
(WebKit::LibWebRTCCodecsProxy::encodeFrame):
* Source/WebKit/WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:
(WebKit::LibWebRTCCodecs::encodeFrame):

Canonical link: https://commits.webkit.org/275392@main



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list