ManageFrameH264 for temporal layers (PART 3/3)
Bug: webrtc:10579
Change-Id: Iec54f6b1231d34c2018f22841c3614ddd0b05612
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/86200
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27820}
diff --git a/modules/video_coding/packet_buffer.cc b/modules/video_coding/packet_buffer.cc
index 69e8c17..bd1ab03 100644
--- a/modules/video_coding/packet_buffer.cc
+++ b/modules/video_coding/packet_buffer.cc
@@ -384,10 +384,13 @@
VideoFrameType::kVideoFrameDelta;
}
- // If this is not a keyframe, make sure there are no gaps in the
- // packet sequence numbers up until this point.
- if (!is_h264_keyframe && missing_packets_.upper_bound(start_seq_num) !=
- missing_packets_.begin()) {
+ // With IPPP, if this is not a keyframe, make sure there are no gaps
+ // in the packet sequence numbers up until this point.
+ const uint8_t h264tid =
+ data_buffer_[start_index].video_header.frame_marking.temporal_id;
+ if (h264tid == kNoTemporalIdx && !is_h264_keyframe
+ && missing_packets_.upper_bound(start_seq_num)
+ != missing_packets_.begin()) {
uint16_t stop_index = (index + 1) % size_;
while (start_index != stop_index) {
sequence_buffer_[start_index].frame_created = false;