[webkit-changes] [WebKit/WebKit] 6405a4: RTCVideoDecoderH264 should report its last availab...

youennf noreply at github.com
Mon Dec 2 08:16:17 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 6405a44520e519cba686ec5115e8cb87d6f63867
      https://github.com/WebKit/WebKit/commit/6405a44520e519cba686ec5115e8cb87d6f63867
  Author: Youenn Fablet <youenn at apple.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M LayoutTests/http/tests/webcodecs/h264-reordering.html
    M LayoutTests/http/tests/webcodecs/hevc-reordering.html
    M Source/ThirdParty/libwebrtc/Source/webrtc/webkit_sdk/objc/components/video_codec/RTCVideoDecoderH264.mm
    M Source/ThirdParty/libwebrtc/Source/webrtc/webkit_sdk/objc/components/video_codec/RTCVideoDecoderH265.mm
    M Source/ThirdParty/libwebrtc/Source/webrtc/webkit_sdk/objc/components/video_codec/RTCVideoFrameReorderQueue.h
    M Source/ThirdParty/libwebrtc/Source/webrtc/webkit_sdk/objc/components/video_codec/RTCVideoFrameReorderQueue.mm

  Log Message:
  -----------
  RTCVideoDecoderH264 should report its last available frame as not reordered
rdar://140786076
https://bugs.webkit.org/show_bug.cgi?id=283909

Reviewed by Eric Carlson.

RTCVideoDecoderH264 and RTCVideoDecoderH265 were not reporting the last available frame they can send to their client as not reordered.
This made LibWebRTCCodecsProxy not notifying its web page that the decoding task was done in case of reordered content.
This in turn was delaying the GC of the video decoder until the context was stopped.

We update RTCVideoDecoderH264 and RTCVideoDecoderH265 to properly notify LibWebRTCCodecsProxy and we update the tests to check for cases where this would previously fail.

* LayoutTests/http/tests/webcodecs/h264-reordering.html:
* LayoutTests/http/tests/webcodecs/hevc-reordering.html:
* Source/ThirdParty/libwebrtc/Source/webrtc/webkit_sdk/objc/components/video_codec/RTCVideoDecoderH264.mm:
(-[RTCVideoDecoderH264 decodeData:size:timeStamp:]):
(-[RTCVideoDecoderH264 processFrame:reorderSize:]):
* Source/ThirdParty/libwebrtc/Source/webrtc/webkit_sdk/objc/components/video_codec/RTCVideoDecoderH265.mm:
(-[RTCVideoDecoderH265 processFrame:reorderSize:]):
* Source/ThirdParty/libwebrtc/Source/webrtc/webkit_sdk/objc/components/video_codec/RTCVideoFrameReorderQueue.h:
* Source/ThirdParty/libwebrtc/Source/webrtc/webkit_sdk/objc/components/video_codec/RTCVideoFrameReorderQueue.mm:
(webrtc::RTCVideoFrameReorderQueue::takeIfAvailable):

Canonical link: https://commits.webkit.org/287220@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