mirror of
https://chromium.googlesource.com/libyuv/libyuv
synced 2025-12-07 17:26:49 +08:00
RGB565 etc to I420 had UV function pointer set wrong for _C version.
BUG=none TEST=media_unittest Review URL: https://webrtc-codereview.appspot.com/353006 git-svn-id: http://libyuv.googlecode.com/svn/trunk@135 16f28f9a-4ce2-e073-06de-1de4eb20be90
This commit is contained in:
parent
1de81bca84
commit
44477b260a
@ -1,6 +1,6 @@
|
||||
Name: libyuv
|
||||
URL: http://code.google.com/p/libyuv/
|
||||
Version: 134
|
||||
Version: 135
|
||||
License: BSD
|
||||
License File: LICENSE
|
||||
|
||||
|
||||
@ -549,7 +549,7 @@ int RGB24ToI420(const uint8* src_frame, int src_stride_frame,
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
ARGBToUVRow = RGB24ToUVRow_C;
|
||||
ARGBToUVRow = ARGBToUVRow_C;
|
||||
}
|
||||
|
||||
for (int y = 0; y < (height - 1); y += 2) {
|
||||
@ -615,7 +615,7 @@ int RAWToI420(const uint8* src_frame, int src_stride_frame,
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
ARGBToUVRow = RAWToUVRow_C;
|
||||
ARGBToUVRow = ARGBToUVRow_C;
|
||||
}
|
||||
|
||||
for (int y = 0; y < (height - 1); y += 2) {
|
||||
@ -681,7 +681,7 @@ int RGB565ToI420(const uint8* src_frame, int src_stride_frame,
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
ARGBToUVRow = RGB565ToUVRow_C;
|
||||
ARGBToUVRow = ARGBToUVRow_C;
|
||||
}
|
||||
|
||||
for (int y = 0; y < (height - 1); y += 2) {
|
||||
@ -747,7 +747,7 @@ int ARGB1555ToI420(const uint8* src_frame, int src_stride_frame,
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
ARGBToUVRow = ARGB1555ToUVRow_C;
|
||||
ARGBToUVRow = ARGBToUVRow_C;
|
||||
}
|
||||
|
||||
for (int y = 0; y < (height - 1); y += 2) {
|
||||
@ -813,7 +813,7 @@ int ARGB4444ToI420(const uint8* src_frame, int src_stride_frame,
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
ARGBToUVRow = ARGB4444ToUVRow_C;
|
||||
ARGBToUVRow = ARGBToUVRow_C;
|
||||
}
|
||||
|
||||
for (int y = 0; y < (height - 1); y += 2) {
|
||||
|
||||
@ -1624,13 +1624,13 @@ int I420ToABGR(const uint8* src_y, int src_stride_y,
|
||||
// Convert NV12 to RGB565.
|
||||
int NV12ToRGB565(const uint8* src_y, int src_stride_y,
|
||||
const uint8* src_uv, int src_stride_uv,
|
||||
uint8* dst_argb, int dst_stride_argb,
|
||||
uint8* dst_rgb, int dst_stride_rgb,
|
||||
int width, int height) {
|
||||
// Negative height means invert the image.
|
||||
if (height < 0) {
|
||||
height = -height;
|
||||
dst_argb = dst_argb + (height - 1) * dst_stride_argb;
|
||||
dst_stride_argb = -dst_stride_argb;
|
||||
dst_rgb = dst_rgb + (height - 1) * dst_stride_rgb;
|
||||
dst_stride_rgb = -dst_stride_rgb;
|
||||
}
|
||||
void (*FastConvertYUVToRGB565Row)(const uint8* y_buf,
|
||||
const uint8* u_buf,
|
||||
@ -1644,7 +1644,7 @@ int NV12ToRGB565(const uint8* src_y, int src_stride_y,
|
||||
#elif defined(HAS_FASTCONVERTYUVTORGB565ROW_SSSE3)
|
||||
if (TestCpuFlag(kCpuHasSSSE3) &&
|
||||
IS_ALIGNED(width, 8) &&
|
||||
IS_ALIGNED(dst_argb, 16) && IS_ALIGNED(dst_stride_argb, 16)) {
|
||||
IS_ALIGNED(dst_rgb, 16) && IS_ALIGNED(dst_stride_rgb, 16)) {
|
||||
FastConvertYUVToRGB565Row = FastConvertYUVToRGB565Row_SSSE3;
|
||||
} else
|
||||
#endif
|
||||
@ -1675,8 +1675,8 @@ int NV12ToRGB565(const uint8* src_y, int src_stride_y,
|
||||
SplitUV(src_uv, row, row + kMaxStride, halfwidth);
|
||||
src_uv += src_stride_uv;
|
||||
}
|
||||
FastConvertYUVToRGB565Row(src_y, row, row + kMaxStride, dst_argb, width);
|
||||
dst_argb += dst_stride_argb;
|
||||
FastConvertYUVToRGB565Row(src_y, row, row + kMaxStride, dst_rgb, width);
|
||||
dst_rgb += dst_stride_rgb;
|
||||
src_y += src_stride_y;
|
||||
}
|
||||
return 0;
|
||||
|
||||
@ -375,7 +375,7 @@ __asm {
|
||||
sub edx, eax
|
||||
|
||||
convertloop:
|
||||
movdqa xmm0, [eax] // fetch 8 pixels of bgr565
|
||||
movdqa xmm0, [eax] // fetch 8 pixels of bgr565
|
||||
movdqa xmm1, xmm0
|
||||
movdqa xmm2, xmm0
|
||||
pand xmm1, xmm3 // R in upper 5 bits
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user