Add chroma siting to ColorSpace
Bug: webrtc:8651 Change-Id: I82263e8b6cdcc3ebf699f5e3ebbde04e46982efb Reviewed-on: https://webrtc-review.googlesource.com/c/113424 Reviewed-by: Niels Moller <nisse@webrtc.org> Reviewed-by: Erik Språng <sprang@webrtc.org> Commit-Queue: Johannes Kron <kron@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25944}
This commit is contained in:

committed by
Commit Bot

parent
1ec2a16121
commit
b47ccc38e7
@ -13,7 +13,7 @@
|
||||
namespace webrtc {
|
||||
|
||||
ColorSpace ExtractH264ColorSpace(AVCodecContext* codec) {
|
||||
ColorSpace::PrimaryID primaries = ColorSpace::PrimaryID::kUNSPECIFIED;
|
||||
ColorSpace::PrimaryID primaries = ColorSpace::PrimaryID::kUnspecified;
|
||||
switch (codec->color_primaries) {
|
||||
case AVCOL_PRI_BT709:
|
||||
primaries = ColorSpace::PrimaryID::kBT709;
|
||||
@ -55,7 +55,7 @@ ColorSpace ExtractH264ColorSpace(AVCodecContext* codec) {
|
||||
break;
|
||||
}
|
||||
|
||||
ColorSpace::TransferID transfer = ColorSpace::TransferID::kUNSPECIFIED;
|
||||
ColorSpace::TransferID transfer = ColorSpace::TransferID::kUnspecified;
|
||||
switch (codec->color_trc) {
|
||||
case AVCOL_TRC_BT709:
|
||||
transfer = ColorSpace::TransferID::kBT709;
|
||||
@ -112,7 +112,7 @@ ColorSpace ExtractH264ColorSpace(AVCodecContext* codec) {
|
||||
break;
|
||||
}
|
||||
|
||||
ColorSpace::MatrixID matrix = ColorSpace::MatrixID::kUNSPECIFIED;
|
||||
ColorSpace::MatrixID matrix = ColorSpace::MatrixID::kUnspecified;
|
||||
switch (codec->colorspace) {
|
||||
case AVCOL_SPC_RGB:
|
||||
matrix = ColorSpace::MatrixID::kRGB;
|
||||
|
@ -72,10 +72,14 @@ TEST_F(TestH264Impl, MAYBE_EncodeDecode) {
|
||||
EXPECT_GT(I420PSNR(input_frame, decoded_frame.get()), 36);
|
||||
|
||||
const ColorSpace color_space = *decoded_frame->color_space();
|
||||
EXPECT_EQ(ColorSpace::PrimaryID::kUNSPECIFIED, color_space.primaries());
|
||||
EXPECT_EQ(ColorSpace::TransferID::kUNSPECIFIED, color_space.transfer());
|
||||
EXPECT_EQ(ColorSpace::MatrixID::kUNSPECIFIED, color_space.matrix());
|
||||
EXPECT_EQ(ColorSpace::PrimaryID::kUnspecified, color_space.primaries());
|
||||
EXPECT_EQ(ColorSpace::TransferID::kUnspecified, color_space.transfer());
|
||||
EXPECT_EQ(ColorSpace::MatrixID::kUnspecified, color_space.matrix());
|
||||
EXPECT_EQ(ColorSpace::RangeID::kLimited, color_space.range());
|
||||
EXPECT_EQ(ColorSpace::ChromaSiting::kUnspecified,
|
||||
color_space.chroma_siting_horizontal());
|
||||
EXPECT_EQ(ColorSpace::ChromaSiting::kUnspecified,
|
||||
color_space.chroma_siting_vertical());
|
||||
}
|
||||
|
||||
TEST_F(TestH264Impl, MAYBE_DecodedQpEqualsEncodedQp) {
|
||||
|
@ -126,10 +126,11 @@ class TestVp9Impl : public VideoCodecUnitTest {
|
||||
|
||||
ColorSpace CreateTestColorSpace() const {
|
||||
HdrMetadata hdr_metadata = CreateTestHdrMetadata();
|
||||
ColorSpace color_space(ColorSpace::PrimaryID::kBT709,
|
||||
ColorSpace::TransferID::kGAMMA22,
|
||||
ColorSpace::MatrixID::kSMPTE2085,
|
||||
ColorSpace::RangeID::kFull, &hdr_metadata);
|
||||
ColorSpace color_space(
|
||||
ColorSpace::PrimaryID::kBT709, ColorSpace::TransferID::kGAMMA22,
|
||||
ColorSpace::MatrixID::kSMPTE2085, ColorSpace::RangeID::kFull,
|
||||
ColorSpace::ChromaSiting::kCollocated,
|
||||
ColorSpace::ChromaSiting::kCollocated, &hdr_metadata);
|
||||
return color_space;
|
||||
}
|
||||
};
|
||||
@ -157,10 +158,14 @@ TEST_F(TestVp9Impl, EncodeDecode) {
|
||||
EXPECT_GT(I420PSNR(input_frame, decoded_frame.get()), 36);
|
||||
|
||||
const ColorSpace color_space = *decoded_frame->color_space();
|
||||
EXPECT_EQ(ColorSpace::PrimaryID::kUNSPECIFIED, color_space.primaries());
|
||||
EXPECT_EQ(ColorSpace::TransferID::kUNSPECIFIED, color_space.transfer());
|
||||
EXPECT_EQ(ColorSpace::MatrixID::kUNSPECIFIED, color_space.matrix());
|
||||
EXPECT_EQ(ColorSpace::PrimaryID::kUnspecified, color_space.primaries());
|
||||
EXPECT_EQ(ColorSpace::TransferID::kUnspecified, color_space.transfer());
|
||||
EXPECT_EQ(ColorSpace::MatrixID::kUnspecified, color_space.matrix());
|
||||
EXPECT_EQ(ColorSpace::RangeID::kLimited, color_space.range());
|
||||
EXPECT_EQ(ColorSpace::ChromaSiting::kUnspecified,
|
||||
color_space.chroma_siting_horizontal());
|
||||
EXPECT_EQ(ColorSpace::ChromaSiting::kUnspecified,
|
||||
color_space.chroma_siting_vertical());
|
||||
}
|
||||
|
||||
// We only test the encoder here, since the decoded frame rotation is set based
|
||||
|
@ -70,9 +70,9 @@ int GetCpuSpeed(int width, int height) {
|
||||
ColorSpace ExtractVP9ColorSpace(vpx_color_space_t space_t,
|
||||
vpx_color_range_t range_t,
|
||||
unsigned int bit_depth) {
|
||||
ColorSpace::PrimaryID primaries = ColorSpace::PrimaryID::kUNSPECIFIED;
|
||||
ColorSpace::TransferID transfer = ColorSpace::TransferID::kUNSPECIFIED;
|
||||
ColorSpace::MatrixID matrix = ColorSpace::MatrixID::kUNSPECIFIED;
|
||||
ColorSpace::PrimaryID primaries = ColorSpace::PrimaryID::kUnspecified;
|
||||
ColorSpace::TransferID transfer = ColorSpace::TransferID::kUnspecified;
|
||||
ColorSpace::MatrixID matrix = ColorSpace::MatrixID::kUnspecified;
|
||||
switch (space_t) {
|
||||
case VPX_CS_BT_601:
|
||||
case VPX_CS_SMPTE_170:
|
||||
|
Reference in New Issue
Block a user