@@ -267,7 +267,7 @@ void RgbaToYuv420(const uint8_t *sourceRgba, uint32_t sourceStride,
267267 int16x8_t vCrB = vdupq_n_s16 (static_cast <int16_t >(CrB));
268268 int32x4_t v_zeros = vdupq_n_s32 (0 );
269269
270- for (; x < width; x += 16 ) {
270+ for (; x + 16 < width; x += 16 ) {
271271 uint8x16x4_t pixel = vld4q_u8 (mSrc );
272272
273273 int16x8_t r_high = vreinterpretq_s16_u16 (vmovl_high_u8 (pixel.val [0 ]));
@@ -550,7 +550,7 @@ void RgbaToYuv422(const uint8_t *sourceRgba, uint32_t sourceStride,
550550 int16x8_t vCrB = vdupq_n_s16 (static_cast <int16_t >(CrB));
551551 int32x4_t v_zeros = vdupq_n_s32 (0 );
552552
553- for (; x < width; x += 16 ) {
553+ for (; x + 16 < width; x += 16 ) {
554554 uint8x16x4_t pixel = vld4q_u8 (mSrc );
555555
556556 int16x8_t r_high = vreinterpretq_s16_u16 (vmovl_high_u8 (pixel.val [0 ]));
@@ -826,7 +826,7 @@ void RgbaToYuv444(const uint8_t *sourceRgba, uint32_t sourceStride,
826826 int16x8_t vCrB = vdupq_n_s16 (static_cast <int16_t >(CrB));
827827 int32x4_t v_zeros = vdupq_n_s32 (0 );
828828
829- for (; x < width; x += 16 ) {
829+ for (; x + 16 < width; x += 16 ) {
830830 uint8x16x4_t pixel = vld4q_u8 (mSrc );
831831
832832 int16x8_t r_high = vreinterpretq_s16_u16 (vmovl_high_u8 (pixel.val [0 ]));
@@ -1043,13 +1043,11 @@ void RgbaToYuv400(const uint8_t *sourceRgba, uint32_t sourceStride,
10431043
10441044 const auto scale = static_cast <float >( 1 << precision );
10451045 const auto iBiasY = static_cast <uint16_t >((static_cast <float >(biasY) + 0 .5f ) * scale);
1046- const auto iBiasUV = static_cast <uint16_t >((static_cast <float >(biasUV) + 0 .5f ) * scale);
10471046
10481047 auto yStore = reinterpret_cast <uint8_t *>(yPlane);
10491048
10501049 auto mSource = reinterpret_cast <const uint8_t *>(sourceRgba);
10511050
1052- int maxChroma = biasY + rangeUV;
10531051 int maxLuma = biasY + rangeY;
10541052
10551053 for (uint32_t y = 0 ; y < height; ++y) {
@@ -1066,19 +1064,12 @@ void RgbaToYuv400(const uint8_t *sourceRgba, uint32_t sourceStride,
10661064 int16x8_t i_cap_uv = vdupq_n_u16 (static_cast <int16_t >(biasY + rangeUV));
10671065
10681066 int16x8_t y_bias = vdupq_n_s32 (iBiasY);
1069- int16x8_t uv_bias = vdupq_n_s32 (iBiasUV);
10701067 int16x8_t vYr = vdupq_n_s16 (static_cast <int16_t >(YR));
10711068 int16x8_t vYg = vdupq_n_s16 (static_cast <int16_t >(YG));
10721069 int16x8_t vYb = vdupq_n_s16 (static_cast <int16_t >(YB));
1073- int16x8_t vCbR = vdupq_n_s16 (static_cast <int16_t >(CbR));
1074- int16x8_t vCbG = vdupq_n_s16 (static_cast <int16_t >(CbG));
1075- int16x8_t vCbB = vdupq_n_s16 (static_cast <int16_t >(CbB));
1076- int16x8_t vCrR = vdupq_n_s16 (static_cast <int16_t >(CrR));
1077- int16x8_t vCrG = vdupq_n_s16 (static_cast <int16_t >(CrG));
1078- int16x8_t vCrB = vdupq_n_s16 (static_cast <int16_t >(CrB));
10791070 int32x4_t v_zeros = vdupq_n_s32 (0 );
10801071
1081- for (; x < width; x += 16 ) {
1072+ for (; x + 16 < width; x += 16 ) {
10821073 uint8x16x4_t pixel = vld4q_u8 (mSrc );
10831074
10841075 int16x8_t r_high = vreinterpretq_s16_u16 (vmovl_high_u8 (pixel.val [0 ]));
0 commit comments