Add RTP header extension for HDR metadata
Bug: webrtc:8651 Change-Id: I1c956eaac1532ac0d3820084edb4054a4cc9c68d Reviewed-on: https://webrtc-review.googlesource.com/c/109924 Commit-Queue: Johannes Kron <kron@webrtc.org> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org> Reviewed-by: Åsa Persson <asapersson@webrtc.org> Reviewed-by: Alex Loiko <aleloi@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25578}
This commit is contained in:
committed by
Commit Bot
parent
ee45f900c4
commit
ad1d9f0d78
@ -185,6 +185,24 @@ constexpr uint8_t kPacketWithLegacyTimingExtension[] = {
|
||||
0x04, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00};
|
||||
// clang-format on
|
||||
|
||||
HdrMetadata CreateTestHdrMetadata() {
|
||||
// Random but reasonable HDR metadata.
|
||||
HdrMetadata hdr_metadata;
|
||||
hdr_metadata.mastering_metadata.luminance_max = 2000.0;
|
||||
hdr_metadata.mastering_metadata.luminance_min = 2.0001;
|
||||
hdr_metadata.mastering_metadata.primary_r.x = 0.3003;
|
||||
hdr_metadata.mastering_metadata.primary_r.y = 0.4004;
|
||||
hdr_metadata.mastering_metadata.primary_g.x = 0.3201;
|
||||
hdr_metadata.mastering_metadata.primary_g.y = 0.4604;
|
||||
hdr_metadata.mastering_metadata.primary_b.x = 0.3409;
|
||||
hdr_metadata.mastering_metadata.primary_b.y = 0.4907;
|
||||
hdr_metadata.mastering_metadata.white_point.x = 0.4103;
|
||||
hdr_metadata.mastering_metadata.white_point.y = 0.4806;
|
||||
hdr_metadata.max_content_light_level = 2345;
|
||||
hdr_metadata.max_frame_average_light_level = 1789;
|
||||
return hdr_metadata;
|
||||
}
|
||||
} // namespace
|
||||
|
||||
TEST(RtpPacketTest, CreateMinimum) {
|
||||
@ -801,4 +819,21 @@ TEST(RtpPacketTest, ParseLegacyTimingFrameExtension) {
|
||||
EXPECT_EQ(receivied_timing.flags, 0);
|
||||
}
|
||||
|
||||
TEST(RtpPacketTest, CreateAndParseHdrMetadataExtension) {
|
||||
// Create packet with extension.
|
||||
RtpPacket::ExtensionManager extensions(/*extmap-allow-mixed=*/true);
|
||||
extensions.Register<HdrMetadataExtension>(1);
|
||||
RtpPacket packet(&extensions);
|
||||
const HdrMetadata kHdrMetadata = CreateTestHdrMetadata();
|
||||
EXPECT_TRUE(packet.SetExtension<HdrMetadataExtension>(kHdrMetadata));
|
||||
packet.SetPayloadSize(42);
|
||||
|
||||
// Read packet with the extension.
|
||||
RtpPacketReceived parsed(&extensions);
|
||||
EXPECT_TRUE(parsed.Parse(packet.Buffer()));
|
||||
HdrMetadata parsed_hdr_metadata;
|
||||
EXPECT_TRUE(parsed.GetExtension<HdrMetadataExtension>(&parsed_hdr_metadata));
|
||||
EXPECT_EQ(kHdrMetadata, parsed_hdr_metadata);
|
||||
}
|
||||
|
||||
} // namespace webrtc
|
||||
|
||||
Reference in New Issue
Block a user