[webkit-changes] [WebKit/WebKit] cf345a: [Cocoa] WebCodecs H264 decoder should reorder fram...
youennf
noreply at github.com
Mon Nov 20 23:53:08 PST 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: cf345a7967b324872fb7ff4a173307ddb93101ac
https://github.com/WebKit/WebKit/commit/cf345a7967b324872fb7ff4a173307ddb93101ac
Author: Youenn Fablet <youennf at gmail.com>
Date: 2023-11-20 (Mon, 20 Nov 2023)
Changed paths:
A LayoutTests/http/tests/webcodecs/h264-reordering-expected.txt
A LayoutTests/http/tests/webcodecs/h264-reordering.html
M LayoutTests/platform/glib/TestExpectations
M LayoutTests/platform/mac-wk1/TestExpectations
M Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderH264.mm
M Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderH265.mm
M Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/components/video_codec/nalu_rewriter.cc
M Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/components/video_codec/nalu_rewriter.h
Log Message:
-----------
[Cocoa] WebCodecs H264 decoder should reorder frames according presentation time
https://bugs.webkit.org/show_bug.cgi?id=263901
rdar://117692801
Reviewed by Jean-Yves Avenard.
Add a SPS VUI parser to be able to extract max_num_reorder_frames.
Add an AVC parser to locate the SPS and parse it.
Compute the reorder queue size based on the parsed SPS.
Add a queue in RTCVideoDecoderH264 and reorder based on timestamp.
We will need a follow-up refactoring to pipe memory attribution of these video frames when getting them.
* LayoutTests/http/tests/webcodecs/h264-reordering-expected.txt: Added.
* LayoutTests/http/tests/webcodecs/h264-reordering.html: Added.
* LayoutTests/platform/glib/TestExpectations:
* LayoutTests/platform/mac-wk1/TestExpectations:
* Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderH264.mm:
(RTCFrameDecodeParams::RTCFrameDecodeParams):
(RTCVideoFrameWithOrder::RTCVideoFrameWithOrder):
(RTCVideoFrameWithOrder::~RTCVideoFrameWithOrder):
(RTCVideoFrameWithOrder::take):
(decompressionOutputCallback):
(-[RTCVideoDecoderH264 init]):
(-[RTCVideoDecoderH264 decodeData:size:timeStamp:]):
(-[RTCVideoDecoderH264 setAVCFormat:size:width:height:]):
(-[RTCVideoDecoderH264 flush]):
(-[RTCVideoDecoderH264 processFrame:reorderSize:]):
* Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderH265.mm:
(h265DecompressionOutputCallback):
* Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/components/video_codec/nalu_rewriter.cc:
* Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/components/video_codec/nalu_rewriter.h:
Canonical link: https://commits.webkit.org/271004@main
More information about the webkit-changes
mailing list