add reference text to seed tANS
authorGeoffrey Allott <geoffrey@allott.email>
Sat, 3 Sep 2022 20:31:20 +0000 (21:31 +0100)
committerGeoffrey Allott <geoffrey@allott.email>
Sat, 3 Sep 2022 20:31:20 +0000 (21:31 +0100)
src/tANS.c

index b55c47e69f6294a9f7e6f94d8c67f09c965af496..4674408a5dd889dfd98989c214b251017a035a4d 100644 (file)
@@ -45,6 +45,15 @@ static size_t tANS_max_compressed_size(size_t len)
     return len * 2;
 }
 
+static char ref_text[] =
+    "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Hac habitasse platea dictumst quisque sagittis. Neque viverra justo nec ultrices dui sapien eget mi proin. Interdum velit euismod in pellentesque massa. Tortor at auctor urna nunc id cursus metus aliquam eleifend. Erat pellentesque adipiscing commodo elit. Nunc sed velit dignissim sodales ut. Pulvinar pellentesque habitant morbi tristique senectus. Eu nisl nunc mi ipsum faucibus. Nulla facilisi cras fermentum odio eu. Tellus molestie nunc non blandit massa enim nec dui nunc. Sit amet volutpat consequat mauris nunc congue. Tristique nulla aliquet enim tortor at auctor urna.\n"
+    "Sit amet risus nullam eget. Nibh ipsum consequat nisl vel pretium lectus. Ut aliquam purus sit amet luctus. Id faucibus nisl tincidunt eget nullam non. Vitae purus faucibus ornare suspendisse sed nisi. Ut placerat orci nulla pellentesque dignissim enim. Neque aliquam vestibulum morbi blandit cursus risus at ultrices. Malesuada pellentesque elit eget gravida. Imperdiet dui accumsan sit amet nulla facilisi morbi tempus iaculis. Ultricies mi quis hendrerit dolor magna eget est lorem. Varius duis at consectetur lorem. Pharetra pharetra massa massa ultricies mi quis. Diam ut venenatis tellus in metus vulputate eu. Vitae tortor condimentum lacinia quis vel eros donec. Pretium lectus quam id leo in vitae turpis massa sed. Gravida dictum fusce ut placerat orci nulla pellentesque dignissim. Nulla facilisi morbi tempus iaculis urna id volutpat. Neque convallis a cras semper auctor neque vitae tempus quam. Nam aliquam sem et tortor consequat id porta. Habitasse platea dictumst quisque sagittis purus sit.\n"
+    "Facilisi morbi tempus iaculis urna id volutpat. Neque sodales ut etiam sit amet nisl purus in mollis. Amet est placerat in egestas erat imperdiet. Consequat semper viverra nam libero justo laoreet sit amet cursus. Hac habitasse platea dictumst vestibulum rhoncus. Amet luctus venenatis lectus magna fringilla urna porttitor rhoncus. Sed vulputate mi sit amet. Lorem ipsum dolor sit amet consectetur adipiscing elit pellentesque. Natoque penatibus et magnis dis parturient montes nascetur. Mauris a diam maecenas sed enim ut sem. Nullam non nisi est sit amet facilisis.\n"
+    "Ligula ullamcorper malesuada proin libero nunc. Mauris ultrices eros in cursus. Nunc pulvinar sapien et ligula ullamcorper. Morbi tincidunt augue interdum velit euismod in pellentesque. Id aliquet risus feugiat in ante metus dictum. Suscipit tellus mauris a diam maecenas sed enim. Odio eu feugiat pretium nibh ipsum consequat nisl vel. Arcu dictum varius duis at. Vulputate sapien nec sagittis aliquam malesuada bibendum arcu vitae. At erat pellentesque adipiscing commodo.\n"
+    "Malesuada bibendum arcu vitae elementum curabitur vitae. Cursus vitae congue mauris rhoncus aenean vel. Eleifend mi in nulla posuere sollicitudin aliquam ultrices. Aliquet eget sit amet tellus cras adipiscing. Nunc eget lorem dolor sed. Viverra nam libero justo laoreet. Quisque id diam vel quam elementum pulvinar etiam. Egestas egestas fringilla phasellus faucibus scelerisque. Ac felis donec et odio. Massa id neque aliquam vestibulum morbi blandit cursus risus. Risus feugiat in ante metus dictum. Sed vulputate mi sit amet mauris commodo quis imperdiet.\n";
+static uint8_t ref_enc[sizeof(ref_text)];
+static uint8_t ref_aux[sizeof(ref_text)];
+
 static int tANS_init_symbol_tbls(struct tANS_symbol_tbl symbol_tbls[static 3], const uint8_t *buf, uint32_t len)
 {
     uint32_t i, j, count, sum, zeroes;
@@ -133,7 +142,7 @@ static int stree_tANS_compress_file(FILE* input, FILE *output)
 
     if (fwrite(&magic, sizeof magic, 1, output) != 1) goto fail;
 
-    if (tANS_init_symbol_tbls(symbol_tbls, (const uint8_t *) "", 0) != 0) goto fail;
+    if (tANS_init_symbol_tbls(symbol_tbls, ref_enc, sizeof ref_enc) != 0) goto fail;
 
     while (!feof(input)) {
         tANS_rl_encode_st_init(st, symbol_tbls);
@@ -200,7 +209,7 @@ static int stree_tANS_decompress_file(FILE* input, FILE *output)
         goto fail;
     }
 
-    if (tANS_init_symbol_tbls(symbol_tbls, (const uint8_t *) "", 0) != 0) goto fail;
+    if (tANS_init_symbol_tbls(symbol_tbls, ref_enc, sizeof ref_enc) != 0) goto fail;
 
     while (!feof(input)) {
         tANS_rl_decode_st_init(st, symbol_tbls);
@@ -258,7 +267,7 @@ static int tANS_compress_file(FILE* input, FILE *output)
 
     if (fwrite(&magic, sizeof magic, 1, output) != 1) goto fail;
 
-    if (tANS_init_symbol_tbls(symbol_tbls, (const uint8_t *) "", 0) != 0) goto fail;
+    if (tANS_init_symbol_tbls(symbol_tbls, ref_enc, sizeof ref_enc) != 0) goto fail;
 
     while (!feof(input)) {
         tANS_rl_encode_st_init(st, symbol_tbls);
@@ -320,7 +329,7 @@ static int tANS_decompress_file(FILE* input, FILE *output)
         goto fail;
     }
 
-    if (tANS_init_symbol_tbls(symbol_tbls, (const uint8_t *) "", 0) != 0) goto fail;
+    if (tANS_init_symbol_tbls(symbol_tbls, ref_enc, sizeof ref_enc) != 0) goto fail;
 
     while (!feof(input)) {
         tANS_rl_decode_st_init(st, symbol_tbls);
@@ -501,6 +510,8 @@ int main(int argc, char *argv[])
     from_stdin = argc == 0;
     to_stdout |= from_stdin;
 
+    if (stree_encode(sizeof ref_text, (const uint8_t *) ref_text, ref_enc, ref_aux) != 0) return 1;
+
     do {
         if (from_stdin)
             input = stdin;