Mercurial > cgi-bin > hgwebdir.cgi > PR > Applications > VSs > VSs__H264__App
comparison libavcodec/h264_ompss.c @ 8:6c1433f5a562
remove need for end_thread()
| author | Nina Engelhardt <nengel@mailbox.tu-berlin.de> |
|---|---|
| date | Fri, 17 May 2013 17:50:05 +0200 |
| parents | c8259123d224 |
| children | ea1ba68cf0ed |
comparison
equal
deleted
inserted
replaced
| 5:51c170445ade | 6:d4d9503bce2b |
|---|---|
| 56 av_read_frame_internal(pc, &sbe->gb); | 56 av_read_frame_internal(pc, &sbe->gb); |
| 57 s = &sbe->slice; | 57 s = &sbe->slice; |
| 58 | 58 |
| 59 decode_nal_units(nc, s, &sbe->gb); | 59 decode_nal_units(nc, s, &sbe->gb); |
| 60 | 60 |
| 61 VSs__end_task(); | 61 return; |
| 62 } | 62 } |
| 63 | 63 |
| 64 VSsTaskType parse_taskType = { | 64 VSsTaskType parse_taskType = { |
| 65 .fn = &parse_task, | 65 .fn = &parse_task, |
| 66 .numCtldArgs = 3, | 66 .numCtldArgs = 3, |
| 92 // GetBitContext *gb = s->gb; | 92 // GetBitContext *gb = s->gb; |
| 93 CABACContext *c = &ec->c; | 93 CABACContext *c = &ec->c; |
| 94 | 94 |
| 95 if( !s->pps.cabac ){ | 95 if( !s->pps.cabac ){ |
| 96 av_log(AV_LOG_ERROR, "Only cabac encoded streams are supported\n"); | 96 av_log(AV_LOG_ERROR, "Only cabac encoded streams are supported\n"); |
| 97 VSs__end_task(); | 97 return; |
| 98 } | 98 } |
| 99 | 99 |
| 100 init_dequant_tables(s, ec); | 100 init_dequant_tables(s, ec); |
| 101 ec->curr_qscale = s->qscale; | 101 ec->curr_qscale = s->qscale; |
| 102 ec->last_qscale_diff = 0; | 102 ec->last_qscale_diff = 0; |
| 122 ret = ff_h264_decode_mb_cabac(ec, s, c); | 122 ret = ff_h264_decode_mb_cabac(ec, s, c); |
| 123 eos = get_cabac_terminate( c); | 123 eos = get_cabac_terminate( c); |
| 124 (void) eos; | 124 (void) eos; |
| 125 if( ret < 0 || c->bytestream > c->bytestream_end + 2) { | 125 if( ret < 0 || c->bytestream > c->bytestream_end + 2) { |
| 126 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); | 126 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); |
| 127 VSs__end_task(); | 127 return; |
| 128 } | 128 } |
| 129 } | 129 } |
| 130 } | 130 } |
| 131 VSs__end_task(); | 131 return; |
| 132 } | 132 } |
| 133 | 133 |
| 134 VSsTaskType decode_slice_entropy_taskType = { | 134 VSsTaskType decode_slice_entropy_taskType = { |
| 135 .fn = &decode_slice_entropy_task, | 135 .fn = &decode_slice_entropy_task, |
| 136 .numCtldArgs = 2, | 136 .numCtldArgs = 2, |
| 176 SuperMBTask *m = args->m; | 176 SuperMBTask *m = args->m; |
| 177 SuperMBContext *smbc = args->smbc; | 177 SuperMBContext *smbc = args->smbc; |
| 178 H264Slice *s = &sbe->slice; | 178 H264Slice *s = &sbe->slice; |
| 179 H264Mb *mbs = sbe->mbs; | 179 H264Mb *mbs = sbe->mbs; |
| 180 decode_super_mb_block(d, s, smbc, mbs, m->smb_x, m->smb_y); | 180 decode_super_mb_block(d, s, smbc, mbs, m->smb_x, m->smb_y); |
| 181 VSs__end_task(); | 181 return; |
| 182 } | 182 } |
| 183 | 183 |
| 184 VSsTaskType decode_super_mb_taskType = { | 184 VSsTaskType decode_super_mb_taskType = { |
| 185 .fn = &decode_super_mb_task, | 185 .fn = &decode_super_mb_task, |
| 186 .numCtldArgs = 5, | 186 .numCtldArgs = 5, |
| 212 int line = *(args->line); | 212 int line = *(args->line); |
| 213 H264Slice *s = &sbe->slice; | 213 H264Slice *s = &sbe->slice; |
| 214 for (int i=line*smbc->smb_height; i< (line+1)*smbc->smb_height && i< d->mb_height; i++) | 214 for (int i=line*smbc->smb_height; i< (line+1)*smbc->smb_height && i< d->mb_height; i++) |
| 215 draw_edges(d, s, i); | 215 draw_edges(d, s, i); |
| 216 VMS_App__free(args->line); | 216 VMS_App__free(args->line); |
| 217 VSs__end_task(); | 217 return; |
| 218 } | 218 } |
| 219 VSsTaskType draw_edges_taskType = { | 219 VSsTaskType draw_edges_taskType = { |
| 220 .fn = &draw_edges_task, | 220 .fn = &draw_edges_task, |
| 221 .numCtldArgs = 3, | 221 .numCtldArgs = 3, |
| 222 .numTotalArgs = 5, | 222 .numTotalArgs = 5, |
| 313 break; | 313 break; |
| 314 } | 314 } |
| 315 } | 315 } |
| 316 } | 316 } |
| 317 s->release_cnt=0; | 317 s->release_cnt=0; |
| 318 VSs__end_task(); | 318 return; |
| 319 } | 319 } |
| 320 | 320 |
| 321 VSsTaskType decode_slice_mb_taskType = { | 321 VSsTaskType decode_slice_mb_taskType = { |
| 322 .fn = &decode_slice_mb_task, | 322 .fn = &decode_slice_mb_task, |
| 323 .numCtldArgs = 2, | 323 .numCtldArgs = 2, |
| 355 | 355 |
| 356 H264Slice *s = &sbe->slice; | 356 H264Slice *s = &sbe->slice; |
| 357 H264Mb *mbs = sbe->mbs; | 357 H264Mb *mbs = sbe->mbs; |
| 358 | 358 |
| 359 decode_super_mb_block(d, s, smbc, mbs, m->smb_x, m->smb_y); | 359 decode_super_mb_block(d, s, smbc, mbs, m->smb_x, m->smb_y); |
| 360 VSs__end_task(); | 360 return; |
| 361 } | 361 } |
| 362 | 362 |
| 363 VSsTaskType decode_3dwave_super_mb_taskType = { | 363 VSsTaskType decode_3dwave_super_mb_taskType = { |
| 364 .fn = &decode_3dwave_super_mb_task, | 364 .fn = &decode_3dwave_super_mb_task, |
| 365 .numCtldArgs = 6, | 365 .numCtldArgs = 6, |
| 405 //#pragma omp critical (dpb) | 405 //#pragma omp critical (dpb) |
| 406 VSs__start_critical(0); | 406 VSs__start_critical(0); |
| 407 get_dpb_entry(h, s); | 407 get_dpb_entry(h, s); |
| 408 VSs__end_critical(0); | 408 VSs__end_critical(0); |
| 409 | 409 |
| 410 VSs__end_task(); | 410 return; |
| 411 } | 411 } |
| 412 | 412 |
| 413 VSsTaskType init_ref_list_and_get_dpb_taskType = { | 413 VSsTaskType init_ref_list_and_get_dpb_taskType = { |
| 414 .fn = &init_ref_list_and_get_dpb_task, | 414 .fn = &init_ref_list_and_get_dpb_task, |
| 415 .numCtldArgs = 3, | 415 .numCtldArgs = 3, |
| 535 } | 535 } |
| 536 s->release_cnt=0; | 536 s->release_cnt=0; |
| 537 | 537 |
| 538 release_smbc(h, smbc); | 538 release_smbc(h, smbc); |
| 539 | 539 |
| 540 VSs__end_task(); | 540 return; |
| 541 } | 541 } |
| 542 | 542 |
| 543 VSsTaskType release_ref_list_taskType = { | 543 VSsTaskType release_ref_list_taskType = { |
| 544 .fn = &release_ref_list_task, | 544 .fn = &release_ref_list_task, |
| 545 .numCtldArgs = 4, | 545 .numCtldArgs = 4, |
| 577 release_dpb_entry(h, out, 1); | 577 release_dpb_entry(h, out, 1); |
| 578 VSs__end_critical(0); | 578 VSs__end_critical(0); |
| 579 } | 579 } |
| 580 //print_report(oc->frame_number, oc->video_size, 0, h->verbose); | 580 //print_report(oc->frame_number, oc->video_size, 0, h->verbose); |
| 581 | 581 |
| 582 VSs__end_task(); | 582 return; |
| 583 } | 583 } |
| 584 | 584 |
| 585 VSsTaskType output_taskType = { | 585 VSsTaskType output_taskType = { |
| 586 .fn = &output_task, | 586 .fn = &output_task, |
| 587 .numCtldArgs = 2, | 587 .numCtldArgs = 2, |
