Add RtpSequenceNumberMap::InsertFrame()
This will make code using RtpSequenceNumberMap simpler. Bug: webrtc:10501 Change-Id: I74b11f3562d5962efb42b5bb7662489d7d411388 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/131386 Commit-Queue: Elad Alon <eladalon@webrtc.org> Reviewed-by: Niels Moller <nisse@webrtc.org> Reviewed-by: Danil Chapovalov <danilchap@webrtc.org> Cr-Commit-Position: refs/heads/master@{#27485}
This commit is contained in:
@ -12,6 +12,7 @@
|
||||
|
||||
#include <algorithm>
|
||||
#include <iterator>
|
||||
#include <limits>
|
||||
|
||||
#include "absl/algorithm/container.h"
|
||||
#include "rtc_base/checks.h"
|
||||
@ -28,7 +29,7 @@ RtpSequenceNumberMap::RtpSequenceNumberMap(size_t max_entries)
|
||||
|
||||
RtpSequenceNumberMap::~RtpSequenceNumberMap() = default;
|
||||
|
||||
void RtpSequenceNumberMap::Insert(uint16_t sequence_number, Info info) {
|
||||
void RtpSequenceNumberMap::InsertPacket(uint16_t sequence_number, Info info) {
|
||||
RTC_DCHECK(associations_.size() < 2 ||
|
||||
AheadOf(associations_.back().sequence_number,
|
||||
associations_.front().sequence_number));
|
||||
@ -79,6 +80,20 @@ void RtpSequenceNumberMap::Insert(uint16_t sequence_number, Info info) {
|
||||
associations_.front().sequence_number));
|
||||
}
|
||||
|
||||
void RtpSequenceNumberMap::InsertFrame(uint16_t first_sequence_number,
|
||||
size_t packet_count,
|
||||
uint32_t timestamp) {
|
||||
RTC_DCHECK_GT(packet_count, 0);
|
||||
RTC_DCHECK_LE(packet_count, std::numeric_limits<size_t>::max());
|
||||
|
||||
for (size_t i = 0; i < packet_count; ++i) {
|
||||
const bool is_first = (i == 0);
|
||||
const bool is_last = (i == packet_count - 1);
|
||||
InsertPacket(static_cast<uint16_t>(first_sequence_number + i),
|
||||
Info(timestamp, is_first, is_last));
|
||||
}
|
||||
}
|
||||
|
||||
absl::optional<RtpSequenceNumberMap::Info> RtpSequenceNumberMap::Get(
|
||||
uint16_t sequence_number) const {
|
||||
// To make the binary search easier to understand, we use the fact that
|
||||
|
||||
Reference in New Issue
Block a user