| Index: webrtc/media/base/fakevideocapturer.h
 | 
| diff --git a/webrtc/media/base/fakevideocapturer.h b/webrtc/media/base/fakevideocapturer.h
 | 
| index 8ba56f1e6f1971ee1e27aefcd823316598ff818d..0f2d8edc30a9d252bb5430b1e862a47c4e1e252f 100644
 | 
| --- a/webrtc/media/base/fakevideocapturer.h
 | 
| +++ b/webrtc/media/base/fakevideocapturer.h
 | 
| @@ -20,9 +20,6 @@
 | 
|  #include "webrtc/media/base/videocapturer.h"
 | 
|  #include "webrtc/media/base/videocommon.h"
 | 
|  #include "webrtc/media/base/videoframe.h"
 | 
| -#ifdef HAVE_WEBRTC_VIDEO
 | 
| -#include "webrtc/media/engine/webrtcvideoframefactory.h"
 | 
| -#endif
 | 
|  
 | 
|  namespace cricket {
 | 
|  
 | 
| @@ -35,9 +32,6 @@ class FakeVideoCapturer : public cricket::VideoCapturer {
 | 
|          next_timestamp_(rtc::kNumNanosecsPerMillisec),
 | 
|          is_screencast_(is_screencast),
 | 
|          rotation_(webrtc::kVideoRotation_0) {
 | 
| -#ifdef HAVE_WEBRTC_VIDEO
 | 
| -    set_frame_factory(new cricket::WebRtcVideoFrameFactory());
 | 
| -#endif
 | 
|      // Default supported formats. Use ResetSupportedFormats to over write.
 | 
|      std::vector<cricket::VideoFormat> formats;
 | 
|      formats.push_back(cricket::VideoFormat(1280, 720,
 | 
| @@ -81,46 +75,37 @@ class FakeVideoCapturer : public cricket::VideoCapturer {
 | 
|      if (!running_) {
 | 
|        return false;
 | 
|      }
 | 
| -    // Currently, |fourcc| is always I420 or ARGB.
 | 
| -    uint32_t size = 0u;
 | 
| -    if (fourcc == cricket::FOURCC_ARGB) {
 | 
| -      size = width * 4 * height;
 | 
| -    } else if (fourcc == cricket::FOURCC_I420) {
 | 
| -      size = width * height + 2 * ((width + 1) / 2) * ((height + 1) / 2);
 | 
| -    } else {
 | 
| -      return false;  // Unsupported FOURCC.
 | 
| +    RTC_CHECK(fourcc == FOURCC_I420);
 | 
| +    RTC_CHECK(width > 0);
 | 
| +    RTC_CHECK(height > 0);
 | 
| +
 | 
| +    int adapted_width;
 | 
| +    int adapted_height;
 | 
| +    int crop_width;
 | 
| +    int crop_height;
 | 
| +    int crop_x;
 | 
| +    int crop_y;
 | 
| +
 | 
| +    // TODO(nisse): It's a bit silly to have this logic in a fake
 | 
| +    // class. Child classes of VideoCapturer are expected to call
 | 
| +    // AdaptFrame, and the test case
 | 
| +    // VideoCapturerTest.SinkWantsMaxPixelAndMaxPixelCountStepUp
 | 
| +    // depends on this.
 | 
| +    if (AdaptFrame(width, height, 0, 0, &adapted_width, &adapted_height,
 | 
| +                   &crop_width, &crop_height, &crop_x, &crop_y, nullptr)) {
 | 
| +      rtc::scoped_refptr<webrtc::I420Buffer> buffer(
 | 
| +          webrtc::I420Buffer::Create(adapted_width, adapted_height));
 | 
| +      buffer->InitializeData();
 | 
| +
 | 
| +      OnFrame(WebRtcVideoFrame(buffer, rotation_,
 | 
| +                               next_timestamp_ / rtc::kNumNanosecsPerMicrosec),
 | 
| +              width, height);
 | 
|      }
 | 
| -    if (size == 0u) {
 | 
| -      return false;  // Width and/or Height were zero.
 | 
| -    }
 | 
| -
 | 
| -    cricket::CapturedFrame frame;
 | 
| -    frame.width = width;
 | 
| -    frame.height = height;
 | 
| -    frame.fourcc = fourcc;
 | 
| -    frame.data_size = size;
 | 
| -    frame.time_stamp = initial_timestamp_ + next_timestamp_;
 | 
|      next_timestamp_ += timestamp_interval;
 | 
|  
 | 
| -    std::unique_ptr<char[]> data(new char[size]);
 | 
| -    frame.data = data.get();
 | 
| -    // Copy something non-zero into the buffer so Validate wont complain that
 | 
| -    // the frame is all duplicate.
 | 
| -    memset(frame.data, 1, size / 2);
 | 
| -    memset(reinterpret_cast<uint8_t*>(frame.data) + (size / 2), 2,
 | 
| -           size - (size / 2));
 | 
| -    memcpy(frame.data, reinterpret_cast<const uint8_t*>(&fourcc), 4);
 | 
| -    frame.rotation = rotation_;
 | 
| -    // TODO(zhurunz): SignalFrameCaptured carry returned value to be able to
 | 
| -    // capture results from downstream.
 | 
| -    SignalFrameCaptured(this, &frame);
 | 
|      return true;
 | 
|    }
 | 
|  
 | 
| -  void SignalCapturedFrame(cricket::CapturedFrame* frame) {
 | 
| -    SignalFrameCaptured(this, frame);
 | 
| -  }
 | 
| -
 | 
|    sigslot::signal1<FakeVideoCapturer*> SignalDestroyed;
 | 
|  
 | 
|    cricket::CaptureState Start(const cricket::VideoFormat& format) override {
 | 
| 
 |