Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1897)

Side by Side Diff: webrtc/sdk/objc/Framework/Classes/RTCVideoRendererAdapter.mm

Issue 2088953002: Add cricket::VideoFrame::frame_id() and set it to RTP timestamp. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: . Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright 2015 The WebRTC project authors. All Rights Reserved. 2 * Copyright 2015 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 18 matching lines...) Expand all
29 void OnFrame(const cricket::VideoFrame& nativeVideoFrame) override { 29 void OnFrame(const cricket::VideoFrame& nativeVideoFrame) override {
30 RTCVideoFrame *videoFrame = nil; 30 RTCVideoFrame *videoFrame = nil;
31 // Rotation of native handles is unsupported right now. Convert to CPU 31 // Rotation of native handles is unsupported right now. Convert to CPU
32 // I420 buffer for rotation before calling the rotation method otherwise 32 // I420 buffer for rotation before calling the rotation method otherwise
33 // it will hit a DCHECK. 33 // it will hit a DCHECK.
34 if (nativeVideoFrame.rotation() != webrtc::kVideoRotation_0 && 34 if (nativeVideoFrame.rotation() != webrtc::kVideoRotation_0 &&
35 nativeVideoFrame.video_frame_buffer()->native_handle()) { 35 nativeVideoFrame.video_frame_buffer()->native_handle()) {
36 rtc::scoped_refptr<webrtc::VideoFrameBuffer> i420Buffer = 36 rtc::scoped_refptr<webrtc::VideoFrameBuffer> i420Buffer =
37 nativeVideoFrame.video_frame_buffer()->NativeToI420Buffer(); 37 nativeVideoFrame.video_frame_buffer()->NativeToI420Buffer();
38 std::unique_ptr<cricket::VideoFrame> cpuFrame( 38 std::unique_ptr<cricket::VideoFrame> cpuFrame(
39 new cricket::WebRtcVideoFrame(i420Buffer, 39 new cricket::WebRtcVideoFrame(i420Buffer, nativeVideoFrame.rotation(),
40 nativeVideoFrame.rotation(), 40 nativeVideoFrame.timestamp_us(),
41 nativeVideoFrame.timestamp_us())); 41 nativeVideoFrame.transport_frame_id()));
42 const cricket::VideoFrame *rotatedFrame = 42 const cricket::VideoFrame *rotatedFrame =
43 cpuFrame->GetCopyWithRotationApplied(); 43 cpuFrame->GetCopyWithRotationApplied();
44 videoFrame = [[RTCVideoFrame alloc] initWithNativeFrame:rotatedFrame]; 44 videoFrame = [[RTCVideoFrame alloc] initWithNativeFrame:rotatedFrame];
45 } else { 45 } else {
46 const cricket::VideoFrame *rotatedFrame = 46 const cricket::VideoFrame *rotatedFrame =
47 nativeVideoFrame.GetCopyWithRotationApplied(); 47 nativeVideoFrame.GetCopyWithRotationApplied();
48 videoFrame = [[RTCVideoFrame alloc] initWithNativeFrame:rotatedFrame]; 48 videoFrame = [[RTCVideoFrame alloc] initWithNativeFrame:rotatedFrame];
49 } 49 }
50 CGSize current_size = CGSizeMake(videoFrame.width, videoFrame.height); 50 CGSize current_size = CGSizeMake(videoFrame.width, videoFrame.height);
51 if (!CGSizeEqualToSize(size_, current_size)) { 51 if (!CGSizeEqualToSize(size_, current_size)) {
(...skipping 22 matching lines...) Expand all
74 _adapter.reset(new webrtc::VideoRendererAdapter(self)); 74 _adapter.reset(new webrtc::VideoRendererAdapter(self));
75 } 75 }
76 return self; 76 return self;
77 } 77 }
78 78
79 - (rtc::VideoSinkInterface<cricket::VideoFrame> *)nativeVideoRenderer { 79 - (rtc::VideoSinkInterface<cricket::VideoFrame> *)nativeVideoRenderer {
80 return _adapter.get(); 80 return _adapter.get();
81 } 81 }
82 82
83 @end 83 @end
OLDNEW
« no previous file with comments | « webrtc/media/engine/webrtcvideoframe.cc ('k') | webrtc/sdk/objc/Framework/Classes/avfoundationvideocapturer.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698