Commit a1f2a86d authored by Eric Petit's avatar Eric Petit

Make I420_UYVY/MMX support widths non multiple of 8

parent 14566227
...@@ -382,6 +382,10 @@ static void I420_UYVY( vout_thread_t *p_vout, picture_t *p_source, ...@@ -382,6 +382,10 @@ static void I420_UYVY( vout_thread_t *p_vout, picture_t *p_source,
MMX_CALL( MMX_YUV420_UYVY ); MMX_CALL( MMX_YUV420_UYVY );
#endif #endif
} }
for( i_x = ( p_vout->render.i_width % 8 ) / 2; i_x--; )
{
C_YUV420_UYVY( );
}
p_y1 += i_source_margin; p_y1 += i_source_margin;
p_y2 += i_source_margin; p_y2 += i_source_margin;
......
...@@ -119,12 +119,6 @@ movq %%mm1, (%1) # Store YUYV \n\ ...@@ -119,12 +119,6 @@ movq %%mm1, (%1) # Store YUYV \n\
*(p_line1)++ = *(p_y1)++; *(p_line2)++ = *(p_y2)++; \ *(p_line1)++ = *(p_y1)++; *(p_line2)++ = *(p_y2)++; \
*(p_line1)++ = *(p_line2)++ = *(p_u)++; \ *(p_line1)++ = *(p_line2)++ = *(p_u)++; \
#define C_YUV420_UYVY( ) \
*(p_line1)++ = *(p_line2)++ = *(p_u)++; \
*(p_line1)++ = *(p_y1)++; *(p_line2)++ = *(p_y2)++; \
*(p_line1)++ = *(p_line2)++ = *(p_v)++; \
*(p_line1)++ = *(p_y1)++; *(p_line2)++ = *(p_y2)++; \
#define C_YUV420_Y211( ) \ #define C_YUV420_Y211( ) \
*(p_line1)++ = *(p_y1); p_y1 += 2; \ *(p_line1)++ = *(p_y1); p_y1 += 2; \
*(p_line2)++ = *(p_y2); p_y2 += 2; \ *(p_line2)++ = *(p_y2); p_y2 += 2; \
...@@ -142,3 +136,9 @@ movq %%mm1, (%1) # Store YUYV \n\ ...@@ -142,3 +136,9 @@ movq %%mm1, (%1) # Store YUYV \n\
*(p_line1)++ = *(p_y1)++; *(p_line2)++ = *(p_y2)++; \ *(p_line1)++ = *(p_y1)++; *(p_line2)++ = *(p_y2)++; \
*(p_line1)++ = *(p_line2)++ = *(p_v)++; \ *(p_line1)++ = *(p_line2)++ = *(p_v)++; \
#define C_YUV420_UYVY( ) \
*(p_line1)++ = *(p_line2)++ = *(p_u)++; \
*(p_line1)++ = *(p_y1)++; *(p_line2)++ = *(p_y2)++; \
*(p_line1)++ = *(p_line2)++ = *(p_v)++; \
*(p_line1)++ = *(p_y1)++; *(p_line2)++ = *(p_y2)++; \
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment