Mercurial > cgi-bin > hgwebdir.cgi > PR > Applications > VSs > VSs__jpeg_decoder__Proj
comparison VSs_tinyjpeg/loadjpeg.c @ 4:62350c40504f
running in sequential mode
| author | Nina Engelhardt <nengel@mailbox.tu-berlin.de> |
|---|---|
| date | Mon, 20 Aug 2012 16:56:27 +0200 |
| parents | 42d636fee562 |
| children |
comparison
equal
deleted
inserted
replaced
| 3:96c35edf16f7 | 4:7d553ba0d4b4 |
|---|---|
| 91 typedef struct{ | 91 typedef struct{ |
| 92 unsigned char* rgb_data; | 92 unsigned char* rgb_data; |
| 93 char* d; | 93 char* d; |
| 94 FILE* fp; | 94 FILE* fp; |
| 95 int bufferlen; | 95 int bufferlen; |
| 96 }write_tga_task_args; | 96 } write_tga_task_args; |
| 97 | 97 |
| 98 VSsTaskType *write_tga_taskType; | 98 VSsTaskType *write_tga_taskType; |
| 99 | 99 |
| 100 int32 write_tga_taskArgTypes[2] = {IN, INOUT}; | 100 int32 write_tga_taskArgTypes[2] = {IN, INOUT}; |
| 101 int32 write_tga_taskArgSizes[2] = {sizeof(unsigned char), sizeof(char)}; | 101 int32 write_tga_taskArgSizes[2] = {sizeof(unsigned char), sizeof(char)}; |
| 102 | 102 |
| 103 //#pragma omp task input(*rgb_data) output(*d) inout(*d) | 103 //#pragma omp task input(*rgb_data) output(*d) inout(*d) |
| 104 void write_tga_task(void *_data, SlaveVP *animatingSlv ) { | 104 void write_tga_task(void *_data, SlaveVP *animatingSlv ) { |
| 105 | 105 |
| 106 write_tga_task_args* args = (write_tga_task_args*) _data; | 106 write_tga_task_args* args2 = (write_tga_task_args*) _data; |
| 107 FILE* fp = args->fp; | 107 FILE* fp = args2->fp; |
| 108 int bufferlen = args->bufferlen; | 108 int bufferlen = args2->bufferlen; |
| 109 unsigned char* rgb_data = args->rgb_data; | 109 unsigned char* rgb_data = args2->rgb_data; |
| 110 char* d = args->d; | 110 char* d = args2->d; |
| 111 | 111 |
| 112 // To disable ompss warnings | 112 // To disable ompss warnings |
| 113 d = d; | 113 d = d; |
| 114 unsigned char *data = rgb_data + bufferlen - RGB_DEPTH; | 114 unsigned char *data = rgb_data + bufferlen - RGB_DEPTH; |
| 115 do | 115 do |
| 119 data[2] = c; | 119 data[2] = c; |
| 120 data-=RGB_DEPTH; | 120 data-=RGB_DEPTH; |
| 121 } while (data >= rgb_data); | 121 } while (data >= rgb_data); |
| 122 | 122 |
| 123 fwrite(rgb_data, 1, bufferlen, fp); | 123 fwrite(rgb_data, 1, bufferlen, fp); |
| 124 VSs__end_task( animatingSlv ); | |
| 124 } | 125 } |
| 125 | 126 |
| 126 | 127 |
| 127 int32 tinyjpegArgTypes[2] = {IN, OUT}; | 128 int32 tinyjpegArgTypes[2] = {IN, OUT}; |
| 128 int32 tinyjpegArgSizes[2] = {sizeof(struct jdec_private), sizeof(uint8_t)}; | 129 int32 tinyjpegArgSizes[2] = {sizeof(struct jdec_private), sizeof(uint8_t)}; |
| 264 VSs__create_seed_slave_and_do_work( &convert_one_image_wrapper, | 265 VSs__create_seed_slave_and_do_work( &convert_one_image_wrapper, |
| 265 NULL ); | 266 NULL ); |
| 266 | 267 |
| 267 | 268 |
| 268 | 269 |
| 269 return 0; | 270 exit(0); |
| 270 } | 271 } |
| 271 | 272 |
| 272 | 273 |
| 273 | 274 |
| 274 void convert_one_image_wrapper( void *_params, SlaveVP *animSlv ){ | 275 void convert_one_image_wrapper( void *_params, SlaveVP *animSlv ){ |
| 276 | 277 |
| 277 printf("Input file: %s\nOutput file: %s\n",input_filename,output_filename); | 278 printf("Input file: %s\nOutput file: %s\n",input_filename,output_filename); |
| 278 | 279 |
| 279 convert_one_image(input_filename, output_filename); | 280 convert_one_image(input_filename, output_filename); |
| 280 | 281 |
| 281 VSs__dissipate_slave( animSlv ); | 282 VSs__end_thread( animSlv ); |
| 282 } | 283 } |
| 283 | 284 |
