| Index: webrtc/media/base/videoframefactory.h
 | 
| diff --git a/webrtc/media/base/videoframefactory.h b/webrtc/media/base/videoframefactory.h
 | 
| index 6aa2ce51733b0c01ea8d5187ace63865a2d32571..eae40af71c06c56bbe2bd4fa787ad412c64c9d39 100644
 | 
| --- a/webrtc/media/base/videoframefactory.h
 | 
| +++ b/webrtc/media/base/videoframefactory.h
 | 
| @@ -27,6 +27,21 @@ class VideoFrameFactory {
 | 
|    VideoFrameFactory() : apply_rotation_(false) {}
 | 
|    virtual ~VideoFrameFactory() {}
 | 
|  
 | 
| +  // Convert a CapturedFrame to a VideoFrame. |width| and |height|
 | 
| +  // give the desired size, and the factory is expected to first crop
 | 
| +  // the frame to get a matching aspect ratio, and then scale it to
 | 
| +  // the right size. The size refers the the image before application
 | 
| +  // of |input_frame->rotation|. Subclasses usually only need to
 | 
| +  // override CreateCroppedAndScaledFrame, see below.
 | 
| +  virtual std::unique_ptr<VideoFrame> CreateScaledFrame(
 | 
| +      const CapturedFrame* input_frame,
 | 
| +      int width,
 | 
| +      int height) const;
 | 
| +
 | 
| +  // The CreateAliasedFrame methods are deprecated, because we don't
 | 
| +  // want raw pointer return types. TODO(nisse): Delete when all users
 | 
| +  // are updated.
 | 
| +
 | 
|    // The returned frame aliases the aliased_frame if the input color
 | 
|    // space allows for aliasing, otherwise a color conversion will
 | 
|    // occur. Returns NULL if conversion fails.
 | 
| @@ -35,8 +50,11 @@ class VideoFrameFactory {
 | 
|    // size |cropped_width| x |cropped_height|.
 | 
|    virtual VideoFrame* CreateAliasedFrame(const CapturedFrame* input_frame,
 | 
|                                           int cropped_width,
 | 
| -                                         int cropped_height) const = 0;
 | 
| -
 | 
| +                                         int cropped_height) const {
 | 
| +    // Dummy default implementation, to make it easier to delete in
 | 
| +    // subclasses.
 | 
| +    return nullptr;
 | 
| +  }
 | 
|    // The returned frame will be a center crop of |input_frame| with size
 | 
|    // |cropped_width| x |cropped_height|, scaled to |output_width| x
 | 
|    // |output_height|.
 | 
| @@ -49,6 +67,20 @@ class VideoFrameFactory {
 | 
|    void SetApplyRotation(bool enable) { apply_rotation_ = enable; }
 | 
|  
 | 
|   protected:
 | 
| +  // Similar to CreateScaledFrame, but gets cropping parameters as
 | 
| +  // inputs, and relies on the caller to choose them so that aspect
 | 
| +  // ratio is preserved. Extracts a rectangle of size |crop_width| x
 | 
| +  // |crop_height| in the input frame, with lower left corner at
 | 
| +  // |crop_x|, |crop_y|.
 | 
| +  virtual std::unique_ptr<VideoFrame> CreateCroppedAndScaledFrame(
 | 
| +      const CapturedFrame* input_frame,
 | 
| +      int crop_x,
 | 
| +      int crop_y,
 | 
| +      int crop_width,
 | 
| +      int crop_height,
 | 
| +      int dst_width,
 | 
| +      int dst_height) const;
 | 
| +
 | 
|    bool apply_rotation_;
 | 
|  
 | 
|   private:
 | 
| 
 |