comparison VSs_tinyjpeg/loadjpeg.c @ 3:42d636fee562

added second type of task
author Nina Engelhardt <nengel@mailbox.tu-berlin.de>
date Fri, 13 Jul 2012 17:59:00 +0200
parents a52de05d2e2b
children 62350c40504f
comparison
equal deleted inserted replaced
2:661acb10b069 3:96c35edf16f7
86 F = fopen(temp, "wb"); 86 F = fopen(temp, "wb");
87 fwrite(targaheader, sizeof(targaheader), 1, F); 87 fwrite(targaheader, sizeof(targaheader), 1, F);
88 return F; 88 return F;
89 } 89 }
90 90
91 //todo 91 typedef struct{
92 unsigned char* rgb_data;
93 char* d;
94 FILE* fp;
95 int bufferlen;
96 }write_tga_task_args;
97
98 VSsTaskType *write_tga_taskType;
99
100 int32 write_tga_taskArgTypes[2] = {IN, INOUT};
101 int32 write_tga_taskArgSizes[2] = {sizeof(unsigned char), sizeof(char)};
102
92 //#pragma omp task input(*rgb_data) output(*d) inout(*d) 103 //#pragma omp task input(*rgb_data) output(*d) inout(*d)
93 void write_tga_task(FILE* fp, int bufferlen, unsigned char* rgb_data, char* d) { 104 void write_tga_task(void *_data, SlaveVP *animatingSlv ) {
94 105
106 write_tga_task_args* args = (write_tga_task_args*) _data;
107 FILE* fp = args->fp;
108 int bufferlen = args->bufferlen;
109 unsigned char* rgb_data = args->rgb_data;
110 char* d = args->d;
111
95 // To disable ompss warnings 112 // To disable ompss warnings
96 d = d; 113 d = d;
97 unsigned char *data = rgb_data + bufferlen - RGB_DEPTH; 114 unsigned char *data = rgb_data + bufferlen - RGB_DEPTH;
98 do 115 do
99 { 116 {
176 args.context = rgb_data+i*width*RGB_DEPTH*MCU_Y_STRIDE; 193 args.context = rgb_data+i*width*RGB_DEPTH*MCU_Y_STRIDE;
177 VSs__submit_task(tinyjpegTaskType, &args, seedSlv); 194 VSs__submit_task(tinyjpegTaskType, &args, seedSlv);
178 195
179 } 196 }
180 197
198 write_tga_taskType = VMS_App__malloc( sizeof(VSsTaskType) );
199 write_tga_taskType->fn = &write_tga_task;
200 write_tga_taskType->numCtldArgs = 2;
201 write_tga_taskType->numTotalArgs = 4;
202 write_tga_taskType->sizeOfArgs = sizeof(write_tga_task_args);
203 write_tga_taskType->argTypes = write_tga_taskArgTypes;
204 write_tga_taskType->argSizes = write_tga_taskArgSizes;
205
206 write_tga_task_args args2;
181 char dummy; 207 char dummy;
182 for(i=0; i<ntasks;i++) { 208 for(i=0; i<ntasks;i++) {
183 write_tga_task(fp, width*RGB_DEPTH*MCU_Y_STRIDE, rgb_data+i*RGB_DEPTH*width*MCU_Y_STRIDE, &dummy); 209 args2.fp = fp;
210 args2.bufferlen = width*RGB_DEPTH*MCU_Y_STRIDE;
211 args2.rgb_data = rgb_data+i*RGB_DEPTH*width*MCU_Y_STRIDE;
212 args2.d = &dummy;
213 VSs__submit_task(write_tga_taskType, &args2, seedSlv);
184 } 214 }
185 215
186 //VSs__wait_for_all_tasks_to_complete(); 216 VSs__taskwait(seedSlv);
187 //#pragma omp barrier 217 //#pragma omp barrier
188 218
189 tinyjpeg_free(jdec); 219 tinyjpeg_free(jdec);
190 for(i=0; i < ntasks; i++) { 220 for(i=0; i < ntasks; i++) {
191 tinyjpeg_free(jdec_task[i]); 221 tinyjpeg_free(jdec_task[i]);