Chromium Code Reviews| OLD | NEW | 
|---|---|
| 1 /* | 1 /* | 
| 2 * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. | 
| 3 * | 3 * | 
| 4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license | 
| 5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source | 
| 6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found | 
| 7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may | 
| 8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. | 
| 9 */ | 9 */ | 
| 10 | 10 | 
| (...skipping 21 matching lines...) Expand all Loading... | |
| 32 return cropped_input_frame.release(); | 32 return cropped_input_frame.release(); | 
| 33 } | 33 } | 
| 34 | 34 | 
| 35 // If the frame is rotated, we need to switch the width and height. | 35 // If the frame is rotated, we need to switch the width and height. | 
| 36 if (apply_rotation_ && | 36 if (apply_rotation_ && | 
| 37 (input_frame->rotation == webrtc::kVideoRotation_90 || | 37 (input_frame->rotation == webrtc::kVideoRotation_90 || | 
| 38 input_frame->rotation == webrtc::kVideoRotation_270)) { | 38 input_frame->rotation == webrtc::kVideoRotation_270)) { | 
| 39 std::swap(output_width, output_height); | 39 std::swap(output_width, output_height); | 
| 40 } | 40 } | 
| 41 | 41 | 
| 42 // Create and stretch the output frame if it has not been created yet, is | 42 std::unique_ptr<VideoFrame> output_frame( | 
| 43 // still in use by others, or its size is not same as the expected. | 43 cropped_input_frame->CreateWithBuffer( | 
| 44 if (!output_frame_ || !output_frame_->IsExclusive() || | 44 pool_.CreateBuffer(output_width, output_height), | 
| 45 output_frame_->width() != output_width || | 45 cropped_input_frame->rotation(), | 
| 46 output_frame_->height() != output_height) { | 46 cropped_input_frame->timestamp_us())); | 
| 47 output_frame_.reset( | 47 | 
| 48 cropped_input_frame->Stretch(output_width, output_height, true, true)); | 48 cropped_input_frame->StretchToFrame(output_frame.get(), true, true); | 
| 49 if (!output_frame_) { | 49 return output_frame.release(); | 
| 
 
tommi
2016/05/25 12:14:25
could we change the return value of CreateAliasedF
 
nisse-webrtc
2016/05/25 12:38:02
Not easily. There's still a VideoFrameFactory subc
 
 | |
| 50 LOG(LS_WARNING) << "Failed to stretch frame to " << output_width << "x" | |
| 51 << output_height; | |
| 52 return NULL; | |
| 53 } | |
| 54 } else { | |
| 55 cropped_input_frame->StretchToFrame(output_frame_.get(), true, true); | |
| 56 output_frame_->SetTimeStamp(cropped_input_frame->GetTimeStamp()); | |
| 57 } | |
| 58 return output_frame_->Copy(); | |
| 59 } | 50 } | 
| 60 | 51 | 
| 61 } // namespace cricket | 52 } // namespace cricket | 
| OLD | NEW |