| 23 | } // namespace |
| 24 | |
| 25 | TEST(ThumbnailCodec, EncodeDecodeRoundtripNoDownscale) { |
| 26 | auto src = makeYuv420(64, 48, 0x80); // <= 1280 wide -> no downscale |
| 27 | auto thumb = PJ::encodeThumbnailJpeg(src, PJ::kThumbnailMaxWidth, PJ::kThumbnailJpegQuality); |
| 28 | ASSERT_FALSE(thumb.jpeg.empty()); |
| 29 | EXPECT_EQ(thumb.width, 64); |
| 30 | EXPECT_EQ(thumb.height, 48); |
| 31 | |
| 32 | auto frame = PJ::decodeThumbnailJpeg(thumb.jpeg.data(), thumb.jpeg.size(), thumb.width, thumb.height); |
| 33 | ASSERT_TRUE(frame.has_value()); |
| 34 | EXPECT_EQ(frame->width, 64); |
| 35 | EXPECT_EQ(frame->height, 48); |
| 36 | EXPECT_EQ(frame->format, PJ::PixelFormat::kYUV420P); |
| 37 | EXPECT_TRUE(frame->isValid()); |
| 38 | } |
| 39 | |
| 40 | TEST(ThumbnailCodec, DownscalesAboveCap) { |
| 41 | auto src = makeYuv420(3840, 2160, 0x40); // 4K -> cap at 1280 wide |
nothing calls this directly
no test coverage detected