| 129 | } |
| 130 | } |
| 131 | void CopyRectBlock4Cols (void* vdst, void* vsrc, const int32_t stride_dst, const int32_t stride_src, int32_t w, |
| 132 | const int32_t size) { |
| 133 | uint8_t* dst = (uint8_t*)vdst; |
| 134 | uint8_t* src = (uint8_t*)vsrc; |
| 135 | w *= size; |
| 136 | if (w == 1) { |
| 137 | dst[stride_dst * 0] = src[stride_src * 0]; |
| 138 | dst[stride_dst * 1] = src[stride_src * 1]; |
| 139 | dst[stride_dst * 2] = src[stride_src * 2]; |
| 140 | dst[stride_dst * 3] = src[stride_src * 3]; |
| 141 | } else if (w == 2) { |
| 142 | * (uint16_t*) (&dst[stride_dst * 0]) = * (uint16_t*) (&src[stride_src * 0]); |
| 143 | * (uint16_t*) (&dst[stride_dst * 1]) = * (uint16_t*) (&src[stride_src * 1]); |
| 144 | * (uint16_t*) (&dst[stride_dst * 2]) = * (uint16_t*) (&src[stride_src * 2]); |
| 145 | * (uint16_t*) (&dst[stride_dst * 3]) = * (uint16_t*) (&src[stride_src * 3]); |
| 146 | } else if (w == 4) { |
| 147 | * (uint32_t*) (&dst[stride_dst * 0]) = * (uint32_t*) (&src[stride_src * 0]); |
| 148 | * (uint32_t*) (&dst[stride_dst * 1]) = * (uint32_t*) (&src[stride_src * 1]); |
| 149 | * (uint32_t*) (&dst[stride_dst * 2]) = * (uint32_t*) (&src[stride_src * 2]); |
| 150 | * (uint32_t*) (&dst[stride_dst * 3]) = * (uint32_t*) (&src[stride_src * 3]); |
| 151 | } else if (w == 16) { |
| 152 | memcpy (&dst[stride_dst * 0], &src[stride_src * 0], 16); |
| 153 | memcpy (&dst[stride_dst * 1], &src[stride_src * 1], 16); |
| 154 | memcpy (&dst[stride_dst * 2], &src[stride_src * 2], 16); |
| 155 | memcpy (&dst[stride_dst * 3], &src[stride_src * 3], 16); |
| 156 | } |
| 157 | } |
| 158 | void PredPSkipMvFromNeighbor (PDqLayer pCurDqLayer, int16_t iMvp[2]) { |
| 159 | bool bTopAvail, bLeftTopAvail, bRightTopAvail, bLeftAvail; |
| 160 | |