Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 7c5bf4eb1fe852822e83f03ae251b3298c27551b
      
https://github.com/WebKit/WebKit/commit/7c5bf4eb1fe852822e83f03ae251b3298c27551b
  Author: Youenn Fablet <[email protected]>
  Date:   2026-09-17 (Thu, 17 Sep 2026)

  Changed paths:
    M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
    M Source/WebCore/SourcesCocoa.txt
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    A Source/WebCore/platform/video-codecs/cocoa/GPUVideoEncoder.h
    A Source/WebCore/platform/video-codecs/cocoa/GPUVideoEncoder.mm
    M Source/WebKit/GPUProcess/webrtc/LibWebRTCCodecsProxy.h
    M Source/WebKit/GPUProcess/webrtc/LibWebRTCCodecsProxy.mm
    M Source/WebKit/Scripts/webkit/messages.py
    M Source/WebKit/Shared/RTCNetwork.serialization.in
    R Source/WebKit/Shared/RTCWebKitEncodedFrameInfo.h
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj
    M Source/WebKit/WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp
    M Source/WebKit/WebProcess/GPU/webrtc/LibWebRTCCodecs.h
    M Source/WebKit/WebProcess/GPU/webrtc/LibWebRTCCodecs.messages.in

  Log Message:
  -----------
  Introduce WebRTCVideoEncoder to support WebCore-implemented video encoders in 
LibWebRTCCodecs
rdar://187565001
https://bugs.webkit.org/show_bug.cgi?id=324331

Reviewed by Jean-Yves Avenard.

As a first step towards implementing video encoders in WebCore instead of 
libwebrtc,
we introduce WebRTCVideoEncoder which will either instantiate WebCore or 
libwebrtc encoders.
We introduce a runtime flag to use WebCore encoders, off by default for now.

We update LibWebRTCCodecsProxy to use WebRTCVideoEncoder.
We also update LibWebRTCCodecs::completedEncoding so that it uses a WebCore 
structure instead of a libwebrtc structure.

No change of behavior, covered by existing tests.

* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
* Source/WebCore/SourcesCocoa.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebKit/GPUProcess/webrtc/LibWebRTCCodecsProxy.h:
* Source/WebKit/GPUProcess/webrtc/LibWebRTCCodecsProxy.mm:
(WebKit::LibWebRTCCodecsProxy::stopListeningForIPC):
(WebKit::LibWebRTCCodecsProxy::createEncoder):
(WebKit::LibWebRTCCodecsProxy::releaseEncoder):
(WebKit::LibWebRTCCodecsProxy::initializeEncoder):
(WebKit::LibWebRTCCodecsProxy::encodeFrame):
(WebKit::LibWebRTCCodecsProxy::flushEncoder):
(WebKit::LibWebRTCCodecsProxy::setEncodeRates):
(WebKit::toWebRTCVideoRotation): Deleted.
(WebKit::LibWebRTCCodecsProxy::findEncoder):
* Source/WebKit/Scripts/webkit/messages.py:
(headers_for_type):
* Source/WebKit/Shared/RTCNetwork.serialization.in:
* Source/WebKit/Shared/RTCWebKitEncodedFrameInfo.h: Removed.
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Source/WebKit/WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:
(WebKit::toWebKitEncodedVideoRotation):
(WebKit::toWebKitEncodedFrameInfo):
(WebKit::LibWebRTCCodecs::completedEncoding):
* Source/WebKit/WebProcess/GPU/webrtc/LibWebRTCCodecs.h:
* Source/WebKit/WebProcess/GPU/webrtc/LibWebRTCCodecs.messages.in:
* Source/WebCore/platform/video-codecs/cocoa/GPUVideoEncoder.h: Added.
* Source/WebCore/platform/video-codecs/cocoa/GPUVideoEncoder.mm: Added.
(WebCore::toWebRTCVideoRotation):
(WebCore::fromWebRTCEncodedVideoRotation):
(WebCore::toGPUVideoEncoderFrameInfo):
(WebCore::GPUVideoEncoder::create):

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



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

Reply via email to