| 46 | namespace WelsDec { |
| 47 | |
| 48 | static inline void SetRectBlock (void* vp, int32_t w, const int32_t h, int32_t stride, const uint32_t val, |
| 49 | const int32_t size) { |
| 50 | uint8_t* p = (uint8_t*)vp; |
| 51 | w *= size; |
| 52 | if (w == 1 && h == 4) { |
| 53 | * (uint8_t*) (p + 0 * stride) = |
| 54 | * (uint8_t*) (p + 1 * stride) = |
| 55 | * (uint8_t*) (p + 2 * stride) = |
| 56 | * (uint8_t*) (p + 3 * stride) = (uint8_t)val; |
| 57 | } else if (w == 2 && h == 2) { |
| 58 | * (uint16_t*) (p + 0 * stride) = |
| 59 | * (uint16_t*) (p + 1 * stride) = size == 4 ? (uint16_t)val : (uint16_t) (val * 0x0101U); |
| 60 | } else if (w == 2 && h == 4) { |
| 61 | * (uint16_t*) (p + 0 * stride) = |
| 62 | * (uint16_t*) (p + 1 * stride) = |
| 63 | * (uint16_t*) (p + 2 * stride) = |
| 64 | * (uint16_t*) (p + 3 * stride) = size == 4 ? (uint16_t)val : (uint16_t) (val * 0x0101U); |
| 65 | } else if (w == 4 && h == 2) { |
| 66 | * (uint32_t*) (p + 0 * stride) = |
| 67 | * (uint32_t*) (p + 1 * stride) = size == 4 ? val : (uint32_t) (val * 0x01010101UL); |
| 68 | } else if (w == 4 && h == 4) { |
| 69 | * (uint32_t*) (p + 0 * stride) = |
| 70 | * (uint32_t*) (p + 1 * stride) = |
| 71 | * (uint32_t*) (p + 2 * stride) = |
| 72 | * (uint32_t*) (p + 3 * stride) = size == 4 ? val : (uint32_t) (val * 0x01010101UL); |
| 73 | } else if (w == 8 && h == 1) { |
| 74 | * (uint32_t*) (p + 0 * stride) = |
| 75 | * (uint32_t*) (p + 0 * stride + 4) = size == 4 ? val : (uint32_t) (val * 0x01010101UL); |
| 76 | } else if (w == 8 && h == 2) { |
| 77 | * (uint32_t*) (p + 0 * stride) = |
| 78 | * (uint32_t*) (p + 0 * stride + 4) = |
| 79 | * (uint32_t*) (p + 1 * stride) = |
| 80 | * (uint32_t*) (p + 1 * stride + 4) = size == 4 ? val : (uint32_t) (val * 0x01010101UL); |
| 81 | } else if (w == 8 && h == 4) { |
| 82 | * (uint32_t*) (p + 0 * stride) = |
| 83 | * (uint32_t*) (p + 0 * stride + 4) = |
| 84 | * (uint32_t*) (p + 1 * stride) = |
| 85 | * (uint32_t*) (p + 1 * stride + 4) = |
| 86 | * (uint32_t*) (p + 2 * stride) = |
| 87 | * (uint32_t*) (p + 2 * stride + 4) = |
| 88 | * (uint32_t*) (p + 3 * stride) = |
| 89 | * (uint32_t*) (p + 3 * stride + 4) = size == 4 ? val : (uint32_t) (val * 0x01010101UL); |
| 90 | } else if (w == 16 && h == 2) { |
| 91 | * (uint32_t*) (p + 0 * stride + 0) = |
| 92 | * (uint32_t*) (p + 0 * stride + 4) = |
| 93 | * (uint32_t*) (p + 0 * stride + 8) = |
| 94 | * (uint32_t*) (p + 0 * stride + 12) = |
| 95 | * (uint32_t*) (p + 1 * stride + 0) = |
| 96 | * (uint32_t*) (p + 1 * stride + 4) = |
| 97 | * (uint32_t*) (p + 1 * stride + 8) = |
| 98 | * (uint32_t*) (p + 1 * stride + 12) = size == 4 ? val : (uint32_t) (val * 0x01010101UL); |
| 99 | } else if (w == 16 && h == 3) { |
| 100 | * (uint32_t*) (p + 0 * stride + 0) = |
| 101 | * (uint32_t*) (p + 0 * stride + 4) = |
| 102 | * (uint32_t*) (p + 0 * stride + 8) = |
| 103 | * (uint32_t*) (p + 0 * stride + 12) = |
| 104 | * (uint32_t*) (p + 1 * stride + 0) = |
| 105 | * (uint32_t*) (p + 1 * stride + 4) = |