#include "VidHeader.cpp" int main( int argc, char ** argv ){ if( argc < 2 ){ fprintf(stderr,"Usage: zlib_expand \n."); exit(1); } const char * in_filename = argv[1]; char * out_filename = new char[strlen(in_filename) + 20]; strcpy(out_filename, in_filename); char * chop_out = strstr(out_filename,".zlib"); if( chop_out ) *chop_out = 0; else sprintf(out_filename, "%s.unzlib", in_filename); FILE * in_file = fopen(in_filename, "rb"); if( in_file == NULL ){ fprintf(stderr,"%s:%d Unable to open input file in 'rb' mode.\n%s\n", __FILE__, __LINE__, in_filename); exit(1); } FILE * out_file = fopen(out_filename, "wb"); if( in_file == NULL ){ fprintf(stderr,"%s:%d Unable to open output file in 'wb' mode.\n%s\n", __FILE__, __LINE__, out_filename); exit(1); } fseek(in_file, 0, SEEK_END); int in_file_size = ftell(in_file); fseek(in_file, 0, SEEK_SET); uchar * in_array = new uchar[in_file_size]; int read_size = fread(in_array, 1, in_file_size, in_file); fclose(in_file); ulong out_file_size = 0; uchar * out_array = NULL; if( uncompress_MT( out_array, out_file_size, in_array, in_file_size ) != Z_OK ){ fprintf( stderr,"%s:%d Could not decompress, uncompress_MT gives out_file_size = %lu bytes.\n", __FILE__, __LINE__, out_file_size ); return 1; } fwrite(out_array, 1, out_file_size, out_file); fclose(out_file); unlink(in_filename); delete [] out_filename; delete [] out_array; delete [] in_array; }