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

Side by Side Diff: content/renderer/media/webrtc/media_stream_remote_video_source.cc

Issue 2466353003: Replace all use of cricket::VideoFrame and cricket::WebRtcVideoFrame with webrtc::VideoFrame. (Closed)
Patch Set: Drop unneeded include. Created 4 years, 1 month 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 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/media/webrtc/media_stream_remote_video_source.h" 5 #include "content/renderer/media/webrtc/media_stream_remote_video_source.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
11 #include "base/callback_helpers.h" 11 #include "base/callback_helpers.h"
12 #include "base/location.h" 12 #include "base/location.h"
13 #include "base/trace_event/trace_event.h" 13 #include "base/trace_event/trace_event.h"
14 #include "content/renderer/media/webrtc/track_observer.h" 14 #include "content/renderer/media/webrtc/track_observer.h"
15 #include "media/base/bind_to_current_loop.h" 15 #include "media/base/bind_to_current_loop.h"
16 #include "media/base/timestamp_constants.h" 16 #include "media/base/timestamp_constants.h"
17 #include "media/base/video_frame.h" 17 #include "media/base/video_frame.h"
18 #include "media/base/video_util.h" 18 #include "media/base/video_util.h"
19 #include "third_party/webrtc/media/base/videoframe.h"
20 #include "third_party/webrtc/media/base/videosinkinterface.h" 19 #include "third_party/webrtc/media/base/videosinkinterface.h"
21 20
22 namespace content { 21 namespace content {
23 22
24 namespace { 23 namespace {
25 24
26 media::VideoRotation WebRTCToMediaVideoRotation( 25 media::VideoRotation WebRTCToMediaVideoRotation(
27 webrtc::VideoRotation rotation) { 26 webrtc::VideoRotation rotation) {
28 switch (rotation) { 27 switch (rotation) {
29 case webrtc::kVideoRotation_0: 28 case webrtc::kVideoRotation_0:
30 return media::VIDEO_ROTATION_0; 29 return media::VIDEO_ROTATION_0;
31 case webrtc::kVideoRotation_90: 30 case webrtc::kVideoRotation_90:
32 return media::VIDEO_ROTATION_90; 31 return media::VIDEO_ROTATION_90;
33 case webrtc::kVideoRotation_180: 32 case webrtc::kVideoRotation_180:
34 return media::VIDEO_ROTATION_180; 33 return media::VIDEO_ROTATION_180;
35 case webrtc::kVideoRotation_270: 34 case webrtc::kVideoRotation_270:
36 return media::VIDEO_ROTATION_270; 35 return media::VIDEO_ROTATION_270;
37 } 36 }
38 return media::VIDEO_ROTATION_0; 37 return media::VIDEO_ROTATION_0;
39 } 38 }
40 39
41 } // anonymous namespace 40 } // anonymous namespace
42 41
43 // Internal class used for receiving frames from the webrtc track on a 42 // Internal class used for receiving frames from the webrtc track on a
44 // libjingle thread and forward it to the IO-thread. 43 // libjingle thread and forward it to the IO-thread.
45 class MediaStreamRemoteVideoSource::RemoteVideoSourceDelegate 44 class MediaStreamRemoteVideoSource::RemoteVideoSourceDelegate
46 : public base::RefCountedThreadSafe<RemoteVideoSourceDelegate>, 45 : public base::RefCountedThreadSafe<RemoteVideoSourceDelegate>,
47 public rtc::VideoSinkInterface<cricket::VideoFrame> { 46 public rtc::VideoSinkInterface<webrtc::VideoFrame> {
48 public: 47 public:
49 RemoteVideoSourceDelegate( 48 RemoteVideoSourceDelegate(
50 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner, 49 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner,
51 const VideoCaptureDeliverFrameCB& new_frame_callback); 50 const VideoCaptureDeliverFrameCB& new_frame_callback);
52 51
53 protected: 52 protected:
54 friend class base::RefCountedThreadSafe<RemoteVideoSourceDelegate>; 53 friend class base::RefCountedThreadSafe<RemoteVideoSourceDelegate>;
55 ~RemoteVideoSourceDelegate() override; 54 ~RemoteVideoSourceDelegate() override;
56 55
57 // Implements rtc::VideoSinkInterface used for receiving video frames 56 // Implements rtc::VideoSinkInterface used for receiving video frames
58 // from the PeerConnection video track. May be called on a libjingle internal 57 // from the PeerConnection video track. May be called on a libjingle internal
59 // thread. 58 // thread.
60 void OnFrame(const cricket::VideoFrame& frame) override; 59 void OnFrame(const webrtc::VideoFrame& frame) override;
61 60
62 void DoRenderFrameOnIOThread( 61 void DoRenderFrameOnIOThread(
63 const scoped_refptr<media::VideoFrame>& video_frame); 62 const scoped_refptr<media::VideoFrame>& video_frame);
64 63
65 private: 64 private:
66 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner_; 65 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner_;
67 66
68 // |frame_callback_| is accessed on the IO thread. 67 // |frame_callback_| is accessed on the IO thread.
69 VideoCaptureDeliverFrameCB frame_callback_; 68 VideoCaptureDeliverFrameCB frame_callback_;
70 69
(...skipping 18 matching lines...) Expand all
89 88
90 MediaStreamRemoteVideoSource:: 89 MediaStreamRemoteVideoSource::
91 RemoteVideoSourceDelegate::~RemoteVideoSourceDelegate() { 90 RemoteVideoSourceDelegate::~RemoteVideoSourceDelegate() {
92 } 91 }
93 92
94 namespace { 93 namespace {
95 void DoNothing(const scoped_refptr<rtc::RefCountInterface>& ref) {} 94 void DoNothing(const scoped_refptr<rtc::RefCountInterface>& ref) {}
96 } // anonymous 95 } // anonymous
97 96
98 void MediaStreamRemoteVideoSource::RemoteVideoSourceDelegate::OnFrame( 97 void MediaStreamRemoteVideoSource::RemoteVideoSourceDelegate::OnFrame(
99 const cricket::VideoFrame& incoming_frame) { 98 const webrtc::VideoFrame& incoming_frame) {
100 const base::TimeDelta incoming_timestamp = base::TimeDelta::FromMicroseconds( 99 const base::TimeDelta incoming_timestamp = base::TimeDelta::FromMicroseconds(
101 incoming_frame.timestamp_us()); 100 incoming_frame.timestamp_us());
102 const base::TimeTicks render_time = 101 const base::TimeTicks render_time =
103 base::TimeTicks() + incoming_timestamp + time_diff_; 102 base::TimeTicks() + incoming_timestamp + time_diff_;
104 103
105 TRACE_EVENT1("webrtc", "RemoteVideoSourceDelegate::RenderFrame", 104 TRACE_EVENT1("webrtc", "RemoteVideoSourceDelegate::RenderFrame",
106 "Ideal Render Instant", render_time.ToInternalValue()); 105 "Ideal Render Instant", render_time.ToInternalValue());
107 106
108 CHECK_NE(media::kNoTimestamp, incoming_timestamp); 107 CHECK_NE(media::kNoTimestamp, incoming_timestamp);
109 if (start_timestamp_ == media::kNoTimestamp) 108 if (start_timestamp_ == media::kNoTimestamp)
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
219 if (!observer_) 218 if (!observer_)
220 return; 219 return;
221 DCHECK(state() != MediaStreamVideoSource::ENDED); 220 DCHECK(state() != MediaStreamVideoSource::ENDED);
222 scoped_refptr<webrtc::VideoTrackInterface> video_track( 221 scoped_refptr<webrtc::VideoTrackInterface> video_track(
223 static_cast<webrtc::VideoTrackInterface*>(observer_->track().get())); 222 static_cast<webrtc::VideoTrackInterface*>(observer_->track().get()));
224 video_track->RemoveSink(delegate_.get()); 223 video_track->RemoveSink(delegate_.get());
225 // This removes the references to the webrtc video track. 224 // This removes the references to the webrtc video track.
226 observer_.reset(); 225 observer_.reset();
227 } 226 }
228 227
229 rtc::VideoSinkInterface<cricket::VideoFrame>* 228 rtc::VideoSinkInterface<webrtc::VideoFrame>*
230 MediaStreamRemoteVideoSource::SinkInterfaceForTest() { 229 MediaStreamRemoteVideoSource::SinkInterfaceForTest() {
231 return delegate_.get(); 230 return delegate_.get();
232 } 231 }
233 232
234 void MediaStreamRemoteVideoSource::OnChanged( 233 void MediaStreamRemoteVideoSource::OnChanged(
235 webrtc::MediaStreamTrackInterface::TrackState state) { 234 webrtc::MediaStreamTrackInterface::TrackState state) {
236 DCHECK(CalledOnValidThread()); 235 DCHECK(CalledOnValidThread());
237 switch (state) { 236 switch (state) {
238 case webrtc::MediaStreamTrackInterface::kLive: 237 case webrtc::MediaStreamTrackInterface::kLive:
239 SetReadyState(blink::WebMediaStreamSource::ReadyStateLive); 238 SetReadyState(blink::WebMediaStreamSource::ReadyStateLive);
240 break; 239 break;
241 case webrtc::MediaStreamTrackInterface::kEnded: 240 case webrtc::MediaStreamTrackInterface::kEnded:
242 SetReadyState(blink::WebMediaStreamSource::ReadyStateEnded); 241 SetReadyState(blink::WebMediaStreamSource::ReadyStateEnded);
243 break; 242 break;
244 default: 243 default:
245 NOTREACHED(); 244 NOTREACHED();
246 break; 245 break;
247 } 246 }
248 } 247 }
249 248
250 } // namespace content 249 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698