| Index: remoting/base/decoder_vp8_unittest.cc
|
| diff --git a/remoting/base/decoder_vp8_unittest.cc b/remoting/base/decoder_vp8_unittest.cc
|
| index e75071477555e934a7fc7ce0dc1655dee4ae07e2..ab0607fc35135b4aebce6e23797fbca8ddbc45bc 100644
|
| --- a/remoting/base/decoder_vp8_unittest.cc
|
| +++ b/remoting/base/decoder_vp8_unittest.cc
|
| @@ -10,19 +10,65 @@
|
|
|
| namespace remoting {
|
|
|
| -TEST(DecoderVp8Test, EncodeAndDecode) {
|
| - EncoderVp8 encoder;
|
| - DecoderVp8 decoder;
|
| - TestEncoderDecoder(&encoder, &decoder, false);
|
| +class DecoderVp8Test : public testing::Test {
|
| + protected:
|
| + EncoderVp8 encoder_;
|
| + DecoderVp8 decoder_;
|
| +
|
| + void TestGradient(int screen_width, int screen_height,
|
| + int view_width, int view_height,
|
| + double max_error_limit, double mean_error_limit) {
|
| + TestEncoderDecoderGradient(&encoder_, &decoder_,
|
| + SkISize::Make(screen_width, screen_height),
|
| + SkISize::Make(view_width, view_height),
|
| + max_error_limit, mean_error_limit);
|
| + }
|
| +};
|
| +
|
| +TEST_F(DecoderVp8Test, EncodeAndDecode) {
|
| + TestEncoderDecoder(&encoder_, &decoder_, false);
|
| }
|
|
|
| // Check that encoding and decoding a particular frame doesn't change the
|
| // frame too much. The frame used is a gradient, which does not contain sharp
|
| // transitions, so encoding lossiness should not be too high.
|
| -TEST(DecoderVp8Test, Gradient) {
|
| - EncoderVp8 encoder;
|
| - DecoderVp8 decoder;
|
| - TestEncoderDecoderGradient(&encoder, &decoder, 0.03, 0.01);
|
| +TEST_F(DecoderVp8Test, Gradient) {
|
| + TestGradient(320, 240, 320, 240, 0.03, 0.01);
|
| +}
|
| +
|
| +TEST_F(DecoderVp8Test, GradientScaleUpEvenToEven) {
|
| + TestGradient(320, 240, 640, 480, 0.04, 0.02);
|
| +}
|
| +
|
| +TEST_F(DecoderVp8Test, GradientScaleUpEvenToOdd) {
|
| + TestGradient(320, 240, 641, 481, 0.04, 0.02);
|
| +}
|
| +
|
| +TEST_F(DecoderVp8Test, GradientScaleUpOddToEven) {
|
| + TestGradient(321, 241, 640, 480, 0.04, 0.02);
|
| +}
|
| +
|
| +TEST_F(DecoderVp8Test, GradientScaleUpOddToOdd) {
|
| + TestGradient(321, 241, 641, 481, 0.04, 0.02);
|
| +}
|
| +
|
| +TEST_F(DecoderVp8Test, GradientScaleDownEvenToEven) {
|
| + TestGradient(320, 240, 160, 120, 0.04, 0.02);
|
| +}
|
| +
|
| +TEST_F(DecoderVp8Test, GradientScaleDownEvenToOdd) {
|
| + // TODO(simonmorris): The maximum error is non-deterministic.
|
| + // The mean error is not too high, which suggests that the problem is
|
| + // restricted to a small area of the output image. See crbug.com/139437.
|
| + TestGradient(320, 240, 161, 121, 1.0, 0.02);
|
| +}
|
| +
|
| +TEST_F(DecoderVp8Test, GradientScaleDownOddToEven) {
|
| + TestGradient(321, 241, 160, 120, 0.04, 0.02);
|
| +}
|
| +
|
| +TEST_F(DecoderVp8Test, GradientScaleDownOddToOdd) {
|
| + TestGradient(321, 241, 161, 121, 0.04, 0.02);
|
| }
|
|
|
| } // namespace remoting
|
|
|