@@ -267,7 +267,7 @@ void RgbaToYuv420(const uint8_t *sourceRgba, uint32_t sourceStride,
267
267
int16x8_t vCrB = vdupq_n_s16 (static_cast <int16_t >(CrB));
268
268
int32x4_t v_zeros = vdupq_n_s32 (0 );
269
269
270
- for (; x < width; x += 16 ) {
270
+ for (; x + 16 < width; x += 16 ) {
271
271
uint8x16x4_t pixel = vld4q_u8 (mSrc );
272
272
273
273
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,
550
550
int16x8_t vCrB = vdupq_n_s16 (static_cast <int16_t >(CrB));
551
551
int32x4_t v_zeros = vdupq_n_s32 (0 );
552
552
553
- for (; x < width; x += 16 ) {
553
+ for (; x + 16 < width; x += 16 ) {
554
554
uint8x16x4_t pixel = vld4q_u8 (mSrc );
555
555
556
556
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,
826
826
int16x8_t vCrB = vdupq_n_s16 (static_cast <int16_t >(CrB));
827
827
int32x4_t v_zeros = vdupq_n_s32 (0 );
828
828
829
- for (; x < width; x += 16 ) {
829
+ for (; x + 16 < width; x += 16 ) {
830
830
uint8x16x4_t pixel = vld4q_u8 (mSrc );
831
831
832
832
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,
1043
1043
1044
1044
const auto scale = static_cast <float >( 1 << precision );
1045
1045
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);
1047
1046
1048
1047
auto yStore = reinterpret_cast <uint8_t *>(yPlane);
1049
1048
1050
1049
auto mSource = reinterpret_cast <const uint8_t *>(sourceRgba);
1051
1050
1052
- int maxChroma = biasY + rangeUV;
1053
1051
int maxLuma = biasY + rangeY;
1054
1052
1055
1053
for (uint32_t y = 0 ; y < height; ++y) {
@@ -1066,19 +1064,12 @@ void RgbaToYuv400(const uint8_t *sourceRgba, uint32_t sourceStride,
1066
1064
int16x8_t i_cap_uv = vdupq_n_u16 (static_cast <int16_t >(biasY + rangeUV));
1067
1065
1068
1066
int16x8_t y_bias = vdupq_n_s32 (iBiasY);
1069
- int16x8_t uv_bias = vdupq_n_s32 (iBiasUV);
1070
1067
int16x8_t vYr = vdupq_n_s16 (static_cast <int16_t >(YR));
1071
1068
int16x8_t vYg = vdupq_n_s16 (static_cast <int16_t >(YG));
1072
1069
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));
1079
1070
int32x4_t v_zeros = vdupq_n_s32 (0 );
1080
1071
1081
- for (; x < width; x += 16 ) {
1072
+ for (; x + 16 < width; x += 16 ) {
1082
1073
uint8x16x4_t pixel = vld4q_u8 (mSrc );
1083
1074
1084
1075
int16x8_t r_high = vreinterpretq_s16_u16 (vmovl_high_u8 (pixel.val [0 ]));
0 commit comments