Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1761)

Unified Diff: content/renderer/media/image_capture_frame_grabber.cc

Issue 2150453003: ImageCapture.grabFrame()/<video>.captureStream(), use ABGR pixel format for Android (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Adapted/corrected DLOG message Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/renderer/media/html_video_element_capturer_source.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..87f2afe7d18bd9e34082db1676dd60954cb8d2f4 100644
--- a/content/renderer/media/image_capture_frame_grabber.cc
+++ b/content/renderer/media/image_capture_frame_grabber.cc
@@ -79,14 +79,19 @@ 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());
+ const uint32 destination_pixel_format =
+ (kN32_SkColorType == kRGBA_8888_SkColorType) ? libyuv::FOURCC_ABGR
+ : libyuv::FOURCC_ARGB;
+
+ 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());
« no previous file with comments | « content/renderer/media/html_video_element_capturer_source.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698