Return first and last RTP packet sequence number for completed frames.

Change-Id: Icab5c36489317ee2dd62bdda7340437abd07eb7e

Bug: webrtc:12579
Change-Id: Icab5c36489317ee2dd62bdda7340437abd07eb7e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/235041
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35216}
This commit is contained in:
philipel
2021-10-15 10:57:10 +02:00
committed by WebRTC LUCI CQ
parent 3f981ee979
commit 6aa61a3118
3 changed files with 179 additions and 46 deletions

View File

@ -187,7 +187,10 @@ RtpVideoFrameAssembler::Impl::FindReferences(RtpFrameVector frames) {
for (auto& frame : frames) {
auto complete_frames = reference_finder_.ManageFrame(std::move(frame));
for (std::unique_ptr<RtpFrameObject>& complete_frame : complete_frames) {
res.push_back(std::move(complete_frame));
uint16_t rtp_seq_num_start = complete_frame->first_seq_num();
uint16_t rtp_seq_num_end = complete_frame->last_seq_num();
res.emplace_back(rtp_seq_num_start, rtp_seq_num_end,
std::move(complete_frame));
}
}
return res;
@ -199,8 +202,12 @@ RtpVideoFrameAssembler::Impl::UpdateWithPadding(uint16_t seq_num) {
FindReferences(AssembleFrames(packet_buffer_.InsertPadding(seq_num)));
auto ref_finder_update = reference_finder_.PaddingReceived(seq_num);
res.insert(res.end(), std::make_move_iterator(ref_finder_update.begin()),
std::make_move_iterator(ref_finder_update.end()));
for (std::unique_ptr<RtpFrameObject>& complete_frame : ref_finder_update) {
uint16_t rtp_seq_num_start = complete_frame->first_seq_num();
uint16_t rtp_seq_num_end = complete_frame->last_seq_num();
res.emplace_back(rtp_seq_num_start, rtp_seq_num_end,
std::move(complete_frame));
}
return res;
}