Showing the changes to libpostproc (1 of 1 file). Show all
Unified · Split
| @@ -3372,7 +3372,7 @@ static void RENAME(postProcess)(const uint8_t src[], int srcStride, uint8_t dst[ · 3371 unmodified lines | ||
| 3372 | 3372 | int i; |
| 3373 | 3373 | uint64_t maxClipped; |
| 3374 | 3374 | uint64_t clipped; |
| 3375 | − double scale; | |
| 3375 | + AVRational scale; | |
| 3376 | 3376 | |
| 3377 | 3377 | c.frameNum++; |
| 3378 | 3378 | // first frame is fscked so we ignore it |
| @@ -3397,13 +3397,13 @@ static void RENAME(postProcess)(const uint8_t src[], int srcStride, uint8_t dst[ · 18 unmodified lines | ||
| 3397 | 3397 | clipped-= yHistogram[white]; |
| 3398 | 3398 | } |
| 3399 | 3399 | |
| 3400 | − scale= (double)(c.ppMode.maxAllowedY - c.ppMode.minAllowedY) / (double)(white-black); | |
| 3400 | + scale = (AVRational){c.ppMode.maxAllowedY - c.ppMode.minAllowedY, white - black}; | |
| 3401 | 3401 | |
| 3402 | 3402 | #if TEMPLATE_PP_MMXEXT |
| 3403 | − c.packedYScale= (uint16_t)(scale*256.0 + 0.5); | |
| 3403 | + c.packedYScale = (uint16_t)av_rescale(scale.num, 256, scale.den); | |
| 3404 | 3404 | c.packedYOffset= (((black*c.packedYScale)>>8) - c.ppMode.minAllowedY) & 0xFFFF; |
| 3405 | 3405 | #else |
| 3406 | − c.packedYScale= (uint16_t)(scale*1024.0 + 0.5); | |
| 3406 | + c.packedYScale = (uint16_t)av_rescale(scale.num, 1024, scale.den); | |
| 3407 | 3407 | c.packedYOffset= (black - c.ppMode.minAllowedY) & 0xFFFF; |
| 3408 | 3408 | #endif |
| 3409 | 3409 | |
| @@ -3413,7 +3413,7 @@ static void RENAME(postProcess)(const uint8_t src[], int srcStride, uint8_t dst[ · 3 unmodified lines | ||
| 3413 | 3413 | c.packedYScale|= c.packedYScale<<32; |
| 3414 | 3414 | c.packedYScale|= c.packedYScale<<16; |
| 3415 | 3415 | |
| 3416 | − if(mode & LEVEL_FIX) QPCorrecture= (int)(scale*256*256 + 0.5); | |
| 3416 | + if(mode & LEVEL_FIX) QPCorrecture= (int)av_rescale(scale.num, 256*256, scale.den); | |
| 3417 | 3417 | else QPCorrecture= 256*256; |
| 3418 | 3418 | }else{ |
| 3419 | 3419 | c.packedYScale= 0x0100010001000100LL; |