changeset 7:c8259123d224

hide animating VP and entry point
author Nina Engelhardt <nengel@mailbox.tu-berlin.de>
date Wed, 15 May 2013 15:26:14 +0200
parents 55fb61482128
children 6c1433f5a562
files h264dec.c libavcodec/h264.h libavcodec/h264_ompss.c
diffstat 3 files changed, 83 insertions(+), 84 deletions(-) [+]
line diff
     1.1 --- a/h264dec.c	Wed Mar 06 14:35:39 2013 +0100
     1.2 +++ b/h264dec.c	Wed May 15 15:26:14 2013 +0200
     1.3 @@ -260,7 +260,8 @@
     1.4  
     1.5      H264Context *h = get_h264dec_context(file_name, ifile, ofile, frame_width, frame_height, &cli_opts);
     1.6  #if OMPSS
     1.7 -    VSs__create_seed_slave_and_do_work( &h264_decode_ompss , (void*)h );
     1.8 +    if (h264_decode_ompss( h ) < 0)
     1.9 +        av_exit(-1);
    1.10  #else
    1.11      if (parallel){
    1.12          if (ARCH_CELL && !no_arch){
     2.1 --- a/libavcodec/h264.h	Wed Mar 06 14:35:39 2013 +0100
     2.2 +++ b/libavcodec/h264.h	Wed May 15 15:26:14 2013 +0200
     2.3 @@ -64,7 +64,7 @@
     2.4  int h264_decode_cell(H264Context *h);
     2.5  int h264_decode_cell_seq(H264Context *h);
     2.6  
     2.7 -void h264_decode_ompss(void *_params, SlaveVP *animSlv);
     2.8 +int h264_decode_ompss(H264Context *h);
     2.9  
    2.10  int h264_decode_pthread(H264Context *h);
    2.11  int h264_decode_seq(H264Context *h);
     3.1 --- a/libavcodec/h264_ompss.c	Wed Mar 06 14:35:39 2013 +0100
     3.2 +++ b/libavcodec/h264_ompss.c	Wed May 15 15:26:14 2013 +0200
     3.3 @@ -40,7 +40,7 @@
     3.4  int32 parse_taskArgSizes[4] = {sizeof(ParserContext), sizeof(NalContext), sizeof(SliceBufferEntry), sizeof(H264Context)};
     3.5  
     3.6  //#pragma omp task inout(*pc, *nc) output(*sbe)
     3.7 -static void parse_task(void *_data, SlaveVP *animatingSlv){
     3.8 +static void parse_task(void *_data){
     3.9      parse_taskArgs* args = (parse_taskArgs*) _data;
    3.10      ParserContext *pc = args->pc;
    3.11      NalContext *nc = args->nc;
    3.12 @@ -58,7 +58,7 @@
    3.13  
    3.14      decode_nal_units(nc, s, &sbe->gb);
    3.15      
    3.16 -    VSs__end_task( animatingSlv );
    3.17 +    VSs__end_task();
    3.18  }
    3.19  
    3.20  VSsTaskType parse_taskType = {
    3.21 @@ -80,7 +80,7 @@
    3.22  int32 decode_slice_entropy_taskArgSizes[3] = {sizeof(EntropyContext), sizeof(SliceBufferEntry), sizeof(H264Context)};
    3.23  
    3.24  //#pragma omp task inout(*ec) inout(*sbe)
    3.25 -static void decode_slice_entropy_task(void *_data, SlaveVP *animatingSlv){
    3.26 +static void decode_slice_entropy_task(void *_data){
    3.27      decode_slice_entropy_taskArgs* args = (decode_slice_entropy_taskArgs*) _data;
    3.28      EntropyContext *ec = args->ec; 
    3.29      SliceBufferEntry *sbe = args->sbe; 
    3.30 @@ -94,7 +94,7 @@
    3.31  
    3.32      if( !s->pps.cabac ){
    3.33          av_log(AV_LOG_ERROR, "Only cabac encoded streams are supported\n");
    3.34 -        VSs__end_task( animatingSlv );
    3.35 +        VSs__end_task();
    3.36      }
    3.37  
    3.38      init_dequant_tables(s, ec);
    3.39 @@ -124,11 +124,11 @@
    3.40              (void) eos;
    3.41              if( ret < 0 || c->bytestream > c->bytestream_end + 2) {
    3.42                  av_log(AV_LOG_ERROR, "error while decoding MB %d %d, bytestream (%td)\n", m->mb_x, m->mb_y, c->bytestream_end - c->bytestream);
    3.43 -                VSs__end_task( animatingSlv );
    3.44 +                VSs__end_task();
    3.45              }
    3.46          }
    3.47      }
    3.48 -    VSs__end_task( animatingSlv );
    3.49 +    VSs__end_task();
    3.50  }
    3.51  
    3.52  VSsTaskType decode_slice_entropy_taskType = {
    3.53 @@ -167,7 +167,7 @@
    3.54  int32 decode_super_mb_taskArgSizes[6] = {sizeof(MBRecContext), sizeof(SliceBufferEntry), sizeof(SuperMBTask), sizeof(SuperMBTask), sizeof(SuperMBTask), sizeof(SuperMBContext)};
    3.55  
    3.56  //#pragma omp task input(*d, *sbe, *ml, *mur) inout(*m)
    3.57 -static void decode_super_mb_task(void *_data, SlaveVP *animatingSlv){
    3.58 +static void decode_super_mb_task(void *_data){
    3.59      decode_super_mb_taskArgs* args = (decode_super_mb_taskArgs*) _data;
    3.60      MBRecContext *d = args->d;
    3.61      SliceBufferEntry *sbe = args->sbe;
    3.62 @@ -178,7 +178,7 @@
    3.63      H264Slice *s = &sbe->slice;
    3.64      H264Mb *mbs = sbe->mbs;
    3.65      decode_super_mb_block(d, s, smbc, mbs, m->smb_x, m->smb_y);
    3.66 -    VSs__end_task( animatingSlv );
    3.67 +    VSs__end_task();
    3.68  }
    3.69  
    3.70  VSsTaskType decode_super_mb_taskType = {
    3.71 @@ -203,7 +203,7 @@
    3.72  int32 draw_edges_taskArgSizes[5] = {sizeof(MBRecContext), sizeof(SliceBufferEntry), sizeof(SuperMBTask),sizeof(SuperMBContext),sizeof(int)};
    3.73  
    3.74  //#pragma omp task input(*d, *sbe) inout(*sm)
    3.75 -static void draw_edges_task(void *_data, SlaveVP *animatingSlv){
    3.76 +static void draw_edges_task(void *_data){
    3.77      draw_edges_taskArgs* args = (draw_edges_taskArgs*) _data;
    3.78      MBRecContext *d = args->d;
    3.79      SliceBufferEntry *sbe = args->sbe;
    3.80 @@ -214,7 +214,7 @@
    3.81      for (int i=line*smbc->smb_height; i< (line+1)*smbc->smb_height && i< d->mb_height; i++)
    3.82          draw_edges(d, s, i);
    3.83      VMS_App__free(args->line);
    3.84 -    VSs__end_task( animatingSlv );
    3.85 +    VSs__end_task();
    3.86  }
    3.87  VSsTaskType draw_edges_taskType = {
    3.88      .fn = &draw_edges_task,
    3.89 @@ -225,7 +225,7 @@
    3.90      .argSizes = draw_edges_taskArgSizes};
    3.91  
    3.92  
    3.93 -static void decode_mb_in_slice(H264Context *h, MBRecContext *d, SliceBufferEntry *sbe, SlaveVP* animSlv){
    3.94 +static void decode_mb_in_slice(H264Context *h, MBRecContext *d, SliceBufferEntry *sbe){
    3.95      int i,j;
    3.96  
    3.97      SuperMBContext *smbc = acquire_smbc(h);
    3.98 @@ -245,7 +245,7 @@
    3.99              decode_super_mb_task_args.ml = sml;
   3.100              decode_super_mb_task_args.mur = smur;
   3.101              decode_super_mb_task_args.m = sm;
   3.102 -            VSs__submit_task(&decode_super_mb_taskType, &decode_super_mb_task_args, animSlv);
   3.103 +            VSs__submit_task(&decode_super_mb_taskType, &decode_super_mb_task_args);
   3.104          }
   3.105          draw_edges_taskArgs draw_edges_task_args;
   3.106          draw_edges_task_args.d = d;
   3.107 @@ -254,9 +254,9 @@
   3.108          draw_edges_task_args.smbc = smbc;
   3.109          draw_edges_task_args.line = VMS_App__malloc( sizeof(int) );
   3.110          *(draw_edges_task_args.line) = j;
   3.111 -        VSs__submit_task(&draw_edges_taskType, &draw_edges_task_args, animSlv);
   3.112 +        VSs__submit_task(&draw_edges_taskType, &draw_edges_task_args);
   3.113      }
   3.114 -    VSs__taskwait_on(animSlv,sm);
   3.115 +    VSs__taskwait_on(sm);
   3.116      //#pragma omp taskwait on(*sm)
   3.117  
   3.118      release_smbc(h, smbc);
   3.119 @@ -272,7 +272,7 @@
   3.120  int32 decode_slice_mb_taskArgSizes[3] = {sizeof(MBRecContext), sizeof(SliceBufferEntry), sizeof(H264Context)};
   3.121  
   3.122  //#pragma omp task inout(*d) inout(*sbe)
   3.123 -static void decode_slice_mb_task(void *_data, SlaveVP *animatingSlv){
   3.124 +static void decode_slice_mb_task(void *_data){
   3.125      decode_slice_mb_taskArgs* args = (decode_slice_mb_taskArgs*) _data;
   3.126      MBRecContext *d = args->d;
   3.127      SliceBufferEntry *sbe = args->sbe;
   3.128 @@ -295,27 +295,27 @@
   3.129      }
   3.130  
   3.131      //#pragma omp critical (dpb)
   3.132 -    VSs__start_critical(animatingSlv,0);
   3.133 +    VSs__start_critical(0);
   3.134      get_dpb_entry(h, s);
   3.135 -    VSs__end_critical(animatingSlv,0);
   3.136 +    VSs__end_critical(0);
   3.137              
   3.138      if (!h->no_mbd){
   3.139 -        decode_mb_in_slice (h, d, sbe, animatingSlv);
   3.140 +        decode_mb_in_slice (h, d, sbe);
   3.141      }
   3.142  
   3.143      for (int i=0; i<s->release_cnt; i++){
   3.144          for(int j=0; j<h->max_dpb_cnt; j++){
   3.145              if(h->dpb[j].cpn== s->release_ref_cpn[i]){
   3.146                  //#pragma omp critical (dpb)
   3.147 -                VSs__start_critical(animatingSlv,0);
   3.148 +                VSs__start_critical(0);
   3.149                  release_dpb_entry(h, &h->dpb[j], 2);
   3.150 -                VSs__end_critical(animatingSlv,0);
   3.151 +                VSs__end_critical(0);
   3.152                  break;
   3.153              }
   3.154          }
   3.155      }
   3.156      s->release_cnt=0;
   3.157 -    VSs__end_task( animatingSlv );
   3.158 +    VSs__end_task();
   3.159  }
   3.160  
   3.161  VSsTaskType decode_slice_mb_taskType = {
   3.162 @@ -343,7 +343,7 @@
   3.163          sizeof(SuperMBTask), sizeof(SuperMBTask), sizeof(SuperMBTask), sizeof(SuperMBContext)};
   3.164  
   3.165  //#pragma omp task input(*d, *sbe, *ml, *mur, *mprev) inout(*m)
   3.166 -static void decode_3dwave_super_mb_task(void *_data, SlaveVP *animatingSlv){
   3.167 +static void decode_3dwave_super_mb_task(void *_data){
   3.168      decode_3dwave_super_mb_taskArgs* args = (decode_3dwave_super_mb_taskArgs*) _data;
   3.169      MBRecContext *d = args->d;
   3.170      SliceBufferEntry *sbe = args->sbe;
   3.171 @@ -357,7 +357,7 @@
   3.172      H264Mb *mbs = sbe->mbs;
   3.173  
   3.174      decode_super_mb_block(d, s, smbc, mbs, m->smb_x, m->smb_y);
   3.175 -    VSs__end_task( animatingSlv );
   3.176 +    VSs__end_task();
   3.177  }
   3.178  
   3.179  VSsTaskType decode_3dwave_super_mb_taskType = {
   3.180 @@ -380,7 +380,7 @@
   3.181  int32 init_ref_list_and_get_dpb_taskArgSizes[4] = {sizeof(MBRecContext), sizeof(SliceBufferEntry), sizeof(int), sizeof(H264Context)};
   3.182  
   3.183  //#pragma omp task inout(*d, *sbe, *init)
   3.184 -static void init_ref_list_and_get_dpb_task(void *_data, SlaveVP *animatingSlv){
   3.185 +static void init_ref_list_and_get_dpb_task(void *_data){
   3.186      init_ref_list_and_get_dpb_taskArgs* args = (init_ref_list_and_get_dpb_taskArgs*) _data;
   3.187      MBRecContext *d = args->d;
   3.188      SliceBufferEntry *sbe = args->sbe;
   3.189 @@ -403,11 +403,11 @@
   3.190      }
   3.191  
   3.192      //#pragma omp critical (dpb)
   3.193 -    VSs__start_critical(animatingSlv,0);
   3.194 +    VSs__start_critical(0);
   3.195      get_dpb_entry(h, s);
   3.196 -    VSs__end_critical(animatingSlv,0);
   3.197 +    VSs__end_critical(0);
   3.198      
   3.199 -    VSs__end_task( animatingSlv );
   3.200 +    VSs__end_task();
   3.201  }
   3.202  
   3.203  VSsTaskType init_ref_list_and_get_dpb_taskType = {
   3.204 @@ -418,7 +418,7 @@
   3.205      .argTypes = init_ref_list_and_get_dpb_taskArgTypes,
   3.206      .argSizes = init_ref_list_and_get_dpb_taskArgSizes};
   3.207  
   3.208 -static SuperMBTask* add_decode_slice_3dwave_tasks(MBRecContext *d, SliceBufferEntry *sbe, SuperMBContext *smbc, int k, SlaveVP* animSlv){
   3.209 +static SuperMBTask* add_decode_slice_3dwave_tasks(MBRecContext *d, SliceBufferEntry *sbe, SuperMBContext *smbc, int k){
   3.210      int i,j;
   3.211      
   3.212      int32* taskID;
   3.213 @@ -445,11 +445,11 @@
   3.214              decode_3dwave_super_mb_task_args.mur = smur;
   3.215              decode_3dwave_super_mb_task_args.mprev = smprev;
   3.216              decode_3dwave_super_mb_task_args.m = sm;
   3.217 -            taskID = VSs__create_taskID_of_size(3,animSlv );
   3.218 +            taskID = VSs__create_taskID_of_size(3 );
   3.219              taskID[1] = k;
   3.220              taskID[2] = j;
   3.221              taskID[3] = i;
   3.222 -            VSs__submit_task_with_ID(&decode_3dwave_super_mb_taskType, &decode_3dwave_super_mb_task_args, taskID, animSlv);
   3.223 +            VSs__submit_task_with_ID(&decode_3dwave_super_mb_taskType, &decode_3dwave_super_mb_task_args, taskID);
   3.224          }
   3.225          draw_edges_taskArgs draw_edges_task_args;
   3.226          draw_edges_task_args.d = d;
   3.227 @@ -458,11 +458,11 @@
   3.228          draw_edges_task_args.smbc = smbc;
   3.229          draw_edges_task_args.line = VMS_App__malloc( sizeof(int) );
   3.230          *(draw_edges_task_args.line) = j;
   3.231 -        taskID = VSs__create_taskID_of_size(3, animSlv);
   3.232 +        taskID = VSs__create_taskID_of_size(3);
   3.233          taskID[1] = k;
   3.234          taskID[2] = j;
   3.235          taskID[3] = i;
   3.236 -        VSs__submit_task_with_ID(&draw_edges_taskType, &draw_edges_task_args, taskID, animSlv);
   3.237 +        VSs__submit_task_with_ID(&draw_edges_taskType, &draw_edges_task_args, taskID);
   3.238      }
   3.239  
   3.240      for(; j< smb_height; j++){
   3.241 @@ -477,11 +477,11 @@
   3.242              decode_super_mb_task_args.ml = sml;
   3.243              decode_super_mb_task_args.mur = smur;
   3.244              decode_super_mb_task_args.m = sm;
   3.245 -            taskID = VSs__create_taskID_of_size(3,animSlv );
   3.246 +            taskID = VSs__create_taskID_of_size(3 );
   3.247              taskID[1] = k;
   3.248              taskID[2] = j;
   3.249              taskID[3] = i;
   3.250 -            VSs__submit_task_with_ID(&decode_super_mb_taskType, &decode_super_mb_task_args, taskID, animSlv);
   3.251 +            VSs__submit_task_with_ID(&decode_super_mb_taskType, &decode_super_mb_task_args, taskID);
   3.252          }
   3.253          draw_edges_taskArgs draw_edges_task_args;
   3.254          draw_edges_task_args.d = d;
   3.255 @@ -490,11 +490,11 @@
   3.256          draw_edges_task_args.smbc = smbc;
   3.257          draw_edges_task_args.line = VMS_App__malloc( sizeof(int) );
   3.258          *(draw_edges_task_args.line) = j;
   3.259 -        taskID = VSs__create_taskID_of_size(3, animSlv);
   3.260 +        taskID = VSs__create_taskID_of_size(3);
   3.261          taskID[1] = k;
   3.262          taskID[2] = j;
   3.263          taskID[3] = i;
   3.264 -        VSs__submit_task_with_ID(&draw_edges_taskType, &draw_edges_task_args, taskID, animSlv);
   3.265 +        VSs__submit_task_with_ID(&draw_edges_taskType, &draw_edges_task_args, taskID);
   3.266      }
   3.267      return sm;
   3.268  }
   3.269 @@ -512,7 +512,7 @@
   3.270  int32 release_ref_list_taskArgSizes[6] = {sizeof(MBRecContext), sizeof(SliceBufferEntry), sizeof(SuperMBTask), sizeof(int), sizeof(H264Context), sizeof(SuperMBContext)};
   3.271  
   3.272  //#pragma omp task inout(*d, *sbe, *release) input (*lastsmb)
   3.273 -static void release_ref_list_task(void *_data, SlaveVP *animatingSlv){
   3.274 +static void release_ref_list_task(void *_data){
   3.275      release_ref_list_taskArgs* args = (release_ref_list_taskArgs*) _data;
   3.276      MBRecContext *d = args->d;
   3.277      SliceBufferEntry *sbe = args->sbe;
   3.278 @@ -526,9 +526,9 @@
   3.279          for(int j=0; j<h->max_dpb_cnt; j++){
   3.280              if(h->dpb[j].cpn== s->release_ref_cpn[i]){
   3.281                  //#pragma omp critical (dpb)
   3.282 -                VSs__start_critical(animatingSlv,0);
   3.283 +                VSs__start_critical(0);
   3.284                  release_dpb_entry(h, &h->dpb[j], 2);
   3.285 -                VSs__end_critical(animatingSlv,0);
   3.286 +                VSs__end_critical(0);
   3.287                  break;
   3.288              }
   3.289          }
   3.290 @@ -537,7 +537,7 @@
   3.291  
   3.292      release_smbc(h, smbc);
   3.293      
   3.294 -    VSs__end_task( animatingSlv );
   3.295 +    VSs__end_task();
   3.296  }
   3.297  
   3.298  VSsTaskType release_ref_list_taskType = {
   3.299 @@ -564,7 +564,7 @@
   3.300  int32 output_taskArgSizes[3] = {sizeof(OutputContext), sizeof(SliceBufferEntry), sizeof(H264Context)};
   3.301  
   3.302  //#pragma omp task inout (*oc) input(*sbe)
   3.303 -static void output_task(void *_data, SlaveVP *animatingSlv){
   3.304 +static void output_task(void *_data){
   3.305      output_taskArgs* args = (output_taskArgs*) _data;
   3.306      OutputContext *oc = args->oc;
   3.307      SliceBufferEntry *sbe = args->sbe; 
   3.308 @@ -573,13 +573,13 @@
   3.309      DecodedPicture* out =output_frame(h, oc, sbe->slice.curr_pic, h->ofile, h->frame_width, h->frame_height);
   3.310      if (out){
   3.311          //#pragma omp critical (dpb)
   3.312 -        VSs__start_critical(animatingSlv,0);
   3.313 +        VSs__start_critical(0);
   3.314          release_dpb_entry(h, out, 1);
   3.315 -        VSs__end_critical(animatingSlv,0);
   3.316 +        VSs__end_critical(0);
   3.317      }
   3.318      //print_report(oc->frame_number, oc->video_size, 0, h->verbose);
   3.319      
   3.320 -    VSs__end_task( animatingSlv );
   3.321 +    VSs__end_task();
   3.322  }
   3.323  
   3.324  VSsTaskType output_taskType = {
   3.325 @@ -593,10 +593,8 @@
   3.326  /*
   3.327  * The following code is the main loop of the file converter
   3.328  */
   3.329 -//Put VMS entry point here
   3.330  
   3.331 -void h264_decode_ompss( void *_params, SlaveVP *animSlv) {
   3.332 -    H264Context* h = (H264Context*) _params;
   3.333 +int h264_decode_ompss( H264Context *h) {
   3.334      
   3.335      const int bufs = h->pipe_bufs;
   3.336  
   3.337 @@ -647,21 +645,21 @@
   3.338              parse_task_args.pc = pc;
   3.339              parse_task_args.nc = nc;
   3.340              parse_task_args.sbe = &sbe[k%bufs];
   3.341 -            taskID = VSs__create_taskID_of_size(2,animSlv );
   3.342 +            taskID = VSs__create_taskID_of_size(2);
   3.343              taskID[1] = 1;
   3.344              taskID[2] = k;
   3.345 -            VSs__submit_task_with_ID(&parse_taskType, &parse_task_args, taskID, animSlv);
   3.346 +            VSs__submit_task_with_ID(&parse_taskType, &parse_task_args, taskID);
   3.347              
   3.348              decode_slice_entropy_taskArgs decode_slice_entropy_task_args;
   3.349              decode_slice_entropy_task_args.h = h;
   3.350              decode_slice_entropy_task_args.ec = ec[k%bufs];
   3.351              decode_slice_entropy_task_args.sbe = &sbe[k%bufs];
   3.352 -            taskID = VSs__create_taskID_of_size(2,animSlv );
   3.353 +            taskID = VSs__create_taskID_of_size(2);
   3.354              taskID[1] = 2;
   3.355              taskID[2] = k;
   3.356 -            VSs__submit_task_with_ID(&decode_slice_entropy_taskType, &decode_slice_entropy_task_args, taskID, animSlv);        
   3.357 +            VSs__submit_task_with_ID(&decode_slice_entropy_taskType, &decode_slice_entropy_task_args, taskID);        
   3.358              //#pragma omp taskwait on(*pc)
   3.359 -            VSs__taskwait_on(animSlv,pc);
   3.360 +            VSs__taskwait_on(pc);
   3.361              k++;
   3.362          }
   3.363  
   3.364 @@ -671,19 +669,19 @@
   3.365              parse_task_args.pc = pc;
   3.366              parse_task_args.nc = nc;
   3.367              parse_task_args.sbe = &sbe[k%bufs];
   3.368 -            taskID = VSs__create_taskID_of_size(2,animSlv );
   3.369 +            taskID = VSs__create_taskID_of_size(2);
   3.370              taskID[1] = 3;
   3.371              taskID[2] = k;
   3.372 -            VSs__submit_task_with_ID(&parse_taskType, &parse_task_args, taskID, animSlv);
   3.373 +            VSs__submit_task_with_ID(&parse_taskType, &parse_task_args, taskID);
   3.374              
   3.375              decode_slice_entropy_taskArgs decode_slice_entropy_task_args;
   3.376              decode_slice_entropy_task_args.h = h;
   3.377              decode_slice_entropy_task_args.ec = ec[k%bufs];
   3.378              decode_slice_entropy_task_args.sbe = &sbe[k%bufs];
   3.379 -            taskID = VSs__create_taskID_of_size(2,animSlv );
   3.380 +            taskID = VSs__create_taskID_of_size(2);
   3.381              taskID[1] = 4;
   3.382              taskID[2] = k;
   3.383 -            VSs__submit_task_with_ID(&decode_slice_entropy_taskType, &decode_slice_entropy_task_args, taskID, animSlv); 
   3.384 +            VSs__submit_task_with_ID(&decode_slice_entropy_taskType, &decode_slice_entropy_task_args, taskID); 
   3.385  
   3.386              k++;
   3.387              
   3.388 @@ -692,13 +690,13 @@
   3.389              init_ref_list_and_get_dpb_task_args.d = rc[k%2];
   3.390              init_ref_list_and_get_dpb_task_args.sbe = &sbe[k%bufs];
   3.391              init_ref_list_and_get_dpb_task_args.init = &init;
   3.392 -            taskID = VSs__create_taskID_of_size(2,animSlv );
   3.393 +            taskID = VSs__create_taskID_of_size(2);
   3.394              taskID[1] = 5;
   3.395              taskID[2] = k;
   3.396 -            VSs__submit_task_with_ID(&init_ref_list_and_get_dpb_taskType, &init_ref_list_and_get_dpb_task_args, taskID, animSlv); 
   3.397 +            VSs__submit_task_with_ID(&init_ref_list_and_get_dpb_taskType, &init_ref_list_and_get_dpb_task_args, taskID); 
   3.398  
   3.399              smbc = acquire_smbc(h);
   3.400 -            SuperMBTask *lastsmb= add_decode_slice_3dwave_tasks(rc[k%2], &sbe[k%bufs], smbc, k, animSlv);            
   3.401 +            SuperMBTask *lastsmb= add_decode_slice_3dwave_tasks(rc[k%2], &sbe[k%bufs], smbc, k);            
   3.402              release_ref_list_taskArgs release_ref_list_task_args;
   3.403              release_ref_list_task_args.h = h;
   3.404              release_ref_list_task_args.smbc = smbc;
   3.405 @@ -706,21 +704,21 @@
   3.406              release_ref_list_task_args.sbe = &sbe[k%bufs];
   3.407              release_ref_list_task_args.lastsmb = lastsmb;
   3.408              release_ref_list_task_args.release = &release;
   3.409 -            taskID = VSs__create_taskID_of_size(2,animSlv );
   3.410 +            taskID = VSs__create_taskID_of_size(2);
   3.411              taskID[1] = 6;
   3.412              taskID[2] = k;
   3.413 -            VSs__submit_task_with_ID(&release_ref_list_taskType, &release_ref_list_task_args, taskID, animSlv);
   3.414 +            VSs__submit_task_with_ID(&release_ref_list_taskType, &release_ref_list_task_args, taskID);
   3.415  
   3.416              output_taskArgs output_task_args;
   3.417              output_task_args.h = h;
   3.418              output_task_args.oc = oc;
   3.419              output_task_args.sbe = &sbe[k%bufs];
   3.420 -            taskID = VSs__create_taskID_of_size(2,animSlv );
   3.421 +            taskID = VSs__create_taskID_of_size(2);
   3.422              taskID[1] = 7;
   3.423              taskID[2] = k;
   3.424 -            VSs__submit_task_with_ID(&output_taskType, &output_task_args, taskID, animSlv);
   3.425 +            VSs__submit_task_with_ID(&output_taskType, &output_task_args, taskID);
   3.426              //#pragma omp taskwait on(*pc)
   3.427 -            VSs__taskwait_on(animSlv,pc);
   3.428 +            VSs__taskwait_on(pc);
   3.429          }
   3.430  
   3.431          for (int i=0; i< num_pre_ed; i++){
   3.432 @@ -730,12 +728,12 @@
   3.433              init_ref_list_and_get_dpb_task_args.d = rc[k%2];
   3.434              init_ref_list_and_get_dpb_task_args.sbe = &sbe[k%bufs];
   3.435              init_ref_list_and_get_dpb_task_args.init = &init;
   3.436 -            taskID = VSs__create_taskID_of_size(2,animSlv );
   3.437 +            taskID = VSs__create_taskID_of_size(2);
   3.438              taskID[1] = 8;
   3.439              taskID[2] = i;
   3.440 -            VSs__submit_task_with_ID(&init_ref_list_and_get_dpb_taskType, &init_ref_list_and_get_dpb_task_args, taskID, animSlv); 
   3.441 +            VSs__submit_task_with_ID(&init_ref_list_and_get_dpb_taskType, &init_ref_list_and_get_dpb_task_args, taskID); 
   3.442              smbc = acquire_smbc(h);
   3.443 -            SuperMBTask *lastsmb= add_decode_slice_3dwave_tasks(rc[k%2], &sbe[k%bufs], smbc, k, animSlv);
   3.444 +            SuperMBTask *lastsmb= add_decode_slice_3dwave_tasks(rc[k%2], &sbe[k%bufs], smbc, k);
   3.445              release_ref_list_taskArgs release_ref_list_task_args;
   3.446              release_ref_list_task_args.h = h;
   3.447              release_ref_list_task_args.smbc = smbc;
   3.448 @@ -743,63 +741,63 @@
   3.449              release_ref_list_task_args.sbe = &sbe[k%bufs];
   3.450              release_ref_list_task_args.lastsmb = lastsmb;
   3.451              release_ref_list_task_args.release = &release;
   3.452 -            taskID = VSs__create_taskID_of_size(2,animSlv );
   3.453 +            taskID = VSs__create_taskID_of_size(2);
   3.454              taskID[1] = 9;
   3.455              taskID[2] = k;
   3.456 -            VSs__submit_task_with_ID(&release_ref_list_taskType, &release_ref_list_task_args, taskID, animSlv); 
   3.457 +            VSs__submit_task_with_ID(&release_ref_list_taskType, &release_ref_list_task_args, taskID); 
   3.458  
   3.459              output_taskArgs output_task_args;
   3.460              output_task_args.h = h;
   3.461              output_task_args.oc = oc;
   3.462              output_task_args.sbe = &sbe[k%bufs];
   3.463 -            taskID = VSs__create_taskID_of_size(2,animSlv );
   3.464 +            taskID = VSs__create_taskID_of_size(2);
   3.465              taskID[1] = 10;
   3.466              taskID[2] = k;
   3.467 -            VSs__submit_task_with_ID(&output_taskType, &output_task_args, taskID, animSlv);
   3.468 +            VSs__submit_task_with_ID(&output_taskType, &output_task_args, taskID);
   3.469          }
   3.470  
   3.471      } else {
   3.472          while(!pc->final_frame && frames++ < h->num_frames && !h->quit){
   3.473              
   3.474 -            taskID = VSs__create_taskID_of_size(1,animSlv );
   3.475 +            taskID = VSs__create_taskID_of_size(1);
   3.476              taskID[1] = frames*10+1;
   3.477              parse_taskArgs parse_task_args;
   3.478              parse_task_args.h = h;
   3.479              parse_task_args.pc = pc;
   3.480              parse_task_args.nc = nc;
   3.481              parse_task_args.sbe = &sbe[k%bufs];
   3.482 -            VSs__submit_task_with_ID(&parse_taskType, &parse_task_args, taskID, animSlv);
   3.483 +            VSs__submit_task_with_ID(&parse_taskType, &parse_task_args, taskID);
   3.484  
   3.485 -            taskID = VSs__create_taskID_of_size(1,animSlv );
   3.486 +            taskID = VSs__create_taskID_of_size(1);
   3.487              taskID[1] = frames*10+2;
   3.488              decode_slice_entropy_taskArgs decode_slice_entropy_task_args;
   3.489              decode_slice_entropy_task_args.h = h;
   3.490              decode_slice_entropy_task_args.ec = ec[k%bufs];
   3.491              decode_slice_entropy_task_args.sbe = &sbe[k%bufs];
   3.492 -            VSs__submit_task_with_ID(&decode_slice_entropy_taskType, &decode_slice_entropy_task_args,taskID, animSlv);
   3.493 +            VSs__submit_task_with_ID(&decode_slice_entropy_taskType, &decode_slice_entropy_task_args,taskID);
   3.494  
   3.495 -            taskID = VSs__create_taskID_of_size(1,animSlv );
   3.496 +            taskID = VSs__create_taskID_of_size(1);
   3.497              taskID[1] = frames*10+3;
   3.498              decode_slice_mb_taskArgs decode_slice_mb_task_args;
   3.499              decode_slice_mb_task_args.h = h;
   3.500              decode_slice_mb_task_args.d = rc[0];
   3.501              decode_slice_mb_task_args.sbe = &sbe[k%bufs];
   3.502 -            VSs__submit_task_with_ID(&decode_slice_mb_taskType, &decode_slice_mb_task_args,taskID, animSlv); 
   3.503 +            VSs__submit_task_with_ID(&decode_slice_mb_taskType, &decode_slice_mb_task_args,taskID); 
   3.504  
   3.505 -            taskID = VSs__create_taskID_of_size(1,animSlv );
   3.506 +            taskID = VSs__create_taskID_of_size(1);
   3.507              taskID[1] = frames*10+4;
   3.508              output_taskArgs output_task_args;
   3.509              output_task_args.h = h;
   3.510              output_task_args.oc = oc;
   3.511              output_task_args.sbe = &sbe[k%bufs];
   3.512 -            VSs__submit_task_with_ID(&output_taskType, &output_task_args,taskID, animSlv);
   3.513 +            VSs__submit_task_with_ID(&output_taskType, &output_task_args,taskID);
   3.514              //#pragma omp taskwait on(*pc)
   3.515 -            VSs__taskwait_on(animSlv,pc);
   3.516 +            VSs__taskwait_on(pc);
   3.517              k++;
   3.518          }
   3.519      }
   3.520      //#pragma omp taskwait
   3.521 -    VSs__taskwait(animSlv);
   3.522 +    VSs__taskwait();
   3.523      
   3.524      while ((out=output_frame(h, oc, NULL, h->ofile, h->frame_width, h->frame_height))) ;
   3.525  
   3.526 @@ -827,5 +825,5 @@
   3.527      }
   3.528  #endif
   3.529  
   3.530 -    VSs__end_thread( animSlv );
   3.531 +    return 0;
   3.532  }