no need for 64bit here
[platform/upstream/libaec.git] / src / test_szcomp.c
1 #include <stdio.h>
2 #include <unistd.h>
3 #include <stdlib.h>
4 #include <string.h>
5 #include "szlib.h"
6
7 #define OPTIONS_MASK        (SZ_RAW_OPTION_MASK     \
8                              | SZ_MSB_OPTION_MASK   \
9                              | SZ_NN_OPTION_MASK)
10 #define PIXELS_PER_BLOCK    (8)
11 #define PIXELS_PER_SCANLINE (PIXELS_PER_BLOCK*128)
12
13 int main(int argc, char *argv[])
14 {
15     int status;
16     SZ_com_t sz_param;
17     unsigned char *source, *dest, *dest1;
18     size_t destLen, dest1Len, sourceLen;
19     FILE *fp;
20
21     if (argc < 3)
22     {
23         fprintf(stderr, "Usage: %s buffer_size file\n", argv[0]);
24         return 1;
25     }
26     sz_param.options_mask = OPTIONS_MASK;
27     sz_param.bits_per_pixel = 64;
28     sz_param.pixels_per_block = PIXELS_PER_BLOCK;
29     sz_param.pixels_per_scanline = PIXELS_PER_SCANLINE;
30
31     sourceLen = destLen = atoi(argv[1]);
32
33     source = (unsigned char *)malloc(sourceLen);
34     dest = (unsigned char *)malloc(destLen);
35     dest1 = (unsigned char *)malloc(destLen);
36
37     if (source == NULL || dest == NULL || dest1 == NULL)
38         return 1;
39
40     if ((fp = fopen(argv[2], "r")) == NULL)
41     {
42         fprintf(stderr, "Can't open %s\n", argv[2]);
43         exit(-1);
44     }
45
46     sourceLen = fread(source, 1, sourceLen, fp);
47
48     status = SZ_BufftoBuffCompress(dest, &destLen,
49                                    source, sourceLen, &sz_param);
50     if (status != SZ_OK)
51         return status;
52
53     dest1Len = sourceLen;
54     status = SZ_BufftoBuffDecompress(dest1, &dest1Len,
55                                      dest, destLen, &sz_param);
56     if (status != SZ_OK)
57         return status;
58
59     if (memcmp(source, dest1, sourceLen) != 0)
60         fprintf(stderr, "File %s Buffers differ\n", argv[2]);
61
62     free(source);
63     free(dest);
64     free(dest1);
65     return 0;
66 }