Mercurial > cgi-bin > hgwebdir.cgi > PR > Applications > VSs > VSs__H264__App
changeset 5:808fe898c011
give more tasks IDs
| author | Nina Engelhardt <nengel@mailbox.tu-berlin.de> |
|---|---|
| date | Fri, 01 Feb 2013 17:11:39 +0100 |
| parents | 96e628866d41 |
| children | 55fb61482128 |
| files | libavcodec/h264_ompss.c |
| diffstat | 1 files changed, 34 insertions(+), 16 deletions(-) [+] |
line diff
1.1 --- a/libavcodec/h264_ompss.c Wed Dec 19 15:40:26 2012 +0100 1.2 +++ b/libavcodec/h264_ompss.c Fri Feb 01 17:11:39 2013 +0100 1.3 @@ -417,9 +417,11 @@ 1.4 .argTypes = init_ref_list_and_get_dpb_taskArgTypes, 1.5 .argSizes = init_ref_list_and_get_dpb_taskArgSizes}; 1.6 1.7 -static SuperMBTask* add_decode_slice_3dwave_tasks(MBRecContext *d, SliceBufferEntry *sbe, SuperMBContext *smbc, SlaveVP* animSlv){ 1.8 +static SuperMBTask* add_decode_slice_3dwave_tasks(MBRecContext *d, SliceBufferEntry *sbe, SuperMBContext *smbc, int k, SlaveVP* animSlv){ 1.9 int i,j; 1.10 1.11 + int32* taskID; 1.12 + 1.13 int smb_3d_height =smbc->nsmb_3dheight; 1.14 int smb_height =smbc->nsmb_height, smb_width= smbc->nsmb_width; 1.15 int smb_diff_prev = smb_height - smb_3d_height; 1.16 @@ -442,7 +444,11 @@ 1.17 decode_3dwave_super_mb_task_args.mur = smur; 1.18 decode_3dwave_super_mb_task_args.mprev = smprev; 1.19 decode_3dwave_super_mb_task_args.m = sm; 1.20 - VSs__submit_task(&decode_3dwave_super_mb_taskType, &decode_3dwave_super_mb_task_args, animSlv); 1.21 + taskID = VSs__create_taskID_of_size(3,animSlv ); 1.22 + taskID[1] = k; 1.23 + taskID[2] = j; 1.24 + taskID[3] = i; 1.25 + VSs__submit_task_with_ID(&decode_3dwave_super_mb_taskType, &decode_3dwave_super_mb_task_args, taskID, animSlv); 1.26 } 1.27 draw_edges_taskArgs draw_edges_task_args; 1.28 draw_edges_task_args.d = d; 1.29 @@ -451,7 +457,11 @@ 1.30 draw_edges_task_args.smbc = smbc; 1.31 draw_edges_task_args.line = VMS_App__malloc( sizeof(int) ); 1.32 *(draw_edges_task_args.line) = j; 1.33 - VSs__submit_task(&draw_edges_taskType, &draw_edges_task_args, animSlv); 1.34 + taskID = VSs__create_taskID_of_size(3, animSlv); 1.35 + taskID[1] = k; 1.36 + taskID[2] = j; 1.37 + taskID[3] = i; 1.38 + VSs__submit_task_with_ID(&draw_edges_taskType, &draw_edges_task_args, taskID, animSlv); 1.39 } 1.40 1.41 for(; j< smb_height; j++){ 1.42 @@ -466,7 +476,11 @@ 1.43 decode_super_mb_task_args.ml = sml; 1.44 decode_super_mb_task_args.mur = smur; 1.45 decode_super_mb_task_args.m = sm; 1.46 - VSs__submit_task(&decode_super_mb_taskType, &decode_super_mb_task_args, animSlv); 1.47 + taskID = VSs__create_taskID_of_size(3,animSlv ); 1.48 + taskID[1] = k; 1.49 + taskID[2] = j; 1.50 + taskID[3] = i; 1.51 + VSs__submit_task_with_ID(&decode_super_mb_taskType, &decode_super_mb_task_args, taskID, animSlv); 1.52 } 1.53 draw_edges_taskArgs draw_edges_task_args; 1.54 draw_edges_task_args.d = d; 1.55 @@ -475,7 +489,11 @@ 1.56 draw_edges_task_args.smbc = smbc; 1.57 draw_edges_task_args.line = VMS_App__malloc( sizeof(int) ); 1.58 *(draw_edges_task_args.line) = j; 1.59 - VSs__submit_task(&draw_edges_taskType, &draw_edges_task_args, animSlv); 1.60 + taskID = VSs__create_taskID_of_size(3, animSlv); 1.61 + taskID[1] = k; 1.62 + taskID[2] = j; 1.63 + taskID[3] = i; 1.64 + VSs__submit_task_with_ID(&draw_edges_taskType, &draw_edges_task_args, taskID, animSlv); 1.65 } 1.66 return sm; 1.67 } 1.68 @@ -630,7 +648,7 @@ 1.69 parse_task_args.sbe = &sbe[k%bufs]; 1.70 taskID = VSs__create_taskID_of_size(2,animSlv ); 1.71 taskID[1] = 1; 1.72 - taskID[2] = num_pre_ed; 1.73 + taskID[2] = k; 1.74 VSs__submit_task_with_ID(&parse_taskType, &parse_task_args, taskID, animSlv); 1.75 1.76 decode_slice_entropy_taskArgs decode_slice_entropy_task_args; 1.77 @@ -639,7 +657,7 @@ 1.78 decode_slice_entropy_task_args.sbe = &sbe[k%bufs]; 1.79 taskID = VSs__create_taskID_of_size(2,animSlv ); 1.80 taskID[1] = 2; 1.81 - taskID[2] = num_pre_ed; 1.82 + taskID[2] = k; 1.83 VSs__submit_task_with_ID(&decode_slice_entropy_taskType, &decode_slice_entropy_task_args, taskID, animSlv); 1.84 //#pragma omp taskwait on(*pc) 1.85 VSs__taskwait_on(animSlv,pc); 1.86 @@ -654,7 +672,7 @@ 1.87 parse_task_args.sbe = &sbe[k%bufs]; 1.88 taskID = VSs__create_taskID_of_size(2,animSlv ); 1.89 taskID[1] = 3; 1.90 - taskID[2] = frames; 1.91 + taskID[2] = k; 1.92 VSs__submit_task_with_ID(&parse_taskType, &parse_task_args, taskID, animSlv); 1.93 1.94 decode_slice_entropy_taskArgs decode_slice_entropy_task_args; 1.95 @@ -663,7 +681,7 @@ 1.96 decode_slice_entropy_task_args.sbe = &sbe[k%bufs]; 1.97 taskID = VSs__create_taskID_of_size(2,animSlv ); 1.98 taskID[1] = 4; 1.99 - taskID[2] = frames; 1.100 + taskID[2] = k; 1.101 VSs__submit_task_with_ID(&decode_slice_entropy_taskType, &decode_slice_entropy_task_args, taskID, animSlv); 1.102 1.103 k++; 1.104 @@ -675,11 +693,11 @@ 1.105 init_ref_list_and_get_dpb_task_args.init = &init; 1.106 taskID = VSs__create_taskID_of_size(2,animSlv ); 1.107 taskID[1] = 5; 1.108 - taskID[2] = frames; 1.109 + taskID[2] = k; 1.110 VSs__submit_task_with_ID(&init_ref_list_and_get_dpb_taskType, &init_ref_list_and_get_dpb_task_args, taskID, animSlv); 1.111 1.112 smbc = acquire_smbc(h); 1.113 - SuperMBTask *lastsmb= add_decode_slice_3dwave_tasks(rc[k%2], &sbe[k%bufs], smbc, animSlv); 1.114 + SuperMBTask *lastsmb= add_decode_slice_3dwave_tasks(rc[k%2], &sbe[k%bufs], smbc, k, animSlv); 1.115 release_ref_list_taskArgs release_ref_list_task_args; 1.116 release_ref_list_task_args.h = h; 1.117 release_ref_list_task_args.smbc = smbc; 1.118 @@ -689,7 +707,7 @@ 1.119 release_ref_list_task_args.release = &release; 1.120 taskID = VSs__create_taskID_of_size(2,animSlv ); 1.121 taskID[1] = 6; 1.122 - taskID[2] = frames; 1.123 + taskID[2] = k; 1.124 VSs__submit_task_with_ID(&release_ref_list_taskType, &release_ref_list_task_args, taskID, animSlv); 1.125 1.126 output_taskArgs output_task_args; 1.127 @@ -698,7 +716,7 @@ 1.128 output_task_args.sbe = &sbe[k%bufs]; 1.129 taskID = VSs__create_taskID_of_size(2,animSlv ); 1.130 taskID[1] = 7; 1.131 - taskID[2] = frames; 1.132 + taskID[2] = k; 1.133 VSs__submit_task_with_ID(&output_taskType, &output_task_args, taskID, animSlv); 1.134 //#pragma omp taskwait on(*pc) 1.135 VSs__taskwait_on(animSlv,pc); 1.136 @@ -716,7 +734,7 @@ 1.137 taskID[2] = i; 1.138 VSs__submit_task_with_ID(&init_ref_list_and_get_dpb_taskType, &init_ref_list_and_get_dpb_task_args, taskID, animSlv); 1.139 smbc = acquire_smbc(h); 1.140 - SuperMBTask *lastsmb= add_decode_slice_3dwave_tasks(rc[k%2], &sbe[k%bufs], smbc, animSlv); 1.141 + SuperMBTask *lastsmb= add_decode_slice_3dwave_tasks(rc[k%2], &sbe[k%bufs], smbc, k, animSlv); 1.142 release_ref_list_taskArgs release_ref_list_task_args; 1.143 release_ref_list_task_args.h = h; 1.144 release_ref_list_task_args.smbc = smbc; 1.145 @@ -726,7 +744,7 @@ 1.146 release_ref_list_task_args.release = &release; 1.147 taskID = VSs__create_taskID_of_size(2,animSlv ); 1.148 taskID[1] = 9; 1.149 - taskID[2] = frames; 1.150 + taskID[2] = k; 1.151 VSs__submit_task_with_ID(&release_ref_list_taskType, &release_ref_list_task_args, taskID, animSlv); 1.152 1.153 output_taskArgs output_task_args; 1.154 @@ -735,7 +753,7 @@ 1.155 output_task_args.sbe = &sbe[k%bufs]; 1.156 taskID = VSs__create_taskID_of_size(2,animSlv ); 1.157 taskID[1] = 10; 1.158 - taskID[2] = frames; 1.159 + taskID[2] = k; 1.160 VSs__submit_task_with_ID(&output_taskType, &output_task_args, taskID, animSlv); 1.161 } 1.162
