initial decompression workflow in cmdl tool
This commit is contained in:
parent
12f937ecac
commit
d631f693c9
1 changed files with 117 additions and 2 deletions
|
@ -78,6 +78,10 @@
|
||||||
"| ERROR: Invalid file type. |\n"\
|
"| ERROR: Invalid file type. |\n"\
|
||||||
"o##########################################################o\n"
|
"o##########################################################o\n"
|
||||||
|
|
||||||
|
#define FINERROR "o##########################################################o\n"\
|
||||||
|
"| ERROR: Could not open specified input file. |\n"\
|
||||||
|
"o##########################################################o\n"
|
||||||
|
|
||||||
#define FOUERROR "o##########################################################o\n"\
|
#define FOUERROR "o##########################################################o\n"\
|
||||||
"| ERROR: Could not open specified output file. |\n"\
|
"| ERROR: Could not open specified output file. |\n"\
|
||||||
"o##########################################################o\n"
|
"o##########################################################o\n"
|
||||||
|
@ -1085,6 +1089,7 @@ int main(int argc, char *argv[])
|
||||||
! DEFINE INT VARIABLES: !
|
! DEFINE INT VARIABLES: !
|
||||||
\*-----------------------*/
|
\*-----------------------*/
|
||||||
uint64_t size = 0;
|
uint64_t size = 0;
|
||||||
|
uint64_t root, Lfield;
|
||||||
uint8_t i;
|
uint8_t i;
|
||||||
uint8_t error_handle = EXIT_SUCCESS;
|
uint8_t error_handle = EXIT_SUCCESS;
|
||||||
|
|
||||||
|
@ -1115,6 +1120,7 @@ int main(int argc, char *argv[])
|
||||||
! DEFINE DER. VARIABLES: !
|
! DEFINE DER. VARIABLES: !
|
||||||
\*-----------------------*/
|
\*-----------------------*/
|
||||||
bwc_precision precision;
|
bwc_precision precision;
|
||||||
|
bwc_header *header;
|
||||||
bwc_stream *stream = NULL;
|
bwc_stream *stream = NULL;
|
||||||
bwc_codec *coder = NULL;
|
bwc_codec *coder = NULL;
|
||||||
|
|
||||||
|
@ -1165,7 +1171,6 @@ int main(int argc, char *argv[])
|
||||||
if ((arguments.optSet & FLOUT) == 0)
|
if ((arguments.optSet & FLOUT) == 0)
|
||||||
arguments.out = arguments.in;
|
arguments.out = arguments.in;
|
||||||
|
|
||||||
printf("%s \n", arguments.out);
|
|
||||||
if ((buffer = strrchr(arguments.out, '.')) == NULL)
|
if ((buffer = strrchr(arguments.out, '.')) == NULL)
|
||||||
{
|
{
|
||||||
error_handle = EXIT_FAILURE;
|
error_handle = EXIT_FAILURE;
|
||||||
|
@ -1439,7 +1444,117 @@ int main(int argc, char *argv[])
|
||||||
}
|
}
|
||||||
else if (arguments.mode == cli_dcp)
|
else if (arguments.mode == cli_dcp)
|
||||||
{
|
{
|
||||||
printf("Decompression\n");
|
if ((fp = fopen(arguments.in, "r")) == NULL)
|
||||||
|
{
|
||||||
|
error_handle = EXIT_FAILURE;
|
||||||
|
printf(FINERROR);
|
||||||
|
goto OUT;
|
||||||
|
}
|
||||||
|
|
||||||
|
root = ftell(fp);
|
||||||
|
fseek(fp, 0L, SEEK_END);
|
||||||
|
Lfield = ftell(fp) - root;
|
||||||
|
fseek(fp, root, SEEK_SET);
|
||||||
|
|
||||||
|
if (arguments.verbose == true)
|
||||||
|
{
|
||||||
|
strcat(cli_verbose, bwc_header_art);
|
||||||
|
strcat(cli_verbose, "--------------------------- I/O --------------------------\n\n");
|
||||||
|
|
||||||
|
sprintf(cli_buffer," Input: %s \n", arguments.in);
|
||||||
|
strcat(cli_verbose, cli_buffer);
|
||||||
|
memset(cli_buffer, '0', sizeof(char) * 1024);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Evaluate the appropriate output file. */
|
||||||
|
if ((arguments.optSet & FLOUT) == 0)
|
||||||
|
arguments.out = arguments.in;
|
||||||
|
|
||||||
|
if ((buffer = strrchr(arguments.out, '.')) == NULL)
|
||||||
|
{
|
||||||
|
error_handle = EXIT_FAILURE;
|
||||||
|
printf(TYPERROR);
|
||||||
|
goto OUT;
|
||||||
|
}
|
||||||
|
cli_output = calloc(strlen(arguments.out) - strlen(buffer) + 5, sizeof(char));
|
||||||
|
if (cli_output == NULL)
|
||||||
|
{
|
||||||
|
error_handle = EXIT_FAILURE;
|
||||||
|
printf(MEMERROR);
|
||||||
|
goto OUT;
|
||||||
|
}
|
||||||
|
sprintf(cli_output, "%.*s.eas", (int)(strlen(arguments.out) - strlen(buffer)), arguments.out);
|
||||||
|
|
||||||
|
if (arguments.verbose == true)
|
||||||
|
{
|
||||||
|
sprintf(cli_buffer," Output: %s \n", cli_output);
|
||||||
|
strcat(cli_verbose, cli_buffer);
|
||||||
|
memset(cli_buffer, '0', sizeof(char) * 1024);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((arguments.verbose == true) &&
|
||||||
|
(delim == true))
|
||||||
|
{
|
||||||
|
|
||||||
|
strcat(cli_verbose, " __________________________________________________________\n");
|
||||||
|
strcat(cli_verbose, "\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (arguments.verbose == true)
|
||||||
|
{
|
||||||
|
memset(cli_buffer, '0', sizeof(char) * 1024);
|
||||||
|
strcat(cli_verbose, "\n==============================================================\n");
|
||||||
|
printf("%s", cli_verbose);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Read the codestream from the specified file. */
|
||||||
|
input = calloc(Lfield, sizeof(uchar));
|
||||||
|
if (fread(input, sizeof(uchar), Lfield, fp) != Lfield)
|
||||||
|
{
|
||||||
|
error_handle = EXIT_FAILURE;
|
||||||
|
printf(RDERROR);
|
||||||
|
goto OUT;
|
||||||
|
}
|
||||||
|
|
||||||
|
header = bwc_open_header(input);
|
||||||
|
|
||||||
|
size = header->info.nX * header->info.nY * header->info.nZ *
|
||||||
|
header->info.nTS * header->info.nPar;
|
||||||
|
|
||||||
|
if(header->info.data_prec == bwc_precision_double)
|
||||||
|
{
|
||||||
|
output = calloc(size, sizeof(double));
|
||||||
|
}
|
||||||
|
else if(header->info.data_prec == bwc_precision_single)
|
||||||
|
{
|
||||||
|
output = calloc(size, sizeof(float));
|
||||||
|
}
|
||||||
|
|
||||||
|
bwc_close_header(header);
|
||||||
|
|
||||||
|
stream = bwc_init_stream(input, output, comp);
|
||||||
|
coder = bwc_alloc_decoder();
|
||||||
|
|
||||||
|
//if (arguments.verbose == true)
|
||||||
|
//{
|
||||||
|
//memset(cli_buffer, '0', sizeof(char) * 1024);
|
||||||
|
//strcat(cli_verbose, "\n==============================================================\n");
|
||||||
|
//printf("%s", cli_verbose);
|
||||||
|
//}
|
||||||
|
|
||||||
|
/* Initialize the rate control string according to the *
|
||||||
|
* specified bit rate/compression ratio. */
|
||||||
|
if (bwc_create_decompression(coder, stream, 0) == EXIT_FAILURE)
|
||||||
|
{
|
||||||
|
error_handle = EXIT_FAILURE;
|
||||||
|
goto OUT;
|
||||||
|
}
|
||||||
|
|
||||||
|
size = bwc_decompress(coder, stream);
|
||||||
|
|
||||||
|
//write_eas3(output, cli_output);
|
||||||
|
|
||||||
|
goto OUT;
|
||||||
}
|
}
|
||||||
else if (arguments.mode == cli_anl)
|
else if (arguments.mode == cli_anl)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue