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

@ -37,6 +37,7 @@ RtpFrameObject::RtpFrameObject(
VideoContentType content_type,
const RTPVideoHeader& video_header,
const absl::optional<webrtc::ColorSpace>& color_space,
const absl::optional<RtpGenericFrameDescriptor>& generic_descriptor,
RtpPacketInfos packet_infos,
rtc::scoped_refptr<EncodedImageBuffer> image_buffer)
: first_seq_num_(first_seq_num),
@ -44,6 +45,7 @@ RtpFrameObject::RtpFrameObject(
last_packet_received_time_(last_packet_received_time),
times_nacked_(times_nacked) {
rtp_video_header_ = video_header;
rtp_generic_frame_descriptor_ = generic_descriptor;
// EncodedFrame members
codec_type_ = codec;
@ -129,6 +131,11 @@ const RTPVideoHeader& RtpFrameObject::GetRtpVideoHeader() const {
return rtp_video_header_;
}
const absl::optional<RtpGenericFrameDescriptor>&
RtpFrameObject::GetGenericFrameDescriptor() const {
return rtp_generic_frame_descriptor_;
}
const FrameMarking& RtpFrameObject::GetFrameMarking() const {
return rtp_video_header_.frame_marking;
}

View File

@ -13,29 +13,32 @@
#include "absl/types/optional.h"
#include "api/video/encoded_frame.h"
#include "modules/rtp_rtcp/source/rtp_generic_frame_descriptor.h"
namespace webrtc {
namespace video_coding {
class RtpFrameObject : public EncodedFrame {
public:
RtpFrameObject(uint16_t first_seq_num,
uint16_t last_seq_num,
bool markerBit,
int times_nacked,
int64_t first_packet_received_time,
int64_t last_packet_received_time,
uint32_t rtp_timestamp,
int64_t ntp_time_ms,
const VideoSendTiming& timing,
uint8_t payload_type,
VideoCodecType codec,
VideoRotation rotation,
VideoContentType content_type,
const RTPVideoHeader& video_header,
const absl::optional<webrtc::ColorSpace>& color_space,
RtpPacketInfos packet_infos,
rtc::scoped_refptr<EncodedImageBuffer> image_buffer);
RtpFrameObject(
uint16_t first_seq_num,
uint16_t last_seq_num,
bool markerBit,
int times_nacked,
int64_t first_packet_received_time,
int64_t last_packet_received_time,
uint32_t rtp_timestamp,
int64_t ntp_time_ms,
const VideoSendTiming& timing,
uint8_t payload_type,
VideoCodecType codec,
VideoRotation rotation,
VideoContentType content_type,
const RTPVideoHeader& video_header,
const absl::optional<webrtc::ColorSpace>& color_space,
const absl::optional<RtpGenericFrameDescriptor>& generic_descriptor,
RtpPacketInfos packet_infos,
rtc::scoped_refptr<EncodedImageBuffer> image_buffer);
~RtpFrameObject() override;
uint16_t first_seq_num() const;
@ -47,10 +50,13 @@ class RtpFrameObject : public EncodedFrame {
int64_t RenderTime() const override;
bool delayed_by_retransmission() const override;
const RTPVideoHeader& GetRtpVideoHeader() const;
const absl::optional<RtpGenericFrameDescriptor>& GetGenericFrameDescriptor()
const;
const FrameMarking& GetFrameMarking() const;
private:
RTPVideoHeader rtp_video_header_;
absl::optional<RtpGenericFrameDescriptor> rtp_generic_frame_descriptor_;
VideoCodecType codec_type_;
uint16_t first_seq_num_;
uint16_t last_seq_num_;

View File

@ -473,6 +473,7 @@ std::unique_ptr<RtpFrameObject> PacketBuffer::AssembleFrame(
last_packet.video_header.content_type, //
first_packet.video_header, //
last_packet.video_header.color_space, //
first_packet.generic_descriptor, //
RtpPacketInfos(std::move(packet_infos)), //
std::move(bitstream));
}

View File

@ -19,6 +19,7 @@
#include "absl/base/attributes.h"
#include "api/rtp_packet_info.h"
#include "api/video/encoded_image.h"
#include "modules/rtp_rtcp/source/rtp_generic_frame_descriptor.h"
#include "modules/rtp_rtcp/source/rtp_packet_received.h"
#include "modules/rtp_rtcp/source/rtp_video_header.h"
#include "modules/video_coding/frame_object.h"
@ -66,6 +67,7 @@ class PacketBuffer {
rtc::CopyOnWriteBuffer video_payload;
RTPVideoHeader video_header;
absl::optional<RtpGenericFrameDescriptor> generic_descriptor;
RtpPacketInfo packet_info;
};

View File

@ -57,6 +57,7 @@ std::unique_ptr<RtpFrameObject> CreateFrame(
VideoContentType::UNSPECIFIED,
video_header,
/*color_space=*/absl::nullopt,
/*generic_descriptor=*/absl::nullopt,
RtpPacketInfos(),
EncodedImageBuffer::Create(/*size=*/0));
// clang-format on