[webkit-changes] [WebKit/WebKit] 93eb48: WebRTC HEVC RFC 7798 RTP Payload Format Implementa...

Sun Shin noreply at github.com
Wed Sep 6 09:48:39 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 93eb48d39b70248c062e90fceb4630a312e46b0d
      https://github.com/WebKit/WebKit/commit/93eb48d39b70248c062e90fceb4630a312e46b0d
  Author: Byungseon(Sun) Shin <sun.shin at webkit.org>
  Date:   2023-09-06 (Wed, 06 Sep 2023)

  Changed paths:
    M Source/ThirdParty/libwebrtc/Configurations/libwebrtc.xcconfig
    M Source/ThirdParty/libwebrtc/Source/webrtc/api/video/video_codec_type.h
    M Source/ThirdParty/libwebrtc/Source/webrtc/api/video_codecs/video_codec.cc
    M Source/ThirdParty/libwebrtc/Source/webrtc/api/video_codecs/video_codec.h
    M Source/ThirdParty/libwebrtc/Source/webrtc/api/video_codecs/video_decoder_software_fallback_wrapper.cc
    M Source/ThirdParty/libwebrtc/Source/webrtc/api/video_codecs/video_encoder.cc
    M Source/ThirdParty/libwebrtc/Source/webrtc/api/video_codecs/video_encoder.h
    M Source/ThirdParty/libwebrtc/Source/webrtc/call/rtp_payload_params.cc
    M Source/ThirdParty/libwebrtc/Source/webrtc/common_video/h265/h265_common.cc
    M Source/ThirdParty/libwebrtc/Source/webrtc/common_video/h265/h265_common.h
    M Source/ThirdParty/libwebrtc/Source/webrtc/common_video/h265/h265_pps_parser.cc
    M Source/ThirdParty/libwebrtc/Source/webrtc/common_video/h265/h265_pps_parser.h
    M Source/ThirdParty/libwebrtc/Source/webrtc/common_video/h265/h265_sps_parser.cc
    M Source/ThirdParty/libwebrtc/Source/webrtc/common_video/h265/h265_sps_parser.h
    M Source/ThirdParty/libwebrtc/Source/webrtc/common_video/h265/h265_vps_parser.cc
    M Source/ThirdParty/libwebrtc/Source/webrtc/common_video/h265/h265_vps_parser.h
    M Source/ThirdParty/libwebrtc/Source/webrtc/logging/rtc_event_log/rtc_event_log_parser.cc
    M Source/ThirdParty/libwebrtc/Source/webrtc/media/base/media_constants.cc
    M Source/ThirdParty/libwebrtc/Source/webrtc/media/base/media_constants.h
    M Source/ThirdParty/libwebrtc/Source/webrtc/media/engine/internal_decoder_factory.cc
    M Source/ThirdParty/libwebrtc/Source/webrtc/modules/rtp_rtcp/source/create_video_rtp_depacketizer.cc
    M Source/ThirdParty/libwebrtc/Source/webrtc/modules/rtp_rtcp/source/rtp_format.cc
    M Source/ThirdParty/libwebrtc/Source/webrtc/modules/rtp_rtcp/source/rtp_format_h265.cc
    M Source/ThirdParty/libwebrtc/Source/webrtc/modules/rtp_rtcp/source/rtp_format_h265.h
    M Source/ThirdParty/libwebrtc/Source/webrtc/modules/rtp_rtcp/source/rtp_sender_video.cc
    M Source/ThirdParty/libwebrtc/Source/webrtc/modules/rtp_rtcp/source/rtp_video_header.h
    A Source/ThirdParty/libwebrtc/Source/webrtc/modules/rtp_rtcp/source/video_rtp_depacketizer_h265.cc
    A Source/ThirdParty/libwebrtc/Source/webrtc/modules/rtp_rtcp/source/video_rtp_depacketizer_h265.h
    M Source/ThirdParty/libwebrtc/Source/webrtc/modules/video_coding/codecs/h265/include/h265_globals.h
    M Source/ThirdParty/libwebrtc/Source/webrtc/modules/video_coding/encoded_frame.cc
    M Source/ThirdParty/libwebrtc/Source/webrtc/modules/video_coding/h265_vps_sps_pps_tracker.cc
    M Source/ThirdParty/libwebrtc/Source/webrtc/modules/video_coding/h265_vps_sps_pps_tracker.h
    M Source/ThirdParty/libwebrtc/Source/webrtc/modules/video_coding/include/video_codec_interface.h
    M Source/ThirdParty/libwebrtc/Source/webrtc/modules/video_coding/packet_buffer.cc
    M Source/ThirdParty/libwebrtc/Source/webrtc/rtc_base/experiments/min_video_bitrate_experiment.cc
    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
    M Source/ThirdParty/libwebrtc/Source/webrtc/test/scenario/video_stream.cc
    M Source/ThirdParty/libwebrtc/Source/webrtc/test/video_codec_settings.h
    M Source/ThirdParty/libwebrtc/Source/webrtc/video/config/video_encoder_config.cc
    M Source/ThirdParty/libwebrtc/Source/webrtc/video/config/video_encoder_config.h
    M Source/ThirdParty/libwebrtc/Source/webrtc/video/encoder_overshoot_detector.cc
    M Source/ThirdParty/libwebrtc/Source/webrtc/video/rtp_video_stream_receiver2.cc
    M Source/ThirdParty/libwebrtc/Source/webrtc/video/rtp_video_stream_receiver2.h
    M Source/ThirdParty/libwebrtc/Source/webrtc/video/send_statistics_proxy.cc
    M Source/ThirdParty/libwebrtc/Source/webrtc/video/video_stream_encoder.cc
    M Source/ThirdParty/libwebrtc/libwebrtc.xcodeproj/project.pbxproj

  Log Message:
  -----------
  WebRTC HEVC RFC 7798 RTP Payload Format Implementation
https://bugs.webkit.org/show_bug.cgi?id=258794

Reviewed by Youenn Fablet.

The current WebRTC HEVC is using generic packetization instead of RFC 7789 Packetization.
So this is about implementing the RFC 7798 Packetization.

Fix HEVC depacketizer issues. (#185)
Enalbing low latency mode for RTC (#169)
Enable HEVC support. (#165)
Fix out-of-bounds write in H265VpsSpsPpsTracker (#163)
Apply fix bitstream logic to RtpVideoStreamReceiver2 (#142)
Add missing CODEC_H265 switch case (#136)
Add HEVC support for iOS/Android (#68)
H265 packetization_mode setting fix (#53)
Add H.265 QP parsing logic (#47)

This patch is extracted from following Open WebRTC Toolkit code changes:
<https://github.com/open-webrtc-toolkit/owt-deps-webrtc/pull/185>
<https://github.com/open-webrtc-toolkit/owt-deps-webrtc/pull/169>
<https://github.com/open-webrtc-toolkit/owt-deps-webrtc/pull/165>
<https://github.com/open-webrtc-toolkit/owt-deps-webrtc/pull/163>
<https://github.com/open-webrtc-toolkit/owt-deps-webrtc/pull/142>
<https://github.com/open-webrtc-toolkit/owt-deps-webrtc/pull/136>
<https://github.com/open-webrtc-toolkit/owt-deps-webrtc/pull/68>
<https://github.com/open-webrtc-toolkit/owt-deps-webrtc/pull/53>
<https://github.com/open-webrtc-toolkit/owt-deps-webrtc/pull/47>

co-authoured by:
taste1981 <jianlin.qiu at intel.com>
jianjunz <jianjun.zhu at intel.com>
Cyril Lashkevich <notorca at gmail.com>
Piasy <xz4215 at gmail.com>
ShiJinCheng <874042641 at qq.com>
Andreas Unterhuber <andreas.unterhuber at keepinmind.info>
dong-heun <63987238+dong-heun at users.noreply.github.com>

* Source/ThirdParty/libwebrtc/Configurations/libwebrtc.xcconfig:
* Source/ThirdParty/libwebrtc/Source/webrtc/api/video/video_codec_type.h:
* Source/ThirdParty/libwebrtc/Source/webrtc/api/video_codecs/video_codec.cc:
* Source/ThirdParty/libwebrtc/Source/webrtc/api/video_codecs/video_codec.h:
(webrtc::VideoCodecH265::operator!= const):
* Source/ThirdParty/libwebrtc/Source/webrtc/api/video_codecs/video_decoder_software_fallback_wrapper.cc:
* Source/ThirdParty/libwebrtc/Source/webrtc/api/video_codecs/video_encoder.cc:
* Source/ThirdParty/libwebrtc/Source/webrtc/api/video_codecs/video_encoder.h:
* Source/ThirdParty/libwebrtc/Source/webrtc/call/rtp_payload_params.cc:
* Source/ThirdParty/libwebrtc/Source/webrtc/common_video/h265/h265_common.cc:
* Source/ThirdParty/libwebrtc/Source/webrtc/common_video/h265/h265_common.h:
* Source/ThirdParty/libwebrtc/Source/webrtc/common_video/h265/h265_pps_parser.cc:
* Source/ThirdParty/libwebrtc/Source/webrtc/common_video/h265/h265_pps_parser.h:
* Source/ThirdParty/libwebrtc/Source/webrtc/common_video/h265/h265_sps_parser.cc:
* Source/ThirdParty/libwebrtc/Source/webrtc/common_video/h265/h265_sps_parser.h:
* Source/ThirdParty/libwebrtc/Source/webrtc/common_video/h265/h265_vps_parser.cc:
* Source/ThirdParty/libwebrtc/Source/webrtc/common_video/h265/h265_vps_parser.h:
* Source/ThirdParty/libwebrtc/Source/webrtc/logging/rtc_event_log/rtc_event_log_parser.cc:
* Source/ThirdParty/libwebrtc/Source/webrtc/media/base/media_constants.cc:
* Source/ThirdParty/libwebrtc/Source/webrtc/media/base/media_constants.h:
* Source/ThirdParty/libwebrtc/Source/webrtc/media/engine/internal_decoder_factory.cc:
* Source/ThirdParty/libwebrtc/Source/webrtc/modules/rtp_rtcp/source/create_video_rtp_depacketizer.cc:
* Source/ThirdParty/libwebrtc/Source/webrtc/modules/rtp_rtcp/source/rtp_format.cc:
* Source/ThirdParty/libwebrtc/Source/webrtc/modules/rtp_rtcp/source/rtp_format_h265.cc:
* Source/ThirdParty/libwebrtc/Source/webrtc/modules/rtp_rtcp/source/rtp_format_h265.h:
(webrtc::RtpPacketizerH265::PacketUnit::PacketUnit):
(webrtc::VideoRtpDepacketizerH265::~VideoRtpDepacketizerH265): Deleted.
* Source/ThirdParty/libwebrtc/Source/webrtc/modules/rtp_rtcp/source/rtp_sender_video.cc:
* Source/ThirdParty/libwebrtc/Source/webrtc/modules/rtp_rtcp/source/rtp_video_header.h:
* Source/ThirdParty/libwebrtc/Source/webrtc/modules/video_coding/codecs/h265/include/h265_globals.h:
* Source/ThirdParty/libwebrtc/Source/webrtc/modules/video_coding/encoded_frame.cc:
* Source/ThirdParty/libwebrtc/Source/webrtc/modules/video_coding/h265_vps_sps_pps_tracker.cc:
* Source/ThirdParty/libwebrtc/Source/webrtc/modules/video_coding/h265_vps_sps_pps_tracker.h:
* Source/ThirdParty/libwebrtc/Source/webrtc/modules/video_coding/include/video_codec_interface.h:
* Source/ThirdParty/libwebrtc/Source/webrtc/modules/video_coding/packet_buffer.cc:
* Source/ThirdParty/libwebrtc/Source/webrtc/rtc_base/experiments/min_video_bitrate_experiment.cc:
* 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:
* Source/ThirdParty/libwebrtc/Source/webrtc/test/scenario/video_stream.cc:
* Source/ThirdParty/libwebrtc/Source/webrtc/test/video_codec_settings.h:
(webrtc::test::CodecSettings):
* Source/ThirdParty/libwebrtc/Source/webrtc/video/config/video_encoder_config.cc:
* Source/ThirdParty/libwebrtc/Source/webrtc/video/config/video_encoder_config.h:
* Source/ThirdParty/libwebrtc/Source/webrtc/video/encoder_overshoot_detector.cc:
* Source/ThirdParty/libwebrtc/Source/webrtc/video/rtp_video_stream_receiver2.cc:
* Source/ThirdParty/libwebrtc/Source/webrtc/video/rtp_video_stream_receiver2.h:
* Source/ThirdParty/libwebrtc/Source/webrtc/video/send_statistics_proxy.cc:
* Source/ThirdParty/libwebrtc/Source/webrtc/video/video_stream_encoder.cc:
* Source/ThirdParty/libwebrtc/libwebrtc.xcodeproj/project.pbxproj:

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




More information about the webkit-changes mailing list