[webkit-changes] [WebKit/WebKit] 962e56: RTCVideoDecoderH264 should report its last availab...

youennf noreply at github.com
Thu Dec 5 00:59:32 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 962e5662e70457538eec16f37e7dea326311c4df
      https://github.com/WebKit/WebKit/commit/962e5662e70457538eec16f37e7dea326311c4df
  Author: Youenn Fablet <youenn at apple.com>
  Date:   2024-12-05 (Thu, 05 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/287389@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