0

I444ToABGR for skcanvas in one step.

libyuv supported I444ToARGB in the past, but not ABGR, so it was a
2 step process.  libyuv r1487 supports I444ToABGR in one step.

BUG=libyuv:490

Review URL: https://codereview.chromium.org/1357943003

Cr-Commit-Position: refs/heads/master@{#350282}
This commit is contained in:
fbarchard
2015-09-22 17:59:24 -07:00
committed by Commit bot
parent 2c90f8ed39
commit 5f9bbcb93f

@ -27,6 +27,7 @@
SK_A32_SHIFT == 24
#define LIBYUV_I420_TO_ARGB libyuv::I420ToARGB
#define LIBYUV_I422_TO_ARGB libyuv::I422ToARGB
#define LIBYUV_I444_TO_ARGB libyuv::I444ToARGB
#define LIBYUV_I420ALPHA_TO_ARGB libyuv::I420AlphaToARGB
#define LIBYUV_J420_TO_ARGB libyuv::J420ToARGB
#define LIBYUV_H420_TO_ARGB libyuv::H420ToARGB
@ -34,6 +35,7 @@
SK_A32_SHIFT == 24
#define LIBYUV_I420_TO_ARGB libyuv::I420ToABGR
#define LIBYUV_I422_TO_ARGB libyuv::I422ToABGR
#define LIBYUV_I444_TO_ARGB libyuv::I444ToABGR
#define LIBYUV_I420ALPHA_TO_ARGB libyuv::I420AlphaToABGR
#define LIBYUV_J420_TO_ARGB libyuv::J420ToABGR
#define LIBYUV_H420_TO_ARGB libyuv::H420ToABGR
@ -512,7 +514,7 @@ void SkCanvasVideoRenderer::ConvertVideoFrameToRGBPixels(
break;
case PIXEL_FORMAT_YV24:
libyuv::I444ToARGB(
LIBYUV_I444_TO_ARGB(
video_frame->visible_data(VideoFrame::kYPlane),
video_frame->stride(VideoFrame::kYPlane),
video_frame->visible_data(VideoFrame::kUPlane),
@ -523,15 +525,6 @@ void SkCanvasVideoRenderer::ConvertVideoFrameToRGBPixels(
row_bytes,
video_frame->visible_rect().width(),
video_frame->visible_rect().height());
#if SK_R32_SHIFT == 0 && SK_G32_SHIFT == 8 && SK_B32_SHIFT == 16 && \
SK_A32_SHIFT == 24
libyuv::ARGBToABGR(static_cast<uint8*>(rgb_pixels),
row_bytes,
static_cast<uint8*>(rgb_pixels),
row_bytes,
video_frame->visible_rect().width(),
video_frame->visible_rect().height());
#endif
break;
case PIXEL_FORMAT_NV12:
case PIXEL_FORMAT_NV21: