Revert "Remove RTPVideoHeader::h264() accessors."
This reverts commit dfbced6504720d2c0807d7b92798eb80ba3f8be9.
Reason for revert: Crashes when making a video call.
#9 0x00000001043dd8d8 in webrtc::RTPVideoHeaderH264& absl::variant_internal::TypedThrowBadVariantAccess<webrtc::RTPVideoHeaderH264&>() at /third_party/absl/types/internal/variant.h:315
#10 0x00000001043dd8ac in absl::variant_internal::VariantAccessResultImpl<2ul, absl::variant<webrtc::RTPVideoHeaderVP8, webrtc::RTPVideoHeaderVP9, webrtc::RTPVideoHeaderH264>&&&>::type absl::variant_internal::VariantCoreAccess::CheckedAccess<2ul, absl::variant<webrtc::RTPVideoHeaderVP8, webrtc::RTPVideoHeaderVP9, webrtc::RTPVideoHeaderH264>&>(absl::variant<webrtc::RTPVideoHeaderVP8, webrtc::RTPVideoHeaderVP9, webrtc::RTPVideoHeaderH264>&&&) at /third_party/absl/types/internal/variant.h:597
#11 0x00000001043db778 in webrtc::RTPVideoHeaderH264& absl::get<webrtc::RTPVideoHeaderH264, webrtc::RTPVideoHeaderVP8, webrtc::RTPVideoHeaderVP9, webrtc::RTPVideoHeaderH264>(absl::variant<webrtc::RTPVideoHeaderVP8, webrtc::RTPVideoHeaderVP9, webrtc::RTPVideoHeaderH264>&) at /third_party/absl/types/variant.h:299
#12 0x0000000104558bcc in webrtc::RtpPacketizer::Create(webrtc::VideoCodecType, unsigned long, unsigned long, webrtc::RTPVideoHeader const*, webrtc::FrameType) at webrtc/modules/rtp_rtcp/source/rtp_format.cc:30
Original change's description:
> Remove RTPVideoHeader::h264() accessors.
>
> Bug: none
> Change-Id: I043bcaf358575688b223bc3631506e148b47fd58
> Reviewed-on: https://webrtc-review.googlesource.com/88220
> Reviewed-by: Stefan Holmer <stefan@webrtc.org>
> Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
> Commit-Queue: Philip Eliasson <philipel@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#23971}
TBR=danilchap@webrtc.org,stefan@webrtc.org,philipel@webrtc.org
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: none
Change-Id: If99bcabdfe3cae7094f24e407bbe2f47233e46e3
Reviewed-on: https://webrtc-review.googlesource.com/88820
Commit-Queue: JT Teh <jtteh@webrtc.org>
Reviewed-by: Zeke Chin <tkchin@webrtc.org>
Reviewed-by: JT Teh <jtteh@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23993}
diff --git a/modules/video_coding/packet_buffer.cc b/modules/video_coding/packet_buffer.cc
index e1172b3..28ade46 100644
--- a/modules/video_coding/packet_buffer.cc
+++ b/modules/video_coding/packet_buffer.cc
@@ -303,17 +303,18 @@
break;
if (is_h264 && !is_h264_keyframe) {
- const auto* h264_header = absl::get_if<RTPVideoHeaderH264>(
- &data_buffer_[start_index].video_header.video_type_header);
- if (!h264_header || h264_header->nalus_length >= kMaxNalusPerPacket)
+ const RTPVideoHeaderH264& header =
+ data_buffer_[start_index].video_header.h264();
+
+ if (header.nalus_length >= kMaxNalusPerPacket)
return found_frames;
- for (size_t j = 0; j < h264_header->nalus_length; ++j) {
- if (h264_header->nalus[j].type == H264::NaluType::kSps) {
+ for (size_t j = 0; j < header.nalus_length; ++j) {
+ if (header.nalus[j].type == H264::NaluType::kSps) {
has_h264_sps = true;
- } else if (h264_header->nalus[j].type == H264::NaluType::kPps) {
+ } else if (header.nalus[j].type == H264::NaluType::kPps) {
has_h264_pps = true;
- } else if (h264_header->nalus[j].type == H264::NaluType::kIdr) {
+ } else if (header.nalus[j].type == H264::NaluType::kIdr) {
has_h264_idr = true;
}
}