Пример #1
0
int main(int argc, char* argv[]) {
  
  if (argc < 3) {
    printInfo();

    return 0;  
  }
	
  char* flag = argv[1];

  if (strcmp(flag, "-c") == 0) {
    int fileSize;
	
    //get the buffer from the input file 
    const char* inBuffer = getBufferFromFile(argv[2], fileSize);

    //make the compressor
    HuffmanCompressor compressor = HuffmanCompressor((char*)inBuffer, fileSize);

    long compSize;
    //compress the data
    unsigned char* compressedData = compressor.compress(compSize);

    std::string path = std::string(argv[2]) + ".bzip";

    //write the compressed data to the disk
    writeBinary(compressedData, compSize, path);

    delete [] compressedData;

    delete [] inBuffer;

    return 0;
  }

  else if (strcmp(flag, "-d") == 0) {
    std::fstream in(argv[2], std::ios::in|std::ios::binary);

    HuffmanDecompressor dec = HuffmanDecompressor(in);

    BYTE* data = dec.decompress();

    int dataSize = dec.getTotalChars();

    writeBinary(data, dataSize, "out.txt");

    delete [] data;

    return 0;
  }

  else {
    printInfo();
  }

  return 0;
}
Пример #2
0
int main(int argc, char *argv[])
{
	char *infile = argv[1];
	char *outfolder = argv[2];
	int rawdump = argv[3] ? 1 : 2;
	short *buffer;
	timeStruct time;
	int status = 1;
	sParameterStruct sSO2Parameters;
	sConfigStruct config;
	config.debug = 0;
	if (log_init(&config)) {
		printf("could not start log file, stop.\n");
	}
#ifdef BENCHMARK
	float startTime;
#endif

	if (argc < 3 || argc > 4) {
		printf("Usage: %s in.raw outfolder [write_raw_dump]\n", argv[0]);
		printf("i.e. %s tests/fixtures/testing_2014_09_22-23_43_55_984_cam_top.raw ./ 1\n", argv[0]);
		return 1;
	}
#ifdef BENCHMARK
	startTime = (float)clock() / CLOCKS_PER_SEC;
#endif

	buffer = getBufferFromFile(infile, 64);

	if(!buffer) return 1;

#ifdef BENCHMARK
	log_debug("reading file took %fms \n",
		  ((float)clock() / CLOCKS_PER_SEC - startTime) * 1000);
#endif

	parse_filename_to_timeStruct(infile, &time);

	sSO2Parameters.dTriggerPulseWidth = 15;
	sSO2Parameters.dExposureTime = 0;
	sSO2Parameters.dDarkCurrent = 0;
	sSO2Parameters.identifier = 'A';
	sSO2Parameters.stBuffer = buffer;
	sSO2Parameters.timestampBefore = &time;
	sSO2Parameters.dark = 0;
	sSO2Parameters.dExposureTime = 0.000000;

	config.dImageCounter = 0;
	config.dBufferlength = 1376256;
	config.dHistMinInterval = 350;
	config.dHistPercentage = 5;
	config.dInterFrameDelay = 10;
	config.dFixTime = 0.000000;
	config.cFileNamePrefix = "image";
	config.cConfigFileName = "";

	config.cImagePath = outfolder;
	config.processing = rawdump;

	io_init(&config);

	status = io_write(&sSO2Parameters, &config);
	if (status == 0) {
		log_debug("Converted %s to %s", infile, outfolder);
	} else {
		log_error("Something wrong writing to File.");
	}

	io_uninit(&config);
	free(buffer);
	return 0;
}