Skip to content
Snippets Groups Projects
Commit 9d9d8ecf authored by Dominik Loidolt's avatar Dominik Loidolt
Browse files

Adapt cmp_tool to the chunk decompression

parent c34dbbae
No related branches found
No related tags found
1 merge request!26Adapt cmp_tool to the chunk decompression
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
#include <cmp_tool-config.h> #include <cmp_tool-config.h>
#include <compiler.h> #include <compiler.h>
#include <cmp_io.h> #include "cmp_io.h"
#include <cmp_support.h> #include <cmp_support.h>
#include <rdcu_cmd.h> #include <rdcu_cmd.h>
#include <byteorder.h> #include <byteorder.h>
...@@ -168,7 +168,6 @@ static FILE *open_file(const char *dirname, const char *filename) ...@@ -168,7 +168,6 @@ static FILE *open_file(const char *dirname, const char *filename)
int write_input_data_to_file(const void *data, uint32_t data_size, enum cmp_data_type data_type, int write_input_data_to_file(const void *data, uint32_t data_size, enum cmp_data_type data_type,
const char *output_prefix, const char *name_extension, int flags) const char *output_prefix, const char *name_extension, int flags)
{ {
size_t sample_size = size_of_a_sample(data_type);
uint8_t *tmp_buf; uint8_t *tmp_buf;
int return_value; int return_value;
...@@ -178,15 +177,18 @@ int write_input_data_to_file(const void *data, uint32_t data_size, enum cmp_data ...@@ -178,15 +177,18 @@ int write_input_data_to_file(const void *data, uint32_t data_size, enum cmp_data
if (data_size == 0) if (data_size == 0)
return 0; return 0;
if (!sample_size)
return -1;
tmp_buf = malloc(data_size); tmp_buf = malloc(data_size);
if (!tmp_buf) if (!tmp_buf)
return -1; return -1;
memcpy(tmp_buf, data, data_size); memcpy(tmp_buf, data, data_size);
cmp_input_big_to_cpu_endianness(tmp_buf, data_size, data_type);
if (data_type == DATA_TYPE_CHUNK)
return_value = cpu_to_be_chunk(tmp_buf, data_size);
else
return_value = cmp_input_big_to_cpu_endianness(tmp_buf, data_size, data_type);
if (!return_value)
return_value = write_data_to_file(tmp_buf, data_size, output_prefix, return_value = write_data_to_file(tmp_buf, data_size, output_prefix,
name_extension, flags); name_extension, flags);
...@@ -1432,6 +1434,7 @@ ssize_t read_file_data(const char *file_name, enum cmp_data_type data_type, ...@@ -1432,6 +1434,7 @@ ssize_t read_file_data(const char *file_name, enum cmp_data_type data_type,
if (size < 0) if (size < 0)
return size; return size;
if (data_type != DATA_TYPE_CHUNK) {
samples = cmp_input_size_to_samples((uint32_t)size, data_type); samples = cmp_input_size_to_samples((uint32_t)size, data_type);
if (samples < 0) { if (samples < 0) {
fprintf(stderr, "%s: %s: Error: The data are not correct formatted for the used compression data type.\n", fprintf(stderr, "%s: %s: Error: The data are not correct formatted for the used compression data type.\n",
...@@ -1442,7 +1445,11 @@ ssize_t read_file_data(const char *file_name, enum cmp_data_type data_type, ...@@ -1442,7 +1445,11 @@ ssize_t read_file_data(const char *file_name, enum cmp_data_type data_type,
err = cmp_input_big_to_cpu_endianness(buf, (uint32_t)size, data_type); err = cmp_input_big_to_cpu_endianness(buf, (uint32_t)size, data_type);
if (err) if (err)
return -1; return -1;
} else {
err = be_to_cpu_chunk(buf, (uint32_t)size);
if (err)
return -1;
}
return size; return size;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment