| Index: webrtc/sdk/objc/Framework/Classes/RTCVideoRendererAdapter.mm
|
| diff --git a/webrtc/sdk/objc/Framework/Classes/RTCVideoRendererAdapter.mm b/webrtc/sdk/objc/Framework/Classes/RTCVideoRendererAdapter.mm
|
| index a130d0e7bf43d6054a184e85d1b6f2bfd59f2ad7..73682d3eafe57ed935bfdf7799eb3d63cca48441 100644
|
| --- a/webrtc/sdk/objc/Framework/Classes/RTCVideoRendererAdapter.mm
|
| +++ b/webrtc/sdk/objc/Framework/Classes/RTCVideoRendererAdapter.mm
|
| @@ -27,27 +27,14 @@ class VideoRendererAdapter
|
| }
|
|
|
| void OnFrame(const cricket::VideoFrame& nativeVideoFrame) override {
|
| - RTCVideoFrame *videoFrame = nil;
|
| - // Rotation of native handles is unsupported right now. Convert to CPU
|
| - // I420 buffer for rotation before calling the rotation method otherwise
|
| - // it will hit a DCHECK.
|
| - if (nativeVideoFrame.rotation() != webrtc::kVideoRotation_0 &&
|
| - nativeVideoFrame.video_frame_buffer()->native_handle()) {
|
| - rtc::scoped_refptr<webrtc::VideoFrameBuffer> i420Buffer =
|
| - nativeVideoFrame.video_frame_buffer()->NativeToI420Buffer();
|
| - std::unique_ptr<cricket::VideoFrame> cpuFrame(
|
| - new cricket::WebRtcVideoFrame(i420Buffer, nativeVideoFrame.rotation(),
|
| - nativeVideoFrame.timestamp_us(),
|
| - nativeVideoFrame.transport_frame_id()));
|
| - const cricket::VideoFrame *rotatedFrame =
|
| - cpuFrame->GetCopyWithRotationApplied();
|
| - videoFrame = [[RTCVideoFrame alloc] initWithNativeFrame:rotatedFrame];
|
| - } else {
|
| - const cricket::VideoFrame *rotatedFrame =
|
| - nativeVideoFrame.GetCopyWithRotationApplied();
|
| - videoFrame = [[RTCVideoFrame alloc] initWithNativeFrame:rotatedFrame];
|
| - }
|
| - CGSize current_size = CGSizeMake(videoFrame.width, videoFrame.height);
|
| + RTCVideoFrame* videoFrame = [[RTCVideoFrame alloc]
|
| + initWithVideoBuffer:nativeVideoFrame.video_frame_buffer()
|
| + rotation:nativeVideoFrame.rotation()
|
| + timeStampNs:nativeVideoFrame.GetTimeStamp()];
|
| + CGSize current_size = (videoFrame.rotation % 180 == 0)
|
| + ? CGSizeMake(videoFrame.width, videoFrame.height)
|
| + : CGSizeMake(videoFrame.height, videoFrame.width);
|
| +
|
| if (!CGSizeEqualToSize(size_, current_size)) {
|
| size_ = current_size;
|
| [adapter_.videoRenderer setSize:size_];
|
|
|