diff --git a/api/frame_transformer_interface.h b/api/frame_transformer_interface.h index aa695e5331..e6f7a3fc98 100644 --- a/api/frame_transformer_interface.h +++ b/api/frame_transformer_interface.h @@ -60,7 +60,9 @@ class TransformableVideoFrameInterface : public TransformableFrameInterface { // The returned const ref may become invalid due to later SetMetadata calls, // or other modifications. Use Metadata() instead. - virtual const VideoFrameMetadata& GetMetadata() const = 0; + [[deprecated("Use Metadata() instead")]] virtual const VideoFrameMetadata& + GetMetadata() const = 0; + virtual VideoFrameMetadata Metadata() const = 0; // TODO(https://crbug.com/webrtc/14709): Make pure virtual when Chromium MOCK diff --git a/modules/rtp_rtcp/source/frame_transformer_factory_unittest.cc b/modules/rtp_rtcp/source/frame_transformer_factory_unittest.cc index 3b2c112b54..4c25330534 100644 --- a/modules/rtp_rtcp/source/frame_transformer_factory_unittest.cc +++ b/modules/rtp_rtcp/source/frame_transformer_factory_unittest.cc @@ -30,7 +30,6 @@ namespace { using testing::NiceMock; using testing::Return; -using testing::ReturnRef; TEST(FrameTransformerFactory, CloneVideoFrame) { NiceMock original_frame; @@ -43,13 +42,12 @@ TEST(FrameTransformerFactory, CloneVideoFrame) { // Copy csrcs rather than moving so we can compare in an EXPECT_EQ later. metadata.SetCsrcs(csrcs); - EXPECT_CALL(original_frame, GetMetadata()) - .WillRepeatedly(ReturnRef(metadata)); + EXPECT_CALL(original_frame, Metadata()).WillRepeatedly(Return(metadata)); auto cloned_frame = CloneVideoFrame(&original_frame); EXPECT_EQ(cloned_frame->GetData().size(), 10u); EXPECT_THAT(cloned_frame->GetData(), testing::Each(5u)); - EXPECT_EQ(cloned_frame->GetMetadata().GetCsrcs(), csrcs); + EXPECT_EQ(cloned_frame->Metadata().GetCsrcs(), csrcs); } } // namespace diff --git a/modules/rtp_rtcp/source/rtp_sender_video_frame_transformer_delegate.cc b/modules/rtp_rtcp/source/rtp_sender_video_frame_transformer_delegate.cc index 717cbb470a..7ced8ddf41 100644 --- a/modules/rtp_rtcp/source/rtp_sender_video_frame_transformer_delegate.cc +++ b/modules/rtp_rtcp/source/rtp_sender_video_frame_transformer_delegate.cc @@ -216,14 +216,14 @@ std::unique_ptr CloneSenderVideoFrame( original->GetData().data(), original->GetData().size()); EncodedImage encoded_image; encoded_image.SetEncodedData(encoded_image_buffer); - RTPVideoHeader new_header = - RTPVideoHeader::FromMetadata(original->GetMetadata()); + VideoFrameMetadata metadata = original->Metadata(); + RTPVideoHeader new_header = RTPVideoHeader::FromMetadata(metadata); // TODO(bugs.webrtc.org/14708): Fill in other EncodedImage parameters return std::make_unique( encoded_image, new_header, original->GetPayloadType(), new_header.codec, original->GetTimestamp(), absl::nullopt, // expected_retransmission_time_ms - original->GetSsrc(), original->GetMetadata().GetCsrcs()); + original->GetSsrc(), metadata.GetCsrcs()); } } // namespace webrtc diff --git a/modules/rtp_rtcp/source/rtp_sender_video_frame_transformer_delegate_unittest.cc b/modules/rtp_rtcp/source/rtp_sender_video_frame_transformer_delegate_unittest.cc index 8abff95692..075f680d11 100644 --- a/modules/rtp_rtcp/source/rtp_sender_video_frame_transformer_delegate_unittest.cc +++ b/modules/rtp_rtcp/source/rtp_sender_video_frame_transformer_delegate_unittest.cc @@ -163,31 +163,7 @@ TEST_F(RtpSenderVideoFrameTransformerDelegateTest, CloneSenderVideoFrame) { EXPECT_EQ(video_frame->GetPayloadType(), clone->GetPayloadType()); EXPECT_EQ(video_frame->GetSsrc(), clone->GetSsrc()); EXPECT_EQ(video_frame->GetTimestamp(), clone->GetTimestamp()); - EXPECT_EQ(video_frame->GetMetadata(), clone->GetMetadata()); -} - -TEST_F(RtpSenderVideoFrameTransformerDelegateTest, MetadataEqualsGetMetadata) { - auto delegate = rtc::make_ref_counted( - &test_sender_, frame_transformer_, - /*ssrc=*/1111, /*csrcs=*/std::vector({1, 2, 3}), - time_controller_.CreateTaskQueueFactory().get()); - - std::unique_ptr frame = - GetTransformableFrame(delegate); - ASSERT_TRUE(frame); - TransformableVideoFrameInterface* video_frame = - static_cast(frame.get()); - - const VideoFrameMetadata& metadata_ref = video_frame->GetMetadata(); - VideoFrameMetadata metadata_copy = video_frame->Metadata(); - - // TODO(bugs.webrtc.org/14708): Just EXPECT_EQ the whole Metadata once the - // equality operator lands. - EXPECT_EQ(metadata_ref.GetFrameType(), metadata_copy.GetFrameType()); - EXPECT_EQ(metadata_ref.GetFrameId(), metadata_copy.GetFrameId()); - EXPECT_EQ(metadata_ref.GetCodec(), metadata_copy.GetCodec()); - EXPECT_EQ(metadata_ref.GetSsrc(), metadata_copy.GetSsrc()); - EXPECT_EQ(metadata_ref.GetCsrcs(), metadata_copy.GetCsrcs()); + EXPECT_EQ(video_frame->Metadata(), clone->Metadata()); } TEST_F(RtpSenderVideoFrameTransformerDelegateTest, MetadataAfterSetMetadata) { diff --git a/modules/rtp_rtcp/source/rtp_sender_video_unittest.cc b/modules/rtp_rtcp/source/rtp_sender_video_unittest.cc index 9f44d7861d..25d6716302 100644 --- a/modules/rtp_rtcp/source/rtp_sender_video_unittest.cc +++ b/modules/rtp_rtcp/source/rtp_sender_video_unittest.cc @@ -1638,7 +1638,7 @@ TEST_F(RtpSenderVideoWithFrameTransformerTest, absl::WrapUnique(static_cast( transformable_frame.release())); ASSERT_TRUE(frame); - auto metadata = frame->GetMetadata(); + auto metadata = frame->Metadata(); EXPECT_EQ(metadata.GetWidth(), 1280u); EXPECT_EQ(metadata.GetHeight(), 720u); EXPECT_EQ(metadata.GetFrameId(), 10); diff --git a/modules/rtp_rtcp/source/rtp_video_stream_receiver_frame_transformer_delegate_unittest.cc b/modules/rtp_rtcp/source/rtp_video_stream_receiver_frame_transformer_delegate_unittest.cc index 8b43488275..707970e14f 100644 --- a/modules/rtp_rtcp/source/rtp_video_stream_receiver_frame_transformer_delegate_unittest.cc +++ b/modules/rtp_rtcp/source/rtp_video_stream_receiver_frame_transformer_delegate_unittest.cc @@ -160,7 +160,7 @@ TEST(RtpVideoStreamReceiverFrameTransformerDelegateTest, absl::WrapUnique(static_cast( transformable_frame.release())); ASSERT_TRUE(frame); - auto metadata = frame->GetMetadata(); + auto metadata = frame->Metadata(); EXPECT_EQ(metadata.GetWidth(), 1280u); EXPECT_EQ(metadata.GetHeight(), 720u); EXPECT_EQ(metadata.GetFrameId(), 10);