xref: /aosp_15_r20/external/libyuv/util/i444tonv12_eg.cc (revision 4e366538070a3a6c5c163c31b791eab742e1657a)
1 
2 #include "libyuv/convert.h"
3 
4 #include <stdio.h>   // for printf
5 #include <string.h>  // for memset
6 
main(int,char **)7 int main(int, char**) {
8   unsigned char src_i444[640 * 400 * 3];
9   unsigned char dst_nv12[640 * 400 * 3 / 2];
10 
11   for (size_t i = 0; i < sizeof(src_i444); ++i) {
12     src_i444[i] = i & 255;
13   }
14   memset(dst_nv12, 0, sizeof(dst_nv12));
15   libyuv::I444ToNV12(&src_i444[0], 640,              // source Y
16                      &src_i444[640 * 400], 640,      // source U
17                      &src_i444[640 * 400 * 2], 640,  // source V
18                      &dst_nv12[0], 640,              // dest Y
19                      &dst_nv12[640 * 400], 640,      // dest UV
20                      640, 400);                      // width and height
21 
22   int checksum = 0;
23   for (size_t i = 0; i < sizeof(dst_nv12); ++i) {
24     checksum += dst_nv12[i];
25   }
26   printf("checksum %x %s\n", checksum, checksum == 0x2ec0c00 ? "PASS" : "FAIL");
27   return 0;
28 }