Revert "Do not propagate generic descriptor on receiving frame"

This reverts commit abf73de8eae90e9ac7e88ce1d52728e8102e824f.

Reason for revert: breaks downstream tests

Original change's description:
> Do not propagate generic descriptor on receiving frame
> 
> It was used only for the frame decryptor.
> Decryptor needs only raw representation that it can recreate
> in a way compatible with the new version of the descriptor.
> 
> Bug: webrtc:10342
> Change-Id: Ie098235ebb87c6f5e2af42d0022d2365cd6bfa29
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166163
> Reviewed-by: Philip Eliasson <philipel@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#30501}

TBR=danilchap@webrtc.org,sprang@webrtc.org,philipel@webrtc.org

Change-Id: I6634df06ee75aa8cdfda614994ab11f7a5845c70
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10342
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168488
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30502}
This commit is contained in:
Danil Chapovalov
2020-02-11 16:53:51 +00:00
committed by Commit Bot
parent abf73de8ea
commit bc1750d52b
14 changed files with 111 additions and 152 deletions

View File

@ -1,49 +0,0 @@
/*
* Copyright (c) 2020 The WebRTC project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
#include "modules/rtp_rtcp/source/rtp_descriptor_authentication.h"
#include <cstdint>
#include <vector>
#include "modules/rtp_rtcp/source/rtp_generic_frame_descriptor.h"
#include "modules/rtp_rtcp/source/rtp_generic_frame_descriptor_extension.h"
#include "modules/rtp_rtcp/source/rtp_video_header.h"
namespace webrtc {
std::vector<uint8_t> RtpDescriptorAuthentication(
const RTPVideoHeader::GenericDescriptorInfo& descriptor) {
// Default way of creating additional data for an encrypted frame.
if (descriptor.spatial_index < 0 || descriptor.temporal_index < 0 ||
descriptor.spatial_index >=
RtpGenericFrameDescriptor::kMaxSpatialLayers ||
descriptor.temporal_index >=
RtpGenericFrameDescriptor::kMaxTemporalLayers ||
descriptor.dependencies.size() >
RtpGenericFrameDescriptor::kMaxNumFrameDependencies) {
return {};
}
RtpGenericFrameDescriptor frame_descriptor;
frame_descriptor.SetFirstPacketInSubFrame(true);
frame_descriptor.SetLastPacketInSubFrame(false);
frame_descriptor.SetTemporalLayer(descriptor.temporal_index);
frame_descriptor.SetSpatialLayersBitmask(1 << descriptor.spatial_index);
frame_descriptor.SetFrameId(descriptor.frame_id & 0xFFFF);
for (int64_t dependency : descriptor.dependencies) {
frame_descriptor.AddFrameDependencyDiff(descriptor.frame_id - dependency);
}
std::vector<uint8_t> result(
RtpGenericFrameDescriptorExtension00::ValueSize(frame_descriptor));
RtpGenericFrameDescriptorExtension00::Write(result, frame_descriptor);
return result;
}
} // namespace webrtc