yuv: patched to compile.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
diff --git a/src/video/yuv2rgb/yuv_rgb.c b/src/video/yuv2rgb/yuv_rgb.c
index dab590e..891dae2 100644
--- a/src/video/yuv2rgb/yuv_rgb.c
+++ b/src/video/yuv2rgb/yuv_rgb.c
@@ -622,13 +622,13 @@ void rgb24_yuv420_sse(uint32_t width, uint32_t height,
uint32_t xpos, ypos;
for(ypos=0; ypos<(height-1); ypos+=2)
{
- const uint8_t *rgb_ptr1=RGB+y*RGB_stride,
- *rgb_ptr2=RGB+(y+1)*RGB_stride;
+ const uint8_t *rgb_ptr1=RGB+ypos*RGB_stride,
+ *rgb_ptr2=RGB+(ypos+1)*RGB_stride;
- uint8_t *y_ptr1=Y+y*Y_stride,
- *y_ptr2=Y+(y+1)*Y_stride,
- *u_ptr=U+(y/2)*UV_stride,
- *v_ptr=V+(y/2)*UV_stride;
+ uint8_t *y_ptr1=Y+ypos*Y_stride,
+ *y_ptr2=Y+(ypos+1)*Y_stride,
+ *u_ptr=U+(ypos/2)*UV_stride,
+ *v_ptr=V+(ypos/2)*UV_stride;
for(xpos=0; xpos<(width-31); xpos+=32)
{
@@ -658,13 +658,13 @@ void rgb24_yuv420_sseu(uint32_t width, uint32_t height,
uint32_t xpos, ypos;
for(ypos=0; ypos<(height-1); ypos+=2)
{
- const uint8_t *rgb_ptr1=RGB+y*RGB_stride,
- *rgb_ptr2=RGB+(y+1)*RGB_stride;
+ const uint8_t *rgb_ptr1=RGB+ypos*RGB_stride,
+ *rgb_ptr2=RGB+(ypos+1)*RGB_stride;
- uint8_t *y_ptr1=Y+y*Y_stride,
- *y_ptr2=Y+(y+1)*Y_stride,
- *u_ptr=U+(y/2)*UV_stride,
- *v_ptr=V+(y/2)*UV_stride;
+ uint8_t *y_ptr1=Y+ypos*Y_stride,
+ *y_ptr2=Y+(ypos+1)*Y_stride,
+ *u_ptr=U+(ypos/2)*UV_stride,
+ *v_ptr=V+(ypos/2)*UV_stride;
for(xpos=0; xpos<(width-31); xpos+=32)
{
diff --git a/src/video/yuv2rgb/yuv_rgb_sse_func.h b/src/video/yuv2rgb/yuv_rgb_sse_func.h
index 3a8b45f..f81140e 100644
--- a/src/video/yuv2rgb/yuv_rgb_sse_func.h
+++ b/src/video/yuv2rgb/yuv_rgb_sse_func.h
@@ -419,13 +419,13 @@ void SSE_FUNCTION_NAME(uint32_t width, uint32_t height,
uint32_t xpos, ypos;
for(ypos=0; ypos<(height-(uv_y_sample_interval-1)); ypos+=uv_y_sample_interval)
{
- const uint8_t *y_ptr1=Y+y*Y_stride,
- *y_ptr2=Y+(y+1)*Y_stride,
- *u_ptr=U+(y/uv_y_sample_interval)*UV_stride,
- *v_ptr=V+(y/uv_y_sample_interval)*UV_stride;
+ const uint8_t *y_ptr1=Y+ypos*Y_stride,
+ *y_ptr2=Y+(ypos+1)*Y_stride,
+ *u_ptr=U+(ypos/uv_y_sample_interval)*UV_stride,
+ *v_ptr=V+(ypos/uv_y_sample_interval)*UV_stride;
- uint8_t *rgb_ptr1=RGB+y*RGB_stride,
- *rgb_ptr2=RGB+(y+1)*RGB_stride;
+ uint8_t *rgb_ptr1=RGB+ypos*RGB_stride,
+ *rgb_ptr2=RGB+(ypos+1)*RGB_stride;
for(xpos=0; xpos<(width-31); xpos+=32)
{
@@ -451,11 +451,11 @@ void SSE_FUNCTION_NAME(uint32_t width, uint32_t height,
/* Catch the last line, if needed */
if (uv_y_sample_interval == 2 && ypos == (height-1))
{
- const uint8_t *y_ptr=Y+y*Y_stride,
- *u_ptr=U+(y/uv_y_sample_interval)*UV_stride,
- *v_ptr=V+(y/uv_y_sample_interval)*UV_stride;
+ const uint8_t *y_ptr=Y+ypos*Y_stride,
+ *u_ptr=U+(ypos/uv_y_sample_interval)*UV_stride,
+ *v_ptr=V+(ypos/uv_y_sample_interval)*UV_stride;
- uint8_t *rgb_ptr=RGB+y*RGB_stride;
+ uint8_t *rgb_ptr=RGB+ypos*RGB_stride;
STD_FUNCTION_NAME(width, 1, y_ptr, u_ptr, v_ptr, Y_stride, UV_stride, rgb_ptr, RGB_stride, yuv_type);
}