xref: /aosp_15_r20/external/libyuv/unit_test/rotate_argb_test.cc (revision 4e366538070a3a6c5c163c31b791eab742e1657a)
1*4e366538SXin Li /*
2*4e366538SXin Li  *  Copyright 2012 The LibYuv Project Authors. All rights reserved.
3*4e366538SXin Li  *
4*4e366538SXin Li  *  Use of this source code is governed by a BSD-style license
5*4e366538SXin Li  *  that can be found in the LICENSE file in the root of the source
6*4e366538SXin Li  *  tree. An additional intellectual property rights grant can be found
7*4e366538SXin Li  *  in the file PATENTS. All contributing project authors may
8*4e366538SXin Li  *  be found in the AUTHORS file in the root of the source tree.
9*4e366538SXin Li  */
10*4e366538SXin Li 
11*4e366538SXin Li #include <stdlib.h>
12*4e366538SXin Li 
13*4e366538SXin Li #include "../unit_test/unit_test.h"
14*4e366538SXin Li #include "libyuv/cpu_id.h"
15*4e366538SXin Li #include "libyuv/rotate_argb.h"
16*4e366538SXin Li 
17*4e366538SXin Li namespace libyuv {
18*4e366538SXin Li 
TestRotateBpp(int src_width,int src_height,int dst_width,int dst_height,libyuv::RotationMode mode,int benchmark_iterations,int disable_cpu_flags,int benchmark_cpu_info,const int kBpp)19*4e366538SXin Li void TestRotateBpp(int src_width,
20*4e366538SXin Li                    int src_height,
21*4e366538SXin Li                    int dst_width,
22*4e366538SXin Li                    int dst_height,
23*4e366538SXin Li                    libyuv::RotationMode mode,
24*4e366538SXin Li                    int benchmark_iterations,
25*4e366538SXin Li                    int disable_cpu_flags,
26*4e366538SXin Li                    int benchmark_cpu_info,
27*4e366538SXin Li                    const int kBpp) {
28*4e366538SXin Li   if (src_width < 1) {
29*4e366538SXin Li     src_width = 1;
30*4e366538SXin Li   }
31*4e366538SXin Li   if (src_height < 1) {
32*4e366538SXin Li     src_height = 1;
33*4e366538SXin Li   }
34*4e366538SXin Li   if (dst_width < 1) {
35*4e366538SXin Li     dst_width = 1;
36*4e366538SXin Li   }
37*4e366538SXin Li   if (dst_height < 1) {
38*4e366538SXin Li     dst_height = 1;
39*4e366538SXin Li   }
40*4e366538SXin Li   int src_stride_argb = src_width * kBpp;
41*4e366538SXin Li   int src_argb_plane_size = src_stride_argb * abs(src_height);
42*4e366538SXin Li   align_buffer_page_end(src_argb, src_argb_plane_size);
43*4e366538SXin Li   for (int i = 0; i < src_argb_plane_size; ++i) {
44*4e366538SXin Li     src_argb[i] = fastrand() & 0xff;
45*4e366538SXin Li   }
46*4e366538SXin Li 
47*4e366538SXin Li   int dst_stride_argb = dst_width * kBpp;
48*4e366538SXin Li   int dst_argb_plane_size = dst_stride_argb * dst_height;
49*4e366538SXin Li   align_buffer_page_end(dst_argb_c, dst_argb_plane_size);
50*4e366538SXin Li   align_buffer_page_end(dst_argb_opt, dst_argb_plane_size);
51*4e366538SXin Li   memset(dst_argb_c, 2, dst_argb_plane_size);
52*4e366538SXin Li   memset(dst_argb_opt, 3, dst_argb_plane_size);
53*4e366538SXin Li 
54*4e366538SXin Li   if (kBpp == 1) {
55*4e366538SXin Li     MaskCpuFlags(disable_cpu_flags);  // Disable all CPU optimization.
56*4e366538SXin Li     RotatePlane(src_argb, src_stride_argb, dst_argb_c, dst_stride_argb,
57*4e366538SXin Li                 src_width, src_height, mode);
58*4e366538SXin Li 
59*4e366538SXin Li     MaskCpuFlags(benchmark_cpu_info);  // Enable all CPU optimization.
60*4e366538SXin Li     for (int i = 0; i < benchmark_iterations; ++i) {
61*4e366538SXin Li       RotatePlane(src_argb, src_stride_argb, dst_argb_opt, dst_stride_argb,
62*4e366538SXin Li                   src_width, src_height, mode);
63*4e366538SXin Li     }
64*4e366538SXin Li   } else if (kBpp == 4) {
65*4e366538SXin Li     MaskCpuFlags(disable_cpu_flags);  // Disable all CPU optimization.
66*4e366538SXin Li     ARGBRotate(src_argb, src_stride_argb, dst_argb_c, dst_stride_argb,
67*4e366538SXin Li                src_width, src_height, mode);
68*4e366538SXin Li 
69*4e366538SXin Li     MaskCpuFlags(benchmark_cpu_info);  // Enable all CPU optimization.
70*4e366538SXin Li     for (int i = 0; i < benchmark_iterations; ++i) {
71*4e366538SXin Li       ARGBRotate(src_argb, src_stride_argb, dst_argb_opt, dst_stride_argb,
72*4e366538SXin Li                  src_width, src_height, mode);
73*4e366538SXin Li     }
74*4e366538SXin Li   }
75*4e366538SXin Li 
76*4e366538SXin Li   // Rotation should be exact.
77*4e366538SXin Li   for (int i = 0; i < dst_argb_plane_size; ++i) {
78*4e366538SXin Li     EXPECT_EQ(dst_argb_c[i], dst_argb_opt[i]);
79*4e366538SXin Li   }
80*4e366538SXin Li 
81*4e366538SXin Li   free_aligned_buffer_page_end(dst_argb_c);
82*4e366538SXin Li   free_aligned_buffer_page_end(dst_argb_opt);
83*4e366538SXin Li   free_aligned_buffer_page_end(src_argb);
84*4e366538SXin Li }
85*4e366538SXin Li 
ARGBTestRotate(int src_width,int src_height,int dst_width,int dst_height,libyuv::RotationMode mode,int benchmark_iterations,int disable_cpu_flags,int benchmark_cpu_info)86*4e366538SXin Li static void ARGBTestRotate(int src_width,
87*4e366538SXin Li                            int src_height,
88*4e366538SXin Li                            int dst_width,
89*4e366538SXin Li                            int dst_height,
90*4e366538SXin Li                            libyuv::RotationMode mode,
91*4e366538SXin Li                            int benchmark_iterations,
92*4e366538SXin Li                            int disable_cpu_flags,
93*4e366538SXin Li                            int benchmark_cpu_info) {
94*4e366538SXin Li   TestRotateBpp(src_width, src_height, dst_width, dst_height, mode,
95*4e366538SXin Li                 benchmark_iterations, disable_cpu_flags, benchmark_cpu_info, 4);
96*4e366538SXin Li }
97*4e366538SXin Li 
TEST_F(LibYUVRotateTest,ARGBRotate0_Opt)98*4e366538SXin Li TEST_F(LibYUVRotateTest, ARGBRotate0_Opt) {
99*4e366538SXin Li   ARGBTestRotate(benchmark_width_, benchmark_height_, benchmark_width_,
100*4e366538SXin Li                  benchmark_height_, kRotate0, benchmark_iterations_,
101*4e366538SXin Li                  disable_cpu_flags_, benchmark_cpu_info_);
102*4e366538SXin Li }
103*4e366538SXin Li 
TEST_F(LibYUVRotateTest,ARGBRotate90_Opt)104*4e366538SXin Li TEST_F(LibYUVRotateTest, ARGBRotate90_Opt) {
105*4e366538SXin Li   ARGBTestRotate(benchmark_width_, benchmark_height_, benchmark_height_,
106*4e366538SXin Li                  benchmark_width_, kRotate90, benchmark_iterations_,
107*4e366538SXin Li                  disable_cpu_flags_, benchmark_cpu_info_);
108*4e366538SXin Li }
109*4e366538SXin Li 
TEST_F(LibYUVRotateTest,ARGBRotate180_Opt)110*4e366538SXin Li TEST_F(LibYUVRotateTest, ARGBRotate180_Opt) {
111*4e366538SXin Li   ARGBTestRotate(benchmark_width_, benchmark_height_, benchmark_width_,
112*4e366538SXin Li                  benchmark_height_, kRotate180, benchmark_iterations_,
113*4e366538SXin Li                  disable_cpu_flags_, benchmark_cpu_info_);
114*4e366538SXin Li }
115*4e366538SXin Li 
TEST_F(LibYUVRotateTest,ARGBRotate270_Opt)116*4e366538SXin Li TEST_F(LibYUVRotateTest, ARGBRotate270_Opt) {
117*4e366538SXin Li   ARGBTestRotate(benchmark_width_, benchmark_height_, benchmark_height_,
118*4e366538SXin Li                  benchmark_width_, kRotate270, benchmark_iterations_,
119*4e366538SXin Li                  disable_cpu_flags_, benchmark_cpu_info_);
120*4e366538SXin Li }
121*4e366538SXin Li 
TestRotatePlane(int src_width,int src_height,int dst_width,int dst_height,libyuv::RotationMode mode,int benchmark_iterations,int disable_cpu_flags,int benchmark_cpu_info)122*4e366538SXin Li static void TestRotatePlane(int src_width,
123*4e366538SXin Li                             int src_height,
124*4e366538SXin Li                             int dst_width,
125*4e366538SXin Li                             int dst_height,
126*4e366538SXin Li                             libyuv::RotationMode mode,
127*4e366538SXin Li                             int benchmark_iterations,
128*4e366538SXin Li                             int disable_cpu_flags,
129*4e366538SXin Li                             int benchmark_cpu_info) {
130*4e366538SXin Li   TestRotateBpp(src_width, src_height, dst_width, dst_height, mode,
131*4e366538SXin Li                 benchmark_iterations, disable_cpu_flags, benchmark_cpu_info, 1);
132*4e366538SXin Li }
133*4e366538SXin Li 
TEST_F(LibYUVRotateTest,RotatePlane0_Opt)134*4e366538SXin Li TEST_F(LibYUVRotateTest, RotatePlane0_Opt) {
135*4e366538SXin Li   TestRotatePlane(benchmark_width_, benchmark_height_, benchmark_width_,
136*4e366538SXin Li                   benchmark_height_, kRotate0, benchmark_iterations_,
137*4e366538SXin Li                   disable_cpu_flags_, benchmark_cpu_info_);
138*4e366538SXin Li }
139*4e366538SXin Li 
TEST_F(LibYUVRotateTest,RotatePlane90_Opt)140*4e366538SXin Li TEST_F(LibYUVRotateTest, RotatePlane90_Opt) {
141*4e366538SXin Li   TestRotatePlane(benchmark_width_, benchmark_height_, benchmark_height_,
142*4e366538SXin Li                   benchmark_width_, kRotate90, benchmark_iterations_,
143*4e366538SXin Li                   disable_cpu_flags_, benchmark_cpu_info_);
144*4e366538SXin Li }
145*4e366538SXin Li 
TEST_F(LibYUVRotateTest,RotatePlane180_Opt)146*4e366538SXin Li TEST_F(LibYUVRotateTest, RotatePlane180_Opt) {
147*4e366538SXin Li   TestRotatePlane(benchmark_width_, benchmark_height_, benchmark_width_,
148*4e366538SXin Li                   benchmark_height_, kRotate180, benchmark_iterations_,
149*4e366538SXin Li                   disable_cpu_flags_, benchmark_cpu_info_);
150*4e366538SXin Li }
151*4e366538SXin Li 
TEST_F(LibYUVRotateTest,RotatePlane270_Opt)152*4e366538SXin Li TEST_F(LibYUVRotateTest, RotatePlane270_Opt) {
153*4e366538SXin Li   TestRotatePlane(benchmark_width_, benchmark_height_, benchmark_height_,
154*4e366538SXin Li                   benchmark_width_, kRotate270, benchmark_iterations_,
155*4e366538SXin Li                   disable_cpu_flags_, benchmark_cpu_info_);
156*4e366538SXin Li }
157*4e366538SXin Li 
TEST_F(LibYUVRotateTest,DISABLED_RotatePlane0_Odd)158*4e366538SXin Li TEST_F(LibYUVRotateTest, DISABLED_RotatePlane0_Odd) {
159*4e366538SXin Li   TestRotatePlane(benchmark_width_ + 1, benchmark_height_ + 1,
160*4e366538SXin Li                   benchmark_width_ + 1, benchmark_height_ + 1, kRotate0,
161*4e366538SXin Li                   benchmark_iterations_, disable_cpu_flags_,
162*4e366538SXin Li                   benchmark_cpu_info_);
163*4e366538SXin Li }
164*4e366538SXin Li 
TEST_F(LibYUVRotateTest,DISABLED_RotatePlane90_Odd)165*4e366538SXin Li TEST_F(LibYUVRotateTest, DISABLED_RotatePlane90_Odd) {
166*4e366538SXin Li   TestRotatePlane(benchmark_width_ + 1, benchmark_height_ + 1,
167*4e366538SXin Li                   benchmark_height_ + 1, benchmark_width_ + 1, kRotate90,
168*4e366538SXin Li                   benchmark_iterations_, disable_cpu_flags_,
169*4e366538SXin Li                   benchmark_cpu_info_);
170*4e366538SXin Li }
171*4e366538SXin Li 
TEST_F(LibYUVRotateTest,DISABLED_RotatePlane180_Odd)172*4e366538SXin Li TEST_F(LibYUVRotateTest, DISABLED_RotatePlane180_Odd) {
173*4e366538SXin Li   TestRotatePlane(benchmark_width_ + 1, benchmark_height_ + 1,
174*4e366538SXin Li                   benchmark_width_ + 1, benchmark_height_ + 1, kRotate180,
175*4e366538SXin Li                   benchmark_iterations_, disable_cpu_flags_,
176*4e366538SXin Li                   benchmark_cpu_info_);
177*4e366538SXin Li }
178*4e366538SXin Li 
TEST_F(LibYUVRotateTest,DISABLED_RotatePlane270_Odd)179*4e366538SXin Li TEST_F(LibYUVRotateTest, DISABLED_RotatePlane270_Odd) {
180*4e366538SXin Li   TestRotatePlane(benchmark_width_ + 1, benchmark_height_ + 1,
181*4e366538SXin Li                   benchmark_height_ + 1, benchmark_width_ + 1, kRotate270,
182*4e366538SXin Li                   benchmark_iterations_, disable_cpu_flags_,
183*4e366538SXin Li                   benchmark_cpu_info_);
184*4e366538SXin Li }
185*4e366538SXin Li 
TEST_F(LibYUVRotateTest,RotatePlane90_TestStride)186*4e366538SXin Li TEST_F(LibYUVRotateTest, RotatePlane90_TestStride) {
187*4e366538SXin Li   int argb_plane_size = benchmark_width_ * 4 * abs(benchmark_height_);
188*4e366538SXin Li 
189*4e366538SXin Li   align_buffer_page_end(src_argb, argb_plane_size);
190*4e366538SXin Li   align_buffer_page_end(dst_argb, argb_plane_size);
191*4e366538SXin Li 
192*4e366538SXin Li   EXPECT_EQ(0, ARGBRotate(src_argb, benchmark_width_ * 4, dst_argb,
193*4e366538SXin Li                           benchmark_width_ * 4, benchmark_width_,
194*4e366538SXin Li                           benchmark_height_, kRotate0));
195*4e366538SXin Li 
196*4e366538SXin Li   EXPECT_EQ(0, ARGBRotate(src_argb, benchmark_width_ * 4 - 1, dst_argb,
197*4e366538SXin Li                           benchmark_width_ * 4 - 1, benchmark_width_ - 1,
198*4e366538SXin Li                           benchmark_height_, kRotate0));
199*4e366538SXin Li 
200*4e366538SXin Li   EXPECT_EQ(0, ARGBRotate(src_argb, benchmark_width_ * 4, dst_argb,
201*4e366538SXin Li                           benchmark_width_ * 4, benchmark_width_,
202*4e366538SXin Li                           benchmark_height_, kRotate180));
203*4e366538SXin Li 
204*4e366538SXin Li   EXPECT_EQ(0, ARGBRotate(src_argb, benchmark_width_ * 4 - 1, dst_argb,
205*4e366538SXin Li                           benchmark_width_ * 4 - 1, benchmark_width_ - 1,
206*4e366538SXin Li                           benchmark_height_, kRotate180));
207*4e366538SXin Li 
208*4e366538SXin Li   EXPECT_EQ(0, ARGBRotate(src_argb, benchmark_width_ * 4, dst_argb,
209*4e366538SXin Li                           abs(benchmark_height_) * 4, benchmark_width_,
210*4e366538SXin Li                           benchmark_height_, kRotate90));
211*4e366538SXin Li 
212*4e366538SXin Li   EXPECT_EQ(-1, ARGBRotate(src_argb, benchmark_width_ * 4 - 1, dst_argb,
213*4e366538SXin Li                            abs(benchmark_height_) * 4, benchmark_width_ - 1,
214*4e366538SXin Li                            benchmark_height_, kRotate90));
215*4e366538SXin Li 
216*4e366538SXin Li   EXPECT_EQ(0, ARGBRotate(src_argb, benchmark_width_ * 4, dst_argb,
217*4e366538SXin Li                           abs(benchmark_height_) * 4, benchmark_width_,
218*4e366538SXin Li                           benchmark_height_, kRotate270));
219*4e366538SXin Li 
220*4e366538SXin Li   EXPECT_EQ(-1, ARGBRotate(src_argb, benchmark_width_ * 4 - 1, dst_argb,
221*4e366538SXin Li                            abs(benchmark_height_) * 4, benchmark_width_ - 1,
222*4e366538SXin Li                            benchmark_height_, kRotate270));
223*4e366538SXin Li 
224*4e366538SXin Li   free_aligned_buffer_page_end(dst_argb);
225*4e366538SXin Li   free_aligned_buffer_page_end(src_argb);
226*4e366538SXin Li }
227*4e366538SXin Li 
TestRotatePlane_16(int src_width,int src_height,int dst_width,int dst_height,libyuv::RotationMode mode,int benchmark_iterations,int disable_cpu_flags,int benchmark_cpu_info)228*4e366538SXin Li static void TestRotatePlane_16(int src_width,
229*4e366538SXin Li                                int src_height,
230*4e366538SXin Li                                int dst_width,
231*4e366538SXin Li                                int dst_height,
232*4e366538SXin Li                                libyuv::RotationMode mode,
233*4e366538SXin Li                                int benchmark_iterations,
234*4e366538SXin Li                                int disable_cpu_flags,
235*4e366538SXin Li                                int benchmark_cpu_info) {
236*4e366538SXin Li   if (src_width < 1) {
237*4e366538SXin Li     src_width = 1;
238*4e366538SXin Li   }
239*4e366538SXin Li   if (src_height < 1) {
240*4e366538SXin Li     src_height = 1;
241*4e366538SXin Li   }
242*4e366538SXin Li   if (dst_width < 1) {
243*4e366538SXin Li     dst_width = 1;
244*4e366538SXin Li   }
245*4e366538SXin Li   if (dst_height < 1) {
246*4e366538SXin Li     dst_height = 1;
247*4e366538SXin Li   }
248*4e366538SXin Li   int src_stride = src_width;
249*4e366538SXin Li   int src_plane_size = src_stride * abs(src_height);
250*4e366538SXin Li   align_buffer_page_end_16(src, src_plane_size);
251*4e366538SXin Li   for (int i = 0; i < src_plane_size; ++i) {
252*4e366538SXin Li     src[i] = fastrand() & 0xff;
253*4e366538SXin Li   }
254*4e366538SXin Li 
255*4e366538SXin Li   int dst_stride = dst_width;
256*4e366538SXin Li   int dst_plane_size = dst_stride * dst_height;
257*4e366538SXin Li   align_buffer_page_end_16(dst_c, dst_plane_size);
258*4e366538SXin Li   align_buffer_page_end_16(dst_opt, dst_plane_size);
259*4e366538SXin Li   memset(dst_c, 2, dst_plane_size);
260*4e366538SXin Li   memset(dst_opt, 3, dst_plane_size);
261*4e366538SXin Li 
262*4e366538SXin Li   MaskCpuFlags(disable_cpu_flags);  // Disable all CPU optimization.
263*4e366538SXin Li   RotatePlane_16(src, src_stride, dst_c, dst_stride, src_width, src_height,
264*4e366538SXin Li                  mode);
265*4e366538SXin Li 
266*4e366538SXin Li   MaskCpuFlags(benchmark_cpu_info);  // Enable all CPU optimization.
267*4e366538SXin Li   for (int i = 0; i < benchmark_iterations; ++i) {
268*4e366538SXin Li     RotatePlane_16(src, src_stride, dst_opt, dst_stride, src_width, src_height,
269*4e366538SXin Li                    mode);
270*4e366538SXin Li   }
271*4e366538SXin Li 
272*4e366538SXin Li   // Rotation should be exact.
273*4e366538SXin Li   for (int i = 0; i < dst_plane_size; ++i) {
274*4e366538SXin Li     EXPECT_EQ(dst_c[i], dst_opt[i]);
275*4e366538SXin Li   }
276*4e366538SXin Li 
277*4e366538SXin Li   free_aligned_buffer_page_end_16(dst_c);
278*4e366538SXin Li   free_aligned_buffer_page_end_16(dst_opt);
279*4e366538SXin Li   free_aligned_buffer_page_end_16(src);
280*4e366538SXin Li }
281*4e366538SXin Li 
TEST_F(LibYUVRotateTest,RotatePlane0_16_Opt)282*4e366538SXin Li TEST_F(LibYUVRotateTest, RotatePlane0_16_Opt) {
283*4e366538SXin Li   TestRotatePlane_16(benchmark_width_, benchmark_height_, benchmark_width_,
284*4e366538SXin Li                      benchmark_height_, kRotate0, benchmark_iterations_,
285*4e366538SXin Li                      disable_cpu_flags_, benchmark_cpu_info_);
286*4e366538SXin Li }
287*4e366538SXin Li 
TEST_F(LibYUVRotateTest,RotatePlane90_16_Opt)288*4e366538SXin Li TEST_F(LibYUVRotateTest, RotatePlane90_16_Opt) {
289*4e366538SXin Li   TestRotatePlane_16(benchmark_width_, benchmark_height_, benchmark_height_,
290*4e366538SXin Li                      benchmark_width_, kRotate90, benchmark_iterations_,
291*4e366538SXin Li                      disable_cpu_flags_, benchmark_cpu_info_);
292*4e366538SXin Li }
293*4e366538SXin Li 
TEST_F(LibYUVRotateTest,RotatePlane180_16_Opt)294*4e366538SXin Li TEST_F(LibYUVRotateTest, RotatePlane180_16_Opt) {
295*4e366538SXin Li   TestRotatePlane_16(benchmark_width_, benchmark_height_, benchmark_width_,
296*4e366538SXin Li                      benchmark_height_, kRotate180, benchmark_iterations_,
297*4e366538SXin Li                      disable_cpu_flags_, benchmark_cpu_info_);
298*4e366538SXin Li }
299*4e366538SXin Li 
TEST_F(LibYUVRotateTest,RotatePlane270_16_Opt)300*4e366538SXin Li TEST_F(LibYUVRotateTest, RotatePlane270_16_Opt) {
301*4e366538SXin Li   TestRotatePlane_16(benchmark_width_, benchmark_height_, benchmark_height_,
302*4e366538SXin Li                      benchmark_width_, kRotate270, benchmark_iterations_,
303*4e366538SXin Li                      disable_cpu_flags_, benchmark_cpu_info_);
304*4e366538SXin Li }
305*4e366538SXin Li 
TEST_F(LibYUVRotateTest,RotatePlane0_16_Odd)306*4e366538SXin Li TEST_F(LibYUVRotateTest, RotatePlane0_16_Odd) {
307*4e366538SXin Li   TestRotatePlane_16(benchmark_width_ + 1, benchmark_height_ + 1,
308*4e366538SXin Li                      benchmark_width_ + 1, benchmark_height_ + 1, kRotate0,
309*4e366538SXin Li                      benchmark_iterations_, disable_cpu_flags_,
310*4e366538SXin Li                      benchmark_cpu_info_);
311*4e366538SXin Li }
312*4e366538SXin Li 
TEST_F(LibYUVRotateTest,RotatePlane90_16_Odd)313*4e366538SXin Li TEST_F(LibYUVRotateTest, RotatePlane90_16_Odd) {
314*4e366538SXin Li   TestRotatePlane_16(benchmark_width_ + 1, benchmark_height_ + 1,
315*4e366538SXin Li                      benchmark_height_ + 1, benchmark_width_ + 1, kRotate90,
316*4e366538SXin Li                      benchmark_iterations_, disable_cpu_flags_,
317*4e366538SXin Li                      benchmark_cpu_info_);
318*4e366538SXin Li }
319*4e366538SXin Li 
TEST_F(LibYUVRotateTest,RotatePlane180_16_Odd)320*4e366538SXin Li TEST_F(LibYUVRotateTest, RotatePlane180_16_Odd) {
321*4e366538SXin Li   TestRotatePlane_16(benchmark_width_ + 1, benchmark_height_ + 1,
322*4e366538SXin Li                      benchmark_width_ + 1, benchmark_height_ + 1, kRotate180,
323*4e366538SXin Li                      benchmark_iterations_, disable_cpu_flags_,
324*4e366538SXin Li                      benchmark_cpu_info_);
325*4e366538SXin Li }
326*4e366538SXin Li 
TEST_F(LibYUVRotateTest,RotatePlane270_16_Odd)327*4e366538SXin Li TEST_F(LibYUVRotateTest, RotatePlane270_16_Odd) {
328*4e366538SXin Li   TestRotatePlane_16(benchmark_width_ + 1, benchmark_height_ + 1,
329*4e366538SXin Li                      benchmark_height_ + 1, benchmark_width_ + 1, kRotate270,
330*4e366538SXin Li                      benchmark_iterations_, disable_cpu_flags_,
331*4e366538SXin Li                      benchmark_cpu_info_);
332*4e366538SXin Li }
333*4e366538SXin Li 
334*4e366538SXin Li }  // namespace libyuv
335