# HG changeset patch # User Nina Engelhardt # Date 1368624374 -7200 # Node ID c8259123d224b57d582495f578b64aac4c74d7dc # Parent 55fb61482128d051b5f47020f572063e9348482d hide animating VP and entry point diff -r 55fb61482128 -r c8259123d224 h264dec.c --- a/h264dec.c Wed Mar 06 14:35:39 2013 +0100 +++ b/h264dec.c Wed May 15 15:26:14 2013 +0200 @@ -260,7 +260,8 @@ H264Context *h = get_h264dec_context(file_name, ifile, ofile, frame_width, frame_height, &cli_opts); #if OMPSS - VSs__create_seed_slave_and_do_work( &h264_decode_ompss , (void*)h ); + if (h264_decode_ompss( h ) < 0) + av_exit(-1); #else if (parallel){ if (ARCH_CELL && !no_arch){ diff -r 55fb61482128 -r c8259123d224 libavcodec/h264.h --- a/libavcodec/h264.h Wed Mar 06 14:35:39 2013 +0100 +++ b/libavcodec/h264.h Wed May 15 15:26:14 2013 +0200 @@ -64,7 +64,7 @@ int h264_decode_cell(H264Context *h); int h264_decode_cell_seq(H264Context *h); -void h264_decode_ompss(void *_params, SlaveVP *animSlv); +int h264_decode_ompss(H264Context *h); int h264_decode_pthread(H264Context *h); int h264_decode_seq(H264Context *h); diff -r 55fb61482128 -r c8259123d224 libavcodec/h264_ompss.c --- a/libavcodec/h264_ompss.c Wed Mar 06 14:35:39 2013 +0100 +++ b/libavcodec/h264_ompss.c Wed May 15 15:26:14 2013 +0200 @@ -40,7 +40,7 @@ int32 parse_taskArgSizes[4] = {sizeof(ParserContext), sizeof(NalContext), sizeof(SliceBufferEntry), sizeof(H264Context)}; //#pragma omp task inout(*pc, *nc) output(*sbe) -static void parse_task(void *_data, SlaveVP *animatingSlv){ +static void parse_task(void *_data){ parse_taskArgs* args = (parse_taskArgs*) _data; ParserContext *pc = args->pc; NalContext *nc = args->nc; @@ -58,7 +58,7 @@ decode_nal_units(nc, s, &sbe->gb); - VSs__end_task( animatingSlv ); + VSs__end_task(); } VSsTaskType parse_taskType = { @@ -80,7 +80,7 @@ int32 decode_slice_entropy_taskArgSizes[3] = {sizeof(EntropyContext), sizeof(SliceBufferEntry), sizeof(H264Context)}; //#pragma omp task inout(*ec) inout(*sbe) -static void decode_slice_entropy_task(void *_data, SlaveVP *animatingSlv){ +static void decode_slice_entropy_task(void *_data){ decode_slice_entropy_taskArgs* args = (decode_slice_entropy_taskArgs*) _data; EntropyContext *ec = args->ec; SliceBufferEntry *sbe = args->sbe; @@ -94,7 +94,7 @@ if( !s->pps.cabac ){ av_log(AV_LOG_ERROR, "Only cabac encoded streams are supported\n"); - VSs__end_task( animatingSlv ); + VSs__end_task(); } init_dequant_tables(s, ec); @@ -124,11 +124,11 @@ (void) eos; if( ret < 0 || c->bytestream > c->bytestream_end + 2) { 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); - VSs__end_task( animatingSlv ); + VSs__end_task(); } } } - VSs__end_task( animatingSlv ); + VSs__end_task(); } VSsTaskType decode_slice_entropy_taskType = { @@ -167,7 +167,7 @@ int32 decode_super_mb_taskArgSizes[6] = {sizeof(MBRecContext), sizeof(SliceBufferEntry), sizeof(SuperMBTask), sizeof(SuperMBTask), sizeof(SuperMBTask), sizeof(SuperMBContext)}; //#pragma omp task input(*d, *sbe, *ml, *mur) inout(*m) -static void decode_super_mb_task(void *_data, SlaveVP *animatingSlv){ +static void decode_super_mb_task(void *_data){ decode_super_mb_taskArgs* args = (decode_super_mb_taskArgs*) _data; MBRecContext *d = args->d; SliceBufferEntry *sbe = args->sbe; @@ -178,7 +178,7 @@ H264Slice *s = &sbe->slice; H264Mb *mbs = sbe->mbs; decode_super_mb_block(d, s, smbc, mbs, m->smb_x, m->smb_y); - VSs__end_task( animatingSlv ); + VSs__end_task(); } VSsTaskType decode_super_mb_taskType = { @@ -203,7 +203,7 @@ int32 draw_edges_taskArgSizes[5] = {sizeof(MBRecContext), sizeof(SliceBufferEntry), sizeof(SuperMBTask),sizeof(SuperMBContext),sizeof(int)}; //#pragma omp task input(*d, *sbe) inout(*sm) -static void draw_edges_task(void *_data, SlaveVP *animatingSlv){ +static void draw_edges_task(void *_data){ draw_edges_taskArgs* args = (draw_edges_taskArgs*) _data; MBRecContext *d = args->d; SliceBufferEntry *sbe = args->sbe; @@ -214,7 +214,7 @@ for (int i=line*smbc->smb_height; i< (line+1)*smbc->smb_height && i< d->mb_height; i++) draw_edges(d, s, i); VMS_App__free(args->line); - VSs__end_task( animatingSlv ); + VSs__end_task(); } VSsTaskType draw_edges_taskType = { .fn = &draw_edges_task, @@ -225,7 +225,7 @@ .argSizes = draw_edges_taskArgSizes}; -static void decode_mb_in_slice(H264Context *h, MBRecContext *d, SliceBufferEntry *sbe, SlaveVP* animSlv){ +static void decode_mb_in_slice(H264Context *h, MBRecContext *d, SliceBufferEntry *sbe){ int i,j; SuperMBContext *smbc = acquire_smbc(h); @@ -245,7 +245,7 @@ decode_super_mb_task_args.ml = sml; decode_super_mb_task_args.mur = smur; decode_super_mb_task_args.m = sm; - VSs__submit_task(&decode_super_mb_taskType, &decode_super_mb_task_args, animSlv); + VSs__submit_task(&decode_super_mb_taskType, &decode_super_mb_task_args); } draw_edges_taskArgs draw_edges_task_args; draw_edges_task_args.d = d; @@ -254,9 +254,9 @@ draw_edges_task_args.smbc = smbc; draw_edges_task_args.line = VMS_App__malloc( sizeof(int) ); *(draw_edges_task_args.line) = j; - VSs__submit_task(&draw_edges_taskType, &draw_edges_task_args, animSlv); + VSs__submit_task(&draw_edges_taskType, &draw_edges_task_args); } - VSs__taskwait_on(animSlv,sm); + VSs__taskwait_on(sm); //#pragma omp taskwait on(*sm) release_smbc(h, smbc); @@ -272,7 +272,7 @@ int32 decode_slice_mb_taskArgSizes[3] = {sizeof(MBRecContext), sizeof(SliceBufferEntry), sizeof(H264Context)}; //#pragma omp task inout(*d) inout(*sbe) -static void decode_slice_mb_task(void *_data, SlaveVP *animatingSlv){ +static void decode_slice_mb_task(void *_data){ decode_slice_mb_taskArgs* args = (decode_slice_mb_taskArgs*) _data; MBRecContext *d = args->d; SliceBufferEntry *sbe = args->sbe; @@ -295,27 +295,27 @@ } //#pragma omp critical (dpb) - VSs__start_critical(animatingSlv,0); + VSs__start_critical(0); get_dpb_entry(h, s); - VSs__end_critical(animatingSlv,0); + VSs__end_critical(0); if (!h->no_mbd){ - decode_mb_in_slice (h, d, sbe, animatingSlv); + decode_mb_in_slice (h, d, sbe); } for (int i=0; irelease_cnt; i++){ for(int j=0; jmax_dpb_cnt; j++){ if(h->dpb[j].cpn== s->release_ref_cpn[i]){ //#pragma omp critical (dpb) - VSs__start_critical(animatingSlv,0); + VSs__start_critical(0); release_dpb_entry(h, &h->dpb[j], 2); - VSs__end_critical(animatingSlv,0); + VSs__end_critical(0); break; } } } s->release_cnt=0; - VSs__end_task( animatingSlv ); + VSs__end_task(); } VSsTaskType decode_slice_mb_taskType = { @@ -343,7 +343,7 @@ sizeof(SuperMBTask), sizeof(SuperMBTask), sizeof(SuperMBTask), sizeof(SuperMBContext)}; //#pragma omp task input(*d, *sbe, *ml, *mur, *mprev) inout(*m) -static void decode_3dwave_super_mb_task(void *_data, SlaveVP *animatingSlv){ +static void decode_3dwave_super_mb_task(void *_data){ decode_3dwave_super_mb_taskArgs* args = (decode_3dwave_super_mb_taskArgs*) _data; MBRecContext *d = args->d; SliceBufferEntry *sbe = args->sbe; @@ -357,7 +357,7 @@ H264Mb *mbs = sbe->mbs; decode_super_mb_block(d, s, smbc, mbs, m->smb_x, m->smb_y); - VSs__end_task( animatingSlv ); + VSs__end_task(); } VSsTaskType decode_3dwave_super_mb_taskType = { @@ -380,7 +380,7 @@ int32 init_ref_list_and_get_dpb_taskArgSizes[4] = {sizeof(MBRecContext), sizeof(SliceBufferEntry), sizeof(int), sizeof(H264Context)}; //#pragma omp task inout(*d, *sbe, *init) -static void init_ref_list_and_get_dpb_task(void *_data, SlaveVP *animatingSlv){ +static void init_ref_list_and_get_dpb_task(void *_data){ init_ref_list_and_get_dpb_taskArgs* args = (init_ref_list_and_get_dpb_taskArgs*) _data; MBRecContext *d = args->d; SliceBufferEntry *sbe = args->sbe; @@ -403,11 +403,11 @@ } //#pragma omp critical (dpb) - VSs__start_critical(animatingSlv,0); + VSs__start_critical(0); get_dpb_entry(h, s); - VSs__end_critical(animatingSlv,0); + VSs__end_critical(0); - VSs__end_task( animatingSlv ); + VSs__end_task(); } VSsTaskType init_ref_list_and_get_dpb_taskType = { @@ -418,7 +418,7 @@ .argTypes = init_ref_list_and_get_dpb_taskArgTypes, .argSizes = init_ref_list_and_get_dpb_taskArgSizes}; -static SuperMBTask* add_decode_slice_3dwave_tasks(MBRecContext *d, SliceBufferEntry *sbe, SuperMBContext *smbc, int k, SlaveVP* animSlv){ +static SuperMBTask* add_decode_slice_3dwave_tasks(MBRecContext *d, SliceBufferEntry *sbe, SuperMBContext *smbc, int k){ int i,j; int32* taskID; @@ -445,11 +445,11 @@ decode_3dwave_super_mb_task_args.mur = smur; decode_3dwave_super_mb_task_args.mprev = smprev; decode_3dwave_super_mb_task_args.m = sm; - taskID = VSs__create_taskID_of_size(3,animSlv ); + taskID = VSs__create_taskID_of_size(3 ); taskID[1] = k; taskID[2] = j; taskID[3] = i; - VSs__submit_task_with_ID(&decode_3dwave_super_mb_taskType, &decode_3dwave_super_mb_task_args, taskID, animSlv); + VSs__submit_task_with_ID(&decode_3dwave_super_mb_taskType, &decode_3dwave_super_mb_task_args, taskID); } draw_edges_taskArgs draw_edges_task_args; draw_edges_task_args.d = d; @@ -458,11 +458,11 @@ draw_edges_task_args.smbc = smbc; draw_edges_task_args.line = VMS_App__malloc( sizeof(int) ); *(draw_edges_task_args.line) = j; - taskID = VSs__create_taskID_of_size(3, animSlv); + taskID = VSs__create_taskID_of_size(3); taskID[1] = k; taskID[2] = j; taskID[3] = i; - VSs__submit_task_with_ID(&draw_edges_taskType, &draw_edges_task_args, taskID, animSlv); + VSs__submit_task_with_ID(&draw_edges_taskType, &draw_edges_task_args, taskID); } for(; j< smb_height; j++){ @@ -477,11 +477,11 @@ decode_super_mb_task_args.ml = sml; decode_super_mb_task_args.mur = smur; decode_super_mb_task_args.m = sm; - taskID = VSs__create_taskID_of_size(3,animSlv ); + taskID = VSs__create_taskID_of_size(3 ); taskID[1] = k; taskID[2] = j; taskID[3] = i; - VSs__submit_task_with_ID(&decode_super_mb_taskType, &decode_super_mb_task_args, taskID, animSlv); + VSs__submit_task_with_ID(&decode_super_mb_taskType, &decode_super_mb_task_args, taskID); } draw_edges_taskArgs draw_edges_task_args; draw_edges_task_args.d = d; @@ -490,11 +490,11 @@ draw_edges_task_args.smbc = smbc; draw_edges_task_args.line = VMS_App__malloc( sizeof(int) ); *(draw_edges_task_args.line) = j; - taskID = VSs__create_taskID_of_size(3, animSlv); + taskID = VSs__create_taskID_of_size(3); taskID[1] = k; taskID[2] = j; taskID[3] = i; - VSs__submit_task_with_ID(&draw_edges_taskType, &draw_edges_task_args, taskID, animSlv); + VSs__submit_task_with_ID(&draw_edges_taskType, &draw_edges_task_args, taskID); } return sm; } @@ -512,7 +512,7 @@ int32 release_ref_list_taskArgSizes[6] = {sizeof(MBRecContext), sizeof(SliceBufferEntry), sizeof(SuperMBTask), sizeof(int), sizeof(H264Context), sizeof(SuperMBContext)}; //#pragma omp task inout(*d, *sbe, *release) input (*lastsmb) -static void release_ref_list_task(void *_data, SlaveVP *animatingSlv){ +static void release_ref_list_task(void *_data){ release_ref_list_taskArgs* args = (release_ref_list_taskArgs*) _data; MBRecContext *d = args->d; SliceBufferEntry *sbe = args->sbe; @@ -526,9 +526,9 @@ for(int j=0; jmax_dpb_cnt; j++){ if(h->dpb[j].cpn== s->release_ref_cpn[i]){ //#pragma omp critical (dpb) - VSs__start_critical(animatingSlv,0); + VSs__start_critical(0); release_dpb_entry(h, &h->dpb[j], 2); - VSs__end_critical(animatingSlv,0); + VSs__end_critical(0); break; } } @@ -537,7 +537,7 @@ release_smbc(h, smbc); - VSs__end_task( animatingSlv ); + VSs__end_task(); } VSsTaskType release_ref_list_taskType = { @@ -564,7 +564,7 @@ int32 output_taskArgSizes[3] = {sizeof(OutputContext), sizeof(SliceBufferEntry), sizeof(H264Context)}; //#pragma omp task inout (*oc) input(*sbe) -static void output_task(void *_data, SlaveVP *animatingSlv){ +static void output_task(void *_data){ output_taskArgs* args = (output_taskArgs*) _data; OutputContext *oc = args->oc; SliceBufferEntry *sbe = args->sbe; @@ -573,13 +573,13 @@ DecodedPicture* out =output_frame(h, oc, sbe->slice.curr_pic, h->ofile, h->frame_width, h->frame_height); if (out){ //#pragma omp critical (dpb) - VSs__start_critical(animatingSlv,0); + VSs__start_critical(0); release_dpb_entry(h, out, 1); - VSs__end_critical(animatingSlv,0); + VSs__end_critical(0); } //print_report(oc->frame_number, oc->video_size, 0, h->verbose); - VSs__end_task( animatingSlv ); + VSs__end_task(); } VSsTaskType output_taskType = { @@ -593,10 +593,8 @@ /* * The following code is the main loop of the file converter */ -//Put VMS entry point here -void h264_decode_ompss( void *_params, SlaveVP *animSlv) { - H264Context* h = (H264Context*) _params; +int h264_decode_ompss( H264Context *h) { const int bufs = h->pipe_bufs; @@ -647,21 +645,21 @@ parse_task_args.pc = pc; parse_task_args.nc = nc; parse_task_args.sbe = &sbe[k%bufs]; - taskID = VSs__create_taskID_of_size(2,animSlv ); + taskID = VSs__create_taskID_of_size(2); taskID[1] = 1; taskID[2] = k; - VSs__submit_task_with_ID(&parse_taskType, &parse_task_args, taskID, animSlv); + VSs__submit_task_with_ID(&parse_taskType, &parse_task_args, taskID); decode_slice_entropy_taskArgs decode_slice_entropy_task_args; decode_slice_entropy_task_args.h = h; decode_slice_entropy_task_args.ec = ec[k%bufs]; decode_slice_entropy_task_args.sbe = &sbe[k%bufs]; - taskID = VSs__create_taskID_of_size(2,animSlv ); + taskID = VSs__create_taskID_of_size(2); taskID[1] = 2; taskID[2] = k; - VSs__submit_task_with_ID(&decode_slice_entropy_taskType, &decode_slice_entropy_task_args, taskID, animSlv); + VSs__submit_task_with_ID(&decode_slice_entropy_taskType, &decode_slice_entropy_task_args, taskID); //#pragma omp taskwait on(*pc) - VSs__taskwait_on(animSlv,pc); + VSs__taskwait_on(pc); k++; } @@ -671,19 +669,19 @@ parse_task_args.pc = pc; parse_task_args.nc = nc; parse_task_args.sbe = &sbe[k%bufs]; - taskID = VSs__create_taskID_of_size(2,animSlv ); + taskID = VSs__create_taskID_of_size(2); taskID[1] = 3; taskID[2] = k; - VSs__submit_task_with_ID(&parse_taskType, &parse_task_args, taskID, animSlv); + VSs__submit_task_with_ID(&parse_taskType, &parse_task_args, taskID); decode_slice_entropy_taskArgs decode_slice_entropy_task_args; decode_slice_entropy_task_args.h = h; decode_slice_entropy_task_args.ec = ec[k%bufs]; decode_slice_entropy_task_args.sbe = &sbe[k%bufs]; - taskID = VSs__create_taskID_of_size(2,animSlv ); + taskID = VSs__create_taskID_of_size(2); taskID[1] = 4; taskID[2] = k; - VSs__submit_task_with_ID(&decode_slice_entropy_taskType, &decode_slice_entropy_task_args, taskID, animSlv); + VSs__submit_task_with_ID(&decode_slice_entropy_taskType, &decode_slice_entropy_task_args, taskID); k++; @@ -692,13 +690,13 @@ init_ref_list_and_get_dpb_task_args.d = rc[k%2]; init_ref_list_and_get_dpb_task_args.sbe = &sbe[k%bufs]; init_ref_list_and_get_dpb_task_args.init = &init; - taskID = VSs__create_taskID_of_size(2,animSlv ); + taskID = VSs__create_taskID_of_size(2); taskID[1] = 5; taskID[2] = k; - VSs__submit_task_with_ID(&init_ref_list_and_get_dpb_taskType, &init_ref_list_and_get_dpb_task_args, taskID, animSlv); + VSs__submit_task_with_ID(&init_ref_list_and_get_dpb_taskType, &init_ref_list_and_get_dpb_task_args, taskID); smbc = acquire_smbc(h); - SuperMBTask *lastsmb= add_decode_slice_3dwave_tasks(rc[k%2], &sbe[k%bufs], smbc, k, animSlv); + SuperMBTask *lastsmb= add_decode_slice_3dwave_tasks(rc[k%2], &sbe[k%bufs], smbc, k); release_ref_list_taskArgs release_ref_list_task_args; release_ref_list_task_args.h = h; release_ref_list_task_args.smbc = smbc; @@ -706,21 +704,21 @@ release_ref_list_task_args.sbe = &sbe[k%bufs]; release_ref_list_task_args.lastsmb = lastsmb; release_ref_list_task_args.release = &release; - taskID = VSs__create_taskID_of_size(2,animSlv ); + taskID = VSs__create_taskID_of_size(2); taskID[1] = 6; taskID[2] = k; - VSs__submit_task_with_ID(&release_ref_list_taskType, &release_ref_list_task_args, taskID, animSlv); + VSs__submit_task_with_ID(&release_ref_list_taskType, &release_ref_list_task_args, taskID); output_taskArgs output_task_args; output_task_args.h = h; output_task_args.oc = oc; output_task_args.sbe = &sbe[k%bufs]; - taskID = VSs__create_taskID_of_size(2,animSlv ); + taskID = VSs__create_taskID_of_size(2); taskID[1] = 7; taskID[2] = k; - VSs__submit_task_with_ID(&output_taskType, &output_task_args, taskID, animSlv); + VSs__submit_task_with_ID(&output_taskType, &output_task_args, taskID); //#pragma omp taskwait on(*pc) - VSs__taskwait_on(animSlv,pc); + VSs__taskwait_on(pc); } for (int i=0; i< num_pre_ed; i++){ @@ -730,12 +728,12 @@ init_ref_list_and_get_dpb_task_args.d = rc[k%2]; init_ref_list_and_get_dpb_task_args.sbe = &sbe[k%bufs]; init_ref_list_and_get_dpb_task_args.init = &init; - taskID = VSs__create_taskID_of_size(2,animSlv ); + taskID = VSs__create_taskID_of_size(2); taskID[1] = 8; taskID[2] = i; - VSs__submit_task_with_ID(&init_ref_list_and_get_dpb_taskType, &init_ref_list_and_get_dpb_task_args, taskID, animSlv); + VSs__submit_task_with_ID(&init_ref_list_and_get_dpb_taskType, &init_ref_list_and_get_dpb_task_args, taskID); smbc = acquire_smbc(h); - SuperMBTask *lastsmb= add_decode_slice_3dwave_tasks(rc[k%2], &sbe[k%bufs], smbc, k, animSlv); + SuperMBTask *lastsmb= add_decode_slice_3dwave_tasks(rc[k%2], &sbe[k%bufs], smbc, k); release_ref_list_taskArgs release_ref_list_task_args; release_ref_list_task_args.h = h; release_ref_list_task_args.smbc = smbc; @@ -743,63 +741,63 @@ release_ref_list_task_args.sbe = &sbe[k%bufs]; release_ref_list_task_args.lastsmb = lastsmb; release_ref_list_task_args.release = &release; - taskID = VSs__create_taskID_of_size(2,animSlv ); + taskID = VSs__create_taskID_of_size(2); taskID[1] = 9; taskID[2] = k; - VSs__submit_task_with_ID(&release_ref_list_taskType, &release_ref_list_task_args, taskID, animSlv); + VSs__submit_task_with_ID(&release_ref_list_taskType, &release_ref_list_task_args, taskID); output_taskArgs output_task_args; output_task_args.h = h; output_task_args.oc = oc; output_task_args.sbe = &sbe[k%bufs]; - taskID = VSs__create_taskID_of_size(2,animSlv ); + taskID = VSs__create_taskID_of_size(2); taskID[1] = 10; taskID[2] = k; - VSs__submit_task_with_ID(&output_taskType, &output_task_args, taskID, animSlv); + VSs__submit_task_with_ID(&output_taskType, &output_task_args, taskID); } } else { while(!pc->final_frame && frames++ < h->num_frames && !h->quit){ - taskID = VSs__create_taskID_of_size(1,animSlv ); + taskID = VSs__create_taskID_of_size(1); taskID[1] = frames*10+1; parse_taskArgs parse_task_args; parse_task_args.h = h; parse_task_args.pc = pc; parse_task_args.nc = nc; parse_task_args.sbe = &sbe[k%bufs]; - VSs__submit_task_with_ID(&parse_taskType, &parse_task_args, taskID, animSlv); + VSs__submit_task_with_ID(&parse_taskType, &parse_task_args, taskID); - taskID = VSs__create_taskID_of_size(1,animSlv ); + taskID = VSs__create_taskID_of_size(1); taskID[1] = frames*10+2; decode_slice_entropy_taskArgs decode_slice_entropy_task_args; decode_slice_entropy_task_args.h = h; decode_slice_entropy_task_args.ec = ec[k%bufs]; decode_slice_entropy_task_args.sbe = &sbe[k%bufs]; - VSs__submit_task_with_ID(&decode_slice_entropy_taskType, &decode_slice_entropy_task_args,taskID, animSlv); + VSs__submit_task_with_ID(&decode_slice_entropy_taskType, &decode_slice_entropy_task_args,taskID); - taskID = VSs__create_taskID_of_size(1,animSlv ); + taskID = VSs__create_taskID_of_size(1); taskID[1] = frames*10+3; decode_slice_mb_taskArgs decode_slice_mb_task_args; decode_slice_mb_task_args.h = h; decode_slice_mb_task_args.d = rc[0]; decode_slice_mb_task_args.sbe = &sbe[k%bufs]; - VSs__submit_task_with_ID(&decode_slice_mb_taskType, &decode_slice_mb_task_args,taskID, animSlv); + VSs__submit_task_with_ID(&decode_slice_mb_taskType, &decode_slice_mb_task_args,taskID); - taskID = VSs__create_taskID_of_size(1,animSlv ); + taskID = VSs__create_taskID_of_size(1); taskID[1] = frames*10+4; output_taskArgs output_task_args; output_task_args.h = h; output_task_args.oc = oc; output_task_args.sbe = &sbe[k%bufs]; - VSs__submit_task_with_ID(&output_taskType, &output_task_args,taskID, animSlv); + VSs__submit_task_with_ID(&output_taskType, &output_task_args,taskID); //#pragma omp taskwait on(*pc) - VSs__taskwait_on(animSlv,pc); + VSs__taskwait_on(pc); k++; } } //#pragma omp taskwait - VSs__taskwait(animSlv); + VSs__taskwait(); while ((out=output_frame(h, oc, NULL, h->ofile, h->frame_width, h->frame_height))) ; @@ -827,5 +825,5 @@ } #endif - VSs__end_thread( animSlv ); + return 0; }