Add plumbing of RtpPacketInfos to each VideoFrame as input for SourceTracker.
This change adds the plumbing of RtpPacketInfo from RtpVideoStreamReceiver::OnRtpPacket() to VideoReceiveStream::OnFrame() for video. It is a step towards replacing the non-spec compliant ContributingSources that updates itself at packet-receive time, with the spec-compliant SourceTracker that will update itself at frame-delivery-to-track time. Bug: webrtc:10668 Change-Id: Ib97d430530c5a8487d3b129936c7c51e118889bd Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/139891 Reviewed-by: Stefan Holmer <stefan@webrtc.org> Reviewed-by: Niels Moller <nisse@webrtc.org> Commit-Queue: Chen Xing <chxg@google.com> Cr-Commit-Position: refs/heads/master@{#28332}
This commit is contained in:
@ -435,6 +435,31 @@ TEST(FrameEncodeMetadataWriterTest, CopiesColorSpace) {
|
||||
EXPECT_EQ(color_space, *image.ColorSpace());
|
||||
}
|
||||
|
||||
TEST(FrameEncodeMetadataWriterTest, CopiesPacketInfos) {
|
||||
EncodedImage image;
|
||||
const int64_t kTimestampMs = 123456;
|
||||
FakeEncodedImageCallback sink;
|
||||
|
||||
FrameEncodeMetadataWriter encode_timer(&sink);
|
||||
encode_timer.OnEncoderInit(VideoCodec(), false);
|
||||
// Any non-zero bitrate needed to be set before the first frame.
|
||||
VideoBitrateAllocation bitrate_allocation;
|
||||
bitrate_allocation.SetBitrate(0, 0, 500000);
|
||||
encode_timer.OnSetRates(bitrate_allocation, 30);
|
||||
|
||||
RtpPacketInfos packet_infos = CreatePacketInfos(3);
|
||||
image.SetTimestamp(static_cast<uint32_t>(kTimestampMs * 90));
|
||||
VideoFrame frame = VideoFrame::Builder()
|
||||
.set_timestamp_ms(kTimestampMs)
|
||||
.set_timestamp_rtp(kTimestampMs * 90)
|
||||
.set_packet_infos(packet_infos)
|
||||
.set_video_frame_buffer(kFrameBuffer)
|
||||
.build();
|
||||
encode_timer.OnEncodeStarted(frame);
|
||||
encode_timer.FillTimingInfo(0, &image);
|
||||
EXPECT_EQ(image.PacketInfos().size(), 3U);
|
||||
}
|
||||
|
||||
TEST(FrameEncodeMetadataWriterTest, DoesNotRewriteBitstreamWithoutCodecInfo) {
|
||||
uint8_t buffer[] = {1, 2, 3};
|
||||
EncodedImage image(buffer, sizeof(buffer), sizeof(buffer));
|
||||
|
||||
Reference in New Issue
Block a user