From 6fe3fa14c6686ba9c51095b97ad2e6833a9b03e5 Mon Sep 17 00:00:00 2001 From: Sergio Garcia Murillo Date: Thu, 18 Feb 2021 14:54:42 +0100 Subject: [PATCH] Add test for odd sizes with spatial layers Bug: webrtc:12398 Change-Id: If28f22f8c08913315806d26ad0b355eabda67da6 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/203889 Reviewed-by: Philip Eliasson Commit-Queue: Jerome Jiang Cr-Commit-Position: refs/heads/master@{#33319} --- .../codecs/av1/libaom_av1_encoder_unittest.cc | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/modules/video_coding/codecs/av1/libaom_av1_encoder_unittest.cc b/modules/video_coding/codecs/av1/libaom_av1_encoder_unittest.cc index 3cc373d4da..ea77e091af 100644 --- a/modules/video_coding/codecs/av1/libaom_av1_encoder_unittest.cc +++ b/modules/video_coding/codecs/av1/libaom_av1_encoder_unittest.cc @@ -103,6 +103,23 @@ TEST(LibaomAv1EncoderTest, SetsEndOfPictureForLastFrameInTemporalUnit) { EXPECT_TRUE(encoded_frames[5].codec_specific_info.end_of_picture); } +TEST(LibaomAv1EncoderTest, CheckOddDimensionsWithSpatialLayers) { + std::unique_ptr encoder = CreateLibaomAv1Encoder(); + VideoCodec codec_settings = DefaultCodecSettings(); + // Configure encoder with 3 spatial layers. + codec_settings.SetScalabilityMode("L3T1"); + // Odd width and height values should not make encoder crash. + codec_settings.width = 623; + codec_settings.height = 405; + ASSERT_EQ(encoder->InitEncode(&codec_settings, DefaultEncoderSettings()), + WEBRTC_VIDEO_CODEC_OK); + EncodedVideoFrameProducer evfp(*encoder); + evfp.SetResolution(RenderResolution{623, 405}); + std::vector encoded_frames = + evfp.SetNumInputFrames(2).Encode(); + ASSERT_THAT(encoded_frames, SizeIs(6)); +} + TEST(LibaomAv1EncoderTest, EncoderInfoProvidesFpsAllocation) { std::unique_ptr encoder = CreateLibaomAv1Encoder(); VideoCodec codec_settings = DefaultCodecSettings();