Code improvements using 'g++-4.4.0' to trace the code (v1.4). Thanks to Winfried for this patch.
This commit is contained in:
parent
3ecae15da2
commit
54214fb65f
|
@ -5,6 +5,8 @@ What's New for OpenJPEG
|
|||
! : changed
|
||||
+ : added
|
||||
|
||||
March 24, 2010
|
||||
* [FOD] Code improvements using 'g++-4.4.0' to trace the code. Thanks to Winfried for this patch.
|
||||
|
||||
March 7, 2010
|
||||
* [FOD] Fixed small compatibility issues with win32 in codec (moved include <strings.h>)
|
||||
|
|
|
@ -49,7 +49,7 @@ const char *optarg; /* argument associated with option */
|
|||
|
||||
typedef struct option
|
||||
{
|
||||
char *name;
|
||||
const char *name;
|
||||
int has_arg;
|
||||
int *flag;
|
||||
int val;
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
typedef struct option
|
||||
{
|
||||
char *name;
|
||||
const char *name;
|
||||
int has_arg;
|
||||
int *flag;
|
||||
int val;
|
||||
|
|
|
@ -1463,7 +1463,7 @@ int imagetotif(opj_image_t * image, const char *outfile) {
|
|||
unsigned char *dat8;
|
||||
int i, ssize;
|
||||
ssize = TIFFStripSize(tif);
|
||||
dat8 = buf;
|
||||
dat8 = (unsigned char*)buf;
|
||||
if (image->comps[0].prec == 8){
|
||||
for (i=0; i<ssize-2; i+=3) { // 8 bits per pixel
|
||||
int r = 0,g = 0,b = 0;
|
||||
|
@ -1658,7 +1658,7 @@ int imagetotif(opj_image_t * image, const char *outfile) {
|
|||
for (strip = 0; strip < TIFFNumberOfStrips(tif); strip++) {
|
||||
unsigned char *dat8;
|
||||
int i;
|
||||
dat8 = buf;
|
||||
dat8 = (unsigned char*)buf;
|
||||
if (image->comps[0].prec == 8){
|
||||
for (i=0; i<TIFFStripSize(tif); i+=1) { // 8 bits per pixel
|
||||
if(index < imgsize){
|
||||
|
@ -1799,7 +1799,7 @@ opj_image_t* tiftoimage(const char *filename, opj_cparameters_t *parameters)
|
|||
unsigned char *dat8;
|
||||
int i, ssize;
|
||||
ssize = TIFFReadEncodedStrip(tif, strip, buf, strip_size);
|
||||
dat8 = buf;
|
||||
dat8 = (unsigned char*)buf;
|
||||
|
||||
if (Info.tiBps==12){
|
||||
for (i=0; i<ssize; i+=9) { /*12 bits per pixel*/
|
||||
|
@ -1895,7 +1895,7 @@ opj_image_t* tiftoimage(const char *filename, opj_cparameters_t *parameters)
|
|||
unsigned char *dat8;
|
||||
int i, ssize;
|
||||
ssize = TIFFReadEncodedStrip(tif, strip, buf, strip_size);
|
||||
dat8 = buf;
|
||||
dat8 = (unsigned char*)buf;
|
||||
|
||||
if (Info.tiBps==12){
|
||||
for (i=0; i<ssize; i+=3) { /* 12 bits per pixel*/
|
||||
|
|
|
@ -910,7 +910,7 @@ int parse_cmdline_encoder(int argc, char **argv, opj_cparameters_t *parameters,
|
|||
while (sscanf(s, "T%d=%d,%d,%d,%d,%d,%4s", &POC[numpocs].tile,
|
||||
&POC[numpocs].resno0, &POC[numpocs].compno0,
|
||||
&POC[numpocs].layno1, &POC[numpocs].resno1,
|
||||
&POC[numpocs].compno1, &POC[numpocs].progorder) == 7) {
|
||||
&POC[numpocs].compno1, POC[numpocs].progorder) == 7) {
|
||||
POC[numpocs].prg1 = give_progression(POC[numpocs].progorder);
|
||||
numpocs++;
|
||||
while (*s && *s != '/') {
|
||||
|
|
|
@ -73,7 +73,7 @@ typedef struct img_folder{
|
|||
/** The directory path of the folder containing input images*/
|
||||
char *imgdirpath;
|
||||
/** Output format*/
|
||||
char *out_format;
|
||||
const char *out_format;
|
||||
/** Enable option*/
|
||||
char set_imgdir;
|
||||
/** Enable Cod Format for output*/
|
||||
|
|
|
@ -864,7 +864,7 @@ void j2k_read_sot() {
|
|||
if (partno >= tile->Cztile_parts)
|
||||
{
|
||||
tilepart_tmp = (info_tile_part_t*)malloc((INCREMENT + tile->Cztile_parts) * sizeof(info_tile_part_t));
|
||||
memcpy(tmp, tile->tile_parts, tile->Cztile_parts);
|
||||
memcpy(tilepart_tmp, tile->tile_parts, tile->Cztile_parts);
|
||||
tile->Cztile_parts += INCREMENT;
|
||||
free(tile->tile_parts);
|
||||
tile->tile_parts = tilepart_tmp;
|
||||
|
@ -1008,7 +1008,7 @@ void j2k_read_unk() {
|
|||
|
||||
int j2k_index_JPIP(char *Idx_file, char *J2K_file, int len, int version){
|
||||
FILE *dest;
|
||||
char *index;
|
||||
unsigned char *index;
|
||||
int pos_iptr, end_pos;
|
||||
int len_cidx, pos_cidx;
|
||||
int len_jp2c, pos_jp2c;
|
||||
|
@ -1021,7 +1021,7 @@ int j2k_index_JPIP(char *Idx_file, char *J2K_file, int len, int version){
|
|||
}
|
||||
|
||||
/* INDEX MODE JPIP */
|
||||
index = (char*)malloc(len);
|
||||
index = (unsigned char*)malloc(len);
|
||||
cio_init(index, len);
|
||||
jp2_write_jp();
|
||||
jp2_write_ftyp();
|
||||
|
@ -1149,7 +1149,7 @@ int main(int argc, char **argv)
|
|||
{
|
||||
FILE *src;
|
||||
int totlen;
|
||||
char *j2kfile;
|
||||
unsigned char *j2kfile;
|
||||
j2k_image_t *imgg;
|
||||
j2k_cp_t *cp;
|
||||
int version;
|
||||
|
@ -1171,7 +1171,7 @@ int main(int argc, char **argv)
|
|||
totlen = ftell(src);
|
||||
fseek(src, 0, SEEK_SET);
|
||||
|
||||
j2kfile = (char*)malloc(totlen);
|
||||
j2kfile = (unsigned char*)malloc(totlen);
|
||||
fread(j2kfile, 1, totlen, src);
|
||||
fclose(src);
|
||||
|
||||
|
@ -1197,6 +1197,7 @@ int main(int argc, char **argv)
|
|||
|
||||
if (!j2k_decode(j2kfile, totlen, &imgg, &cp)) {
|
||||
fprintf(stderr, "Index_creator: failed to decode image!\n");
|
||||
free(j2kfile);
|
||||
return 1;
|
||||
}
|
||||
free(j2kfile);
|
||||
|
|
|
@ -50,7 +50,8 @@
|
|||
|
||||
void jp2_write_url(char *Idx_file)
|
||||
{
|
||||
int len, lenp, i;
|
||||
int len, lenp;
|
||||
unsigned int i;
|
||||
char str[256];
|
||||
|
||||
sprintf(str, "%s", Idx_file);
|
||||
|
|
|
@ -245,7 +245,7 @@ j2k_prog_order_t j2k_prog_order_list[] = {
|
|||
{PCRL, "PCRL"},
|
||||
{RLCP, "RLCP"},
|
||||
{RPCL, "RPCL"},
|
||||
{-1, ""}
|
||||
{(OPJ_PROG_ORDER)-1, ""}
|
||||
};
|
||||
|
||||
char *j2k_convert_progression_order(OPJ_PROG_ORDER prg_order){
|
||||
|
|
|
@ -105,7 +105,7 @@ int main(int argc, char *argv[]) {
|
|||
|
||||
/* setup the decoder decoding parameters using user parameters */
|
||||
movie = (opj_mj2_t*) dinfo->mj2_handle;
|
||||
mj2_setup_decoder(dinfo->mj2_handle, ¶meters);
|
||||
mj2_setup_decoder((opj_mj2_t*)dinfo->mj2_handle, ¶meters);
|
||||
|
||||
if (mj2_read_struct(file, movie)) // Creating the movie structure
|
||||
return 1;
|
||||
|
|
|
@ -234,12 +234,12 @@ int main(int argc, char **argv)
|
|||
opj_cparameters_t *j2k_parameters; /* J2K compression parameters */
|
||||
opj_event_mgr_t event_mgr; /* event manager */
|
||||
opj_cio_t *cio;
|
||||
char value;
|
||||
int value;
|
||||
opj_mj2_t *movie;
|
||||
opj_image_t *img;
|
||||
int i, j;
|
||||
char *s, S1, S2, S3;
|
||||
char *buf;
|
||||
unsigned char *buf;
|
||||
int x1, y1, len;
|
||||
long mdat_initpos, offset;
|
||||
FILE *mj2file;
|
||||
|
@ -519,7 +519,7 @@ int main(int argc, char **argv)
|
|||
while (sscanf(s, "T%d=%d,%d,%d,%d,%d,%4s", &POC[numpocs].tile,
|
||||
&POC[numpocs].resno0, &POC[numpocs].compno0,
|
||||
&POC[numpocs].layno1, &POC[numpocs].resno1,
|
||||
&POC[numpocs].compno1, &POC[numpocs].progorder) == 7) {
|
||||
&POC[numpocs].compno1, POC[numpocs].progorder) == 7) {
|
||||
POC[numpocs].prg1 = give_progression(POC[numpocs].progorder);
|
||||
numpocs++;
|
||||
while (*s && *s != '/') {
|
||||
|
@ -671,7 +671,7 @@ int main(int argc, char **argv)
|
|||
|
||||
/* get a MJ2 decompressor handle */
|
||||
cinfo = mj2_create_compress();
|
||||
movie = cinfo->mj2_handle;
|
||||
movie = (opj_mj2_t*)cinfo->mj2_handle;
|
||||
|
||||
/* catch events using our callbacks and give a local context */
|
||||
opj_set_event_mgr((opj_common_ptr)cinfo, &event_mgr, stderr);
|
||||
|
@ -694,7 +694,7 @@ int main(int argc, char **argv)
|
|||
};
|
||||
|
||||
// Writing JP, FTYP and MDAT boxes
|
||||
buf = (char*) malloc (300 * sizeof(char)); // Assuming that the JP and FTYP
|
||||
buf = (unsigned char*) malloc (300 * sizeof(unsigned char)); // Assuming that the JP and FTYP
|
||||
// boxes won't be longer than 300 bytes
|
||||
cio = opj_cio_open((opj_common_ptr)movie->cinfo, buf, 300);
|
||||
mj2_write_jp(cio);
|
||||
|
@ -722,7 +722,7 @@ int main(int argc, char **argv)
|
|||
|
||||
img = mj2_image_create(tk, j2k_parameters);
|
||||
buflen = 2 * (tk->w * tk->h * 8);
|
||||
buf = (char *) malloc(buflen*sizeof(char));
|
||||
buf = (unsigned char *) malloc(buflen*sizeof(unsigned char));
|
||||
|
||||
for (sampleno = 0; sampleno < numframes; sampleno++) {
|
||||
double init_time = opj_clock();
|
||||
|
@ -771,7 +771,7 @@ int main(int argc, char **argv)
|
|||
|
||||
fseek(mj2file, mdat_initpos, SEEK_SET);
|
||||
|
||||
buf = (char*) malloc(4*sizeof(char));
|
||||
buf = (unsigned char*) malloc(4*sizeof(unsigned char));
|
||||
|
||||
// Init a cio to write box length variable in a little endian way
|
||||
cio = opj_cio_open(NULL, buf, 4);
|
||||
|
@ -781,7 +781,7 @@ int main(int argc, char **argv)
|
|||
free(buf);
|
||||
|
||||
// Writing MOOV box
|
||||
buf = (char*) malloc ((TEMP_BUF+numframes*20) * sizeof(char));
|
||||
buf = (unsigned char*) malloc ((TEMP_BUF+numframes*20) * sizeof(unsigned char));
|
||||
cio = opj_cio_open(movie->cinfo, buf, (TEMP_BUF+numframes*20));
|
||||
mj2_write_moov(movie, cio);
|
||||
fwrite(buf,cio_tell(cio),1,mj2file);
|
||||
|
|
19
mj2/mj2.c
19
mj2/mj2.c
|
@ -42,8 +42,9 @@ Read box headers
|
|||
@param box
|
||||
@return Returns true if successful, returns false otherwise
|
||||
*/
|
||||
/*-- UNUSED
|
||||
static bool jp2_read_boxhdr(opj_common_ptr cinfo, opj_cio_t *cio, opj_jp2_box_t *box);
|
||||
|
||||
--*/
|
||||
/*
|
||||
*
|
||||
* Read box headers
|
||||
|
@ -269,7 +270,8 @@ void mj2_stsc_decompact(mj2_tk_t * tk)
|
|||
tk->chunk[k].num_samples =
|
||||
tk->sampletochunk[tk->num_samplestochunk - 1].samples_per_chunk;
|
||||
}
|
||||
tk->chunk = opj_realloc(tk->chunk, tk->num_chunks * sizeof(mj2_chunk_t));
|
||||
tk->chunk = (mj2_chunk_t*)
|
||||
opj_realloc(tk->chunk, tk->num_chunks * sizeof(mj2_chunk_t));
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1163,7 +1165,7 @@ int mj2_read_smj2(opj_image_t * img, mj2_tk_t * tk, opj_cio_t *cio)
|
|||
}
|
||||
|
||||
tk->jp2_struct.comps = (opj_jp2_comps_t*) opj_malloc(tk->jp2_struct.numcomps * sizeof(opj_jp2_comps_t));
|
||||
tk->jp2_struct.cl = (int*) opj_malloc(sizeof(int));
|
||||
tk->jp2_struct.cl = (unsigned int*) opj_malloc(sizeof(unsigned int));
|
||||
|
||||
tk->num_br = 0;
|
||||
tk->num_jp2x = 0;
|
||||
|
@ -2604,13 +2606,13 @@ int mj2_read_moov(opj_mj2_t * movie, opj_image_t * img, opj_cio_t *cio)
|
|||
int mj2_read_struct(FILE *file, opj_mj2_t *movie) {
|
||||
mj2_box_t box;
|
||||
opj_image_t img;
|
||||
char * src;
|
||||
unsigned char * src;
|
||||
int fsresult;
|
||||
int foffset;
|
||||
opj_cio_t *cio;
|
||||
|
||||
/* open a byte stream for reading */
|
||||
src = (char*) opj_malloc(300 * sizeof(char));
|
||||
src = (unsigned char*) opj_malloc(300 * sizeof(unsigned char));
|
||||
|
||||
/* Assuming that jp and ftyp markers size do
|
||||
not exceed 300 bytes */
|
||||
|
@ -2694,7 +2696,7 @@ int mj2_read_struct(FILE *file, opj_mj2_t *movie) {
|
|||
}
|
||||
|
||||
fseek(file,foffset,SEEK_SET);
|
||||
src = opj_realloc(src,box.length);
|
||||
src = (unsigned char*)opj_realloc(src,box.length);
|
||||
fsresult = fread(src,box.length,1,file);
|
||||
if (fsresult != 1) {
|
||||
opj_event_msg(cio->cinfo, EVT_ERROR, "End of file reached while trying to read MOOV box\n");
|
||||
|
@ -2738,7 +2740,8 @@ void mj2_setup_decoder(opj_mj2_t *movie, mj2_dparameters_t *mj2_parameters) {
|
|||
movie->num_htk=0;
|
||||
|
||||
/* setup the J2K decoder parameters */
|
||||
j2k_setup_decoder(movie->cinfo->j2k_handle, &mj2_parameters->j2k_parameters);
|
||||
j2k_setup_decoder((opj_j2k_t*)movie->cinfo->j2k_handle,
|
||||
&mj2_parameters->j2k_parameters);
|
||||
|
||||
}
|
||||
|
||||
|
@ -2846,7 +2849,7 @@ void mj2_setup_encoder(opj_mj2_t *movie, mj2_cparameters_t *parameters) {
|
|||
jp2_struct->brand = JP2_JP2; /* BR */
|
||||
jp2_struct->minversion = 0; /* MinV */
|
||||
jp2_struct->numcl = 1;
|
||||
jp2_struct->cl = (unsigned int*) opj_malloc(jp2_struct->numcl * sizeof(int));
|
||||
jp2_struct->cl = (unsigned int*) opj_malloc(jp2_struct->numcl * sizeof(unsigned int));
|
||||
jp2_struct->cl[0] = JP2_JP2; /* CL0 : JP2 */
|
||||
jp2_struct->C = 7; /* C : Always 7*/
|
||||
jp2_struct->UnkC = 0; /* UnkC, colorspace specified in colr box*/
|
||||
|
|
|
@ -112,7 +112,7 @@ int main(int argc, char *argv[]) {
|
|||
|
||||
/* get a MJ2 decompressor handle */
|
||||
dinfo = mj2_create_decompress();
|
||||
movie = dinfo->mj2_handle;
|
||||
movie = (opj_mj2_t*)dinfo->mj2_handle;
|
||||
|
||||
/* catch events using our callbacks and give a local context */
|
||||
opj_set_event_mgr((opj_common_ptr)dinfo, &event_mgr, stderr);
|
||||
|
@ -121,7 +121,7 @@ int main(int argc, char *argv[]) {
|
|||
opj_set_default_decoder_parameters(&mj2_parameters.j2k_parameters);
|
||||
|
||||
/* setup the decoder decoding parameters using user parameters */
|
||||
mj2_setup_decoder(dinfo->mj2_handle, &mj2_parameters);
|
||||
mj2_setup_decoder((opj_mj2_t*)dinfo->mj2_handle, &mj2_parameters);
|
||||
|
||||
if (mj2_read_struct(file, movie)) // Creating the movie structure
|
||||
return 1;
|
||||
|
@ -156,7 +156,8 @@ int main(int argc, char *argv[]) {
|
|||
sample = &track->sample[snum];
|
||||
if (sample->sample_size-8 > max_codstrm_size) {
|
||||
max_codstrm_size = sample->sample_size-8;
|
||||
if ((frame_codestream = realloc(frame_codestream, max_codstrm_size)) == NULL) {
|
||||
if ((frame_codestream = (unsigned char*)
|
||||
realloc(frame_codestream, max_codstrm_size)) == NULL) {
|
||||
printf("Error reallocation memory\n");
|
||||
return 1;
|
||||
};
|
||||
|
|
|
@ -78,7 +78,7 @@ static void read_siz_marker(FILE *file, opj_image_t *image)
|
|||
{
|
||||
int len,i;
|
||||
char buf, buf2[2];
|
||||
char *siz_buffer;
|
||||
unsigned char *siz_buffer;
|
||||
opj_cio_t *cio;
|
||||
|
||||
fseek(file, 0, SEEK_SET);
|
||||
|
@ -92,7 +92,7 @@ static void read_siz_marker(FILE *file, opj_image_t *image)
|
|||
fread(buf2,2,1,file); /* Lsiz */
|
||||
len = ((buf2[0])<<8) + buf2[1];
|
||||
|
||||
siz_buffer = (char*) malloc(len * sizeof(char));
|
||||
siz_buffer = (unsigned char*) malloc(len * sizeof(unsigned char));
|
||||
fread(siz_buffer,len, 1, file);
|
||||
cio = opj_cio_open(NULL, siz_buffer, len);
|
||||
|
||||
|
@ -119,6 +119,7 @@ static void read_siz_marker(FILE *file, opj_image_t *image)
|
|||
}
|
||||
fseek(file, 0, SEEK_SET);
|
||||
opj_cio_close(cio);
|
||||
free(siz_buffer);
|
||||
}
|
||||
|
||||
static void setparams(opj_mj2_t *movie, opj_image_t *image) {
|
||||
|
@ -213,7 +214,7 @@ int main(int argc, char *argv[]) {
|
|||
unsigned char* frame_codestream;
|
||||
FILE *mj2file, *j2kfile;
|
||||
char j2kfilename[50];
|
||||
char *buf;
|
||||
unsigned char *buf;
|
||||
int offset, mdat_initpos;
|
||||
opj_image_t img;
|
||||
opj_cio_t *cio;
|
||||
|
@ -249,13 +250,13 @@ int main(int argc, char *argv[]) {
|
|||
|
||||
/* setup the decoder encoding parameters using user parameters */
|
||||
movie = (opj_mj2_t*) cinfo->mj2_handle;
|
||||
mj2_setup_encoder(cinfo->mj2_handle, ¶meters);
|
||||
mj2_setup_encoder((opj_mj2_t*)cinfo->mj2_handle, ¶meters);
|
||||
|
||||
|
||||
/* Writing JP, FTYP and MDAT boxes
|
||||
Assuming that the JP and FTYP boxes won't be longer than 300 bytes */
|
||||
|
||||
buf = (char*) malloc (300 * sizeof(char));
|
||||
buf = (unsigned char*) malloc (300 * sizeof(unsigned char));
|
||||
cio = opj_cio_open(movie->cinfo, buf, 300);
|
||||
mj2_write_jp(cio);
|
||||
mj2_write_ftyp(movie, cio);
|
||||
|
@ -312,14 +313,16 @@ int main(int argc, char *argv[]) {
|
|||
// Ending loop
|
||||
fclose(j2kfile);
|
||||
snum++;
|
||||
movie->tk[0].sample = realloc(movie->tk[0].sample, (snum+1) * sizeof(mj2_sample_t));
|
||||
movie->tk[0].chunk = realloc(movie->tk[0].chunk, (snum+1) * sizeof(mj2_chunk_t));
|
||||
movie->tk[0].sample = (mj2_sample_t*)
|
||||
realloc(movie->tk[0].sample, (snum+1) * sizeof(mj2_sample_t));
|
||||
movie->tk[0].chunk = (mj2_chunk_t*)
|
||||
realloc(movie->tk[0].chunk, (snum+1) * sizeof(mj2_chunk_t));
|
||||
free(frame_codestream);
|
||||
}
|
||||
|
||||
// Writing the MDAT box length in header
|
||||
offset += cio_tell(cio);
|
||||
buf = (char*) malloc (4 * sizeof(char));
|
||||
buf = (unsigned char*) malloc (4 * sizeof(unsigned char));
|
||||
cio = opj_cio_open(movie->cinfo, buf, 4);
|
||||
cio_write(cio,offset-mdat_initpos,4);
|
||||
fseek(mj2file,(long)mdat_initpos,SEEK_SET);
|
||||
|
@ -333,7 +336,7 @@ int main(int argc, char *argv[]) {
|
|||
setparams(movie, &img);
|
||||
|
||||
// Writing MOOV box
|
||||
buf = (char*) malloc ((TEMP_BUF+snum*20) * sizeof(char));
|
||||
buf = (unsigned char*) malloc ((TEMP_BUF+snum*20) * sizeof(unsigned char));
|
||||
cio = opj_cio_open(movie->cinfo, buf, (TEMP_BUF+snum*20));
|
||||
mj2_write_moov(movie, cio);
|
||||
fwrite(buf,cio_tell(cio),1,mj2file);
|
||||
|
|
Loading…
Reference in New Issue