Added some comments for better clarity

git-svn-id: https://lz4.googlecode.com/svn/trunk@6 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
This commit is contained in:
yann.collet.73@gmail.com 2011-05-21 07:18:49 +00:00
parent f03375468c
commit 06abb77c00
3 changed files with 18 additions and 11 deletions

1
LZ4.c
View File

@ -1,6 +1,7 @@
/* /*
LZ4 - Fast LZ compression algorithm LZ4 - Fast LZ compression algorithm
Copyright (C) 2011, Yann Collet. Copyright (C) 2011, Yann Collet.
BSD License
Redistribution and use in source and binary forms, with or without Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are modification, are permitted provided that the following conditions are

12
LZ4.h
View File

@ -2,6 +2,7 @@
LZ4 - Fast LZ compression algorithm LZ4 - Fast LZ compression algorithm
Header File Header File
Copyright (C) 2011, Yann Collet. Copyright (C) 2011, Yann Collet.
BSD License
Redistribution and use in source and binary forms, with or without Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are modification, are permitted provided that the following conditions are
@ -36,9 +37,9 @@ extern "C" {
// Instructions // Instructions
//**************************** //****************************
// Uncomment next line to ensure that LZ4_Decode will never write in destination buffer more than "originalSize" bytes // Uncomment next line to ensure that LZ4_Decode will never write in destination buffer more than "decompressedSize" bytes
// If commented, the decoder may write up to 3 bytes more than originalSize, so provide extra room in dest buffer for that // If commented, the decoder may write up to 3 bytes more than decompressedSize, so provide extra room in dest buffer for that
// Recommendation : commented, for improved performance; ensure that destination buffer is at least originalSize + 3 Bytes // Recommendation : keep commented, for improved performance; ensure that destination buffer is at least decompressedSize + 3 Bytes
// #define SAFEWRITEBUFFER // #define SAFEWRITEBUFFER
@ -52,10 +53,13 @@ int LZ4_decode (char* source, char* dest, int isize);
/* /*
LZ4_compress : LZ4_compress :
return : the number of bytes in compressed buffer dest return : the number of bytes in compressed buffer dest
note : this simple function explicitly allocate/deallocate memory **at each call** note : destination buffer must be already allocated.
To avoid any problem, size it to handle worst cases situations (input data not compressible)
Worst case size is : "inputsize + 0.4%", with "0.4%" being at least 8 bytes.
LZ4_decode : LZ4_decode :
return : the number of bytes in decoded buffer dest return : the number of bytes in decoded buffer dest
note : destination buffer must be already allocated.
*/ */

16
main.c
View File

@ -1,6 +1,5 @@
/* /*
LZ4 Demo program Demo compression program using LZ4 compression
Main file I/O
Copyright (C) Yann Collet 2011, Copyright (C) Yann Collet 2011,
This program is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify
@ -17,7 +16,12 @@
along with this program; if not, write to the Free Software along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/ */
/*
Note : this is *only* a demo program, an example to show how LZ4 can be used.
It is not considered part of LZ4 compression library.
The license of the demo program is GPL.
The license of LZ4 is BSD.
*/
//**************************** //****************************
// Includes // Includes
@ -30,7 +34,7 @@
//**************************** //****************************
// Constants // Constants
//**************************** //****************************
#define COMPRESSOR_NAME "LZ4 - Demo program" #define COMPRESSOR_NAME "Demo compression program using LZ4"
#define COMPRESSOR_VERSION "v1.0" #define COMPRESSOR_VERSION "v1.0"
#define COMPILED __DATE__ #define COMPILED __DATE__
#define AUTHOR "Yann Collet" #define AUTHOR "Yann Collet"
@ -41,7 +45,6 @@
#define CHUNKSIZE (8<<20) // 8 MB #define CHUNKSIZE (8<<20) // 8 MB
#define CACHELINE 64 #define CACHELINE 64
#define OUT_CHUNKSIZE (CHUNKSIZE + CHUNKSIZE/256 + CACHELINE) #define OUT_CHUNKSIZE (CHUNKSIZE + CHUNKSIZE/256 + CACHELINE)
#define PRIME 181
#define ARCHIVE_MAGICNUMBER 0x184C2102 #define ARCHIVE_MAGICNUMBER 0x184C2102
#define ARCHIVE_MAGICNUMBER_SIZE 4 #define ARCHIVE_MAGICNUMBER_SIZE 4
@ -103,7 +106,7 @@ compress_file(char* input_filename, char* output_filename)
// Compress Block // Compress Block
outSize = LZ4_compress(in_buff, out_buff+4, inSize); outSize = LZ4_compress(in_buff, out_buff+4, inSize);
* (unsigned long*) out_buff = outSize; * (unsigned long*) out_buff = outSize;
compressedfilesize += outSize; compressedfilesize += outSize+4;
// Write Block // Write Block
fwrite(out_buff, 1, outSize+4, foutput); fwrite(out_buff, 1, outSize+4, foutput);
@ -206,7 +209,6 @@ int main(int argc, char** argv)
// Forced Decoding // Forced Decoding
if( argument[0] =='d' ) if( argument[0] =='d' )
{ decode=1; continue; } { decode=1; continue; }
} }
// first provided filename is input // first provided filename is input