| Index: content/renderer/media/image_capture_frame_grabber.cc
|
| diff --git a/content/renderer/media/image_capture_frame_grabber.cc b/content/renderer/media/image_capture_frame_grabber.cc
|
| index 5d39b3ebcc5dda661cea9e78b8510ed330902835..edcfcb9d1d994706a5923c6f2dd3b5b81d56429b 100644
|
| --- a/content/renderer/media/image_capture_frame_grabber.cc
|
| +++ b/content/renderer/media/image_capture_frame_grabber.cc
|
| @@ -79,14 +79,22 @@ void ImageCaptureFrameGrabber::SingleShotFrameHandler::OnVideoFrameOnIOThread(
|
| return;
|
| }
|
|
|
| - libyuv::I420ToARGB(frame->visible_data(media::VideoFrame::kYPlane),
|
| - frame->stride(media::VideoFrame::kYPlane),
|
| - frame->visible_data(media::VideoFrame::kUPlane),
|
| - frame->stride(media::VideoFrame::kUPlane),
|
| - frame->visible_data(media::VideoFrame::kVPlane),
|
| - frame->stride(media::VideoFrame::kVPlane),
|
| - static_cast<uint8*>(pixmap.writable_addr()),
|
| - pixmap.width() * 4, pixmap.width(), pixmap.height());
|
| +#if defined(OS_ANDROID)
|
| + // See https://crbug.com/627983.
|
| + const uint32 destination_pixel_format = libyuv::FOURCC_ABGR;
|
| +#else
|
| + const uint32 destination_pixel_format = libyuv::FOURCC_ARGB;
|
| +#endif
|
| +
|
| + libyuv::ConvertFromI420(frame->visible_data(media::VideoFrame::kYPlane),
|
| + frame->stride(media::VideoFrame::kYPlane),
|
| + frame->visible_data(media::VideoFrame::kUPlane),
|
| + frame->stride(media::VideoFrame::kUPlane),
|
| + frame->visible_data(media::VideoFrame::kVPlane),
|
| + frame->stride(media::VideoFrame::kVPlane),
|
| + static_cast<uint8*>(pixmap.writable_addr()),
|
| + pixmap.width() * 4, pixmap.width(), pixmap.height(),
|
| + destination_pixel_format);
|
|
|
| if (frame->format() == media::PIXEL_FORMAT_YV12A) {
|
| DCHECK(!info.isOpaque());
|
|
|