Changeset 826
- Timestamp:
- 03/12/08 11:41:26 (7 months ago)
- Files:
-
- trunk/ColorConversions.c (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/ColorConversions.c
r825 r826 104 104 baseAddr += outRB * 2; 105 105 } 106 if(height & 1) 107 { 108 int x; 109 for(x=0; x < halfWidth; x++) 110 { 111 unsigned x4 = x*4, x2 = x*2; 112 baseAddr[x4] = inU[x]; 113 baseAddr[x4+1] = inY[x2]; 114 baseAddr[x4+2] = inV[x]; 115 baseAddr[x4+3] = inY[x2+1]; 116 } 117 } 106 118 } 107 119 … … 154 166 vc += rV; 155 167 } 168 if(height & 1) 169 { 170 unsigned halfwidth = width / 2; 171 for(x=0; x < halfwidth; x++) 172 { 173 unsigned x4 = x*4, x2 = x*2; 174 o[x4] = uc[x]; 175 o[x4+1] = yc[x2]; 176 o[x4+2] = vc[x]; 177 o[x4+3] = yc[x2+1]; 178 } 179 } 156 180 } 157 181 … … 189 213 unsigned x2 = x*2, x4 = x*4; 190 214 191 #if 0215 #if 1 192 216 asm volatile( 193 217 "movdqu %4, %%xmm4 \n\t" … … 259 283 vc += rV; 260 284 } 285 if(height & 1) 286 { 287 for(x=0; x < halfwidth; x++) 288 { 289 unsigned x4 = x*4, x2 = x*2; 290 o[x4] = uc[x]; 291 o[x4+1] = yc[x2]; 292 o[x4+2] = vc[x]; 293 o[x4+3] = yc[x2+1]; 294 } 295 } 261 296 } 262 297 … … 285 320 u += rU; 286 321 v += rV; 322 } 323 if(height & 1) 324 { 325 for(x=0; x < halfwidth; x++) 326 { 327 unsigned x4 = x*4, x2 = x*2; 328 o[x4] = u[x]; 329 o[x4+1] = yc[x2]; 330 o[x4+2] = v[x]; 331 o[x4+3] = yc[x2+1]; 332 } 287 333 } 288 334 }
