Bug 258794

Summary: WebRTC HEVC RFC 7798 RTP Payload Format Implementation
Product: WebKit Reporter: Byungseon(Sun) Shin <sun.shin>
Component: WebRTCAssignee: Diego Pino <dpino>
Status: RESOLVED FIXED    
Severity: Normal CC: dibotero, dpino, jaya.allamsetty, sun.shin, webkit-bug-importer, youennf
Priority: P2 Keywords: InRadar
Version: Safari 16   
Hardware: Unspecified   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=204283
https://bugs.webkit.org/show_bug.cgi?id=242921
Bug Depends on:    
Bug Blocks: 263935, 264019, 264021, 264300    

Description Byungseon(Sun) Shin 2023-07-03 00:20:13 PDT
The current WebRTC HEVC is using generic packetization instead of RFC 7789 Packetization.
So this is about implementing the RFC 7798 Packetization.
Comment 1 Byungseon(Sun) Shin 2023-07-03 00:33:11 PDT
Pull request: https://github.com/WebKit/WebKit/pull/15494
Comment 2 Radar WebKit Bug Importer 2023-07-10 00:21:20 PDT
<rdar://problem/112001659>
Comment 3 Byungseon(Sun) Shin 2023-07-25 11:19:54 PDT
Related task in webrtc official repo.
- https://bugs.chromium.org/p/webrtc/issues/detail?id=13485
Comment 4 EWS 2023-09-06 09:48:32 PDT
Committed 267677@main (93eb48d39b70): <https://commits.webkit.org/267677@main>

Reviewed commits have been landed. Closing PR #15494 and removing active labels.
Comment 5 Diego Pino 2023-09-11 02:58:53 PDT
The bot WPE-Linux-64bit-Release-Packaging-Nightly-Ubuntu2004 stopped working after this commit landed.

https://build.webkit.org/#/builders/2/builds/8487/steps/10/logs/stdio

Stderr:

```
In file included from ../../Source/ThirdParty/libwebrtc/Source/third_party/abseil-cpp/absl/types/variant.h:79,
                 from ../../Source/ThirdParty/libwebrtc/Source/webrtc/modules/rtp_rtcp/source/rtp_video_header.h:18,
                 from ../../Source/ThirdParty/libwebrtc/Source/webrtc/modules/video_coding/h265_vps_sps_pps_tracker.h:21,
                 from ../../Source/ThirdParty/libwebrtc/Source/webrtc/modules/video_coding/h265_vps_sps_pps_tracker.cc:10:
../../Source/ThirdParty/libwebrtc/Source/third_party/abseil-cpp/absl/types/internal/variant.h: In instantiation of ‘struct absl::variant_internal::IndexOfMeta<webrtc::RTPVideoHeaderH265, absl::monostate, webrtc::RTPVideoHeaderVP8, webrtc::RTPVideoHeaderVP9, webrtc::RTPVideoHeaderH264, webrtc::RTPVideoHeaderLegacyGeneric>’:
../../Source/ThirdParty/libwebrtc/Source/third_party/abseil-cpp/absl/types/internal/variant.h:788:7:   required by substitution of ‘template<class Expected, class ... Types> using IndexOf = typename absl::variant_internal::IndexOfMeta::type [with Expected = webrtc::RTPVideoHeaderH265; Types = {absl::monostate, webrtc::RTPVideoHeaderVP8, webrtc::RTPVideoHeaderVP9, webrtc::RTPVideoHeaderH264, webrtc::RTPVideoHeaderLegacyGeneric}]’
../../Source/ThirdParty/libwebrtc/Source/third_party/abseil-cpp/absl/types/variant.h:302:47:   required from ‘constexpr T& absl::get(absl::variant<Tail ...>&) [with T = webrtc::RTPVideoHeaderH265; Types = {absl::monostate, webrtc::RTPVideoHeaderVP8, webrtc::RTPVideoHeaderVP9, webrtc::RTPVideoHeaderH264, webrtc::RTPVideoHeaderLegacyGeneric}]’
../../Source/ThirdParty/libwebrtc/Source/webrtc/modules/video_coding/h265_vps_sps_pps_tracker.cc:43:68:   required from here
../../Source/ThirdParty/libwebrtc/Source/third_party/abseil-cpp/absl/types/internal/variant.h:781:53: error: static assertion failed: Attempted to access a variant by specifying a type that does not match any alternative.
  781 |   static_assert(Results::MatchedIndexFromEnd::value != 0,
      |                                               ~~~~~~^~~~
```
Comment 6 Diego Pino 2023-09-11 03:03:22 PDT
Re-opening for pull request https://github.com/webkit/webkit/pull/17646
Comment 7 EWS 2023-09-11 07:34:51 PDT
Committed 267862@main (dc87e7c704ec): <https://commits.webkit.org/267862@main>

Reviewed commits have been landed. Closing PR #17646 and removing active labels.