Index: webrtc/media/devices/carbonvideorenderer.cc |
diff --git a/webrtc/media/devices/carbonvideorenderer.cc b/webrtc/media/devices/carbonvideorenderer.cc |
index a1ff6306201c6b7435837450e332d17dac95468f..336ca091905f22891411357165ee2422f020f618 100644 |
--- a/webrtc/media/devices/carbonvideorenderer.cc |
+++ b/webrtc/media/devices/carbonvideorenderer.cc |
@@ -12,6 +12,7 @@ |
#include "webrtc/media/devices/carbonvideorenderer.h" |
+#include "libyuv/convert_from.h" |
#include "webrtc/base/logging.h" |
#include "webrtc/media/base/videocommon.h" |
#include "webrtc/media/base/videoframe.h" |
@@ -114,11 +115,13 @@ void CarbonVideoRenderer::OnFrame(const VideoFrame& video_frame) { |
// Grab the image lock so we are not trashing up the image being drawn. |
rtc::CritScope cs(&image_crit_); |
- frame->ConvertToRgbBuffer(cricket::FOURCC_ABGR, |
- image_.get(), |
- static_cast<size_t>(frame->width()) * |
- frame->height() * 4, |
- frame->width() * 4); |
+ rtc::scoped_refptr<webrtc::VideoFrameBuffer> buffer( |
+ video_frame->video_frame_buffer()); |
+ libyuv::I420ToABGR(buffer->DataY(), buffer->StrideY(), |
+ buffer->DataU(), buffer->StrideU(), |
+ buffer->DataV(), buffer->StrideV(), |
+ image_.get(), frame->width() * 4, |
+ buffer->width(), buffer->height()); |
} |
// Trigger a repaint event for the whole window. |