Reland "SeqNumUnwrapper::Unwrap now returns int64_t instead of uint64_t."

This reverts commit b5207b488b035eae4d11dfdcca9526d5a70c9c09.

Reason for revert: DecodedFramesHistory has now been updated.

Original change's description:
> Revert "SeqNumUnwrapper::Unwrap now returns int64_t instead of uint64_t."
> 
> This reverts commit b0f968a761b715da4cf81e4b9c3cab0ccd322cf2.
> 
> Reason for revert: Need to update DecodedFramesHistory to manage negative picture IDs.
> 
> Original change's description:
> > SeqNumUnwrapper::Unwrap now returns int64_t instead of uint64_t.
> > 
> > Bug: webrtc:10263
> > Change-Id: Idaeae6be01bd4eba0691226c958d70e114161ffd
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127295
> > Commit-Queue: Philip Eliasson <philipel@webrtc.org>
> > Reviewed-by: Johannes Kron <kron@webrtc.org>
> > Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#27129}
> 
> TBR=kwiberg@webrtc.org,eladalon@webrtc.org,terelius@webrtc.org,philipel@webrtc.org,kron@webrtc.org
> 
> Change-Id: I529bb0475bd21a80fa244278aff1fd912a85c169
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: webrtc:10263
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127885
> Reviewed-by: Philip Eliasson <philipel@webrtc.org>
> Commit-Queue: Philip Eliasson <philipel@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#27135}

TBR=kwiberg@webrtc.org,eladalon@webrtc.org,terelius@webrtc.org,philipel@webrtc.org,kron@webrtc.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: webrtc:10263
Change-Id: Id59e377010b5070dd37a7ece8df79b23af43835a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128568
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27191}
This commit is contained in:
Philip Eliasson
2019-03-19 12:15:00 +00:00
committed by Commit Bot
parent c936cb6a86
commit 1f850a6dc7
9 changed files with 409 additions and 448 deletions

View File

@ -69,7 +69,7 @@ void LossNotificationController::OnReceivedPacket(const VCMPacket& packet) {
if (packet.generic_descriptor->FirstPacketInSubFrame()) {
const uint16_t frame_id = packet.generic_descriptor->FrameId();
const uint64_t unwrapped_frame_id = frame_id_unwrapper_.Unwrap(frame_id);
const int64_t unwrapped_frame_id = frame_id_unwrapper_.Unwrap(frame_id);
// Ignore repeated or reordered frames.
// TODO(TODO(bugs.webrtc.org/10336): Handle frame reordering.
@ -124,7 +124,7 @@ void LossNotificationController::OnAssembledFrame(
return;
}
const uint64_t unwrapped_frame_id = frame_id_unwrapper_.Unwrap(frame_id);
const int64_t unwrapped_frame_id = frame_id_unwrapper_.Unwrap(frame_id);
if (!AllDependenciesDecodable(unwrapped_frame_id, frame_dependency_diffs)) {
return;
}
@ -142,7 +142,7 @@ void LossNotificationController::DiscardOldInformation() {
}
bool LossNotificationController::AllDependenciesDecodable(
uint64_t unwrapped_frame_id,
int64_t unwrapped_frame_id,
rtc::ArrayView<const uint16_t> frame_dependency_diffs) const {
RTC_DCHECK_CALLED_SEQUENTIALLY(&sequenced_task_checker_);
@ -154,8 +154,7 @@ bool LossNotificationController::AllDependenciesDecodable(
// One possibility that is ignored, is that the packet may be corrupt.
for (uint16_t frame_dependency_diff : frame_dependency_diffs) {
RTC_DCHECK_GT(unwrapped_frame_id, frame_dependency_diff);
const uint64_t unwrapped_ref_frame_id =
const int64_t unwrapped_ref_frame_id =
unwrapped_frame_id - frame_dependency_diff;
const auto ref_frame_it =