Index: webrtc/media/engine/webrtcvideoengine2.cc |
diff --git a/webrtc/media/engine/webrtcvideoengine2.cc b/webrtc/media/engine/webrtcvideoengine2.cc |
index fc87607d20a6d0259d4a69c8f64b0b0cf6313a1e..69917c338bfdd9ec834f675f8688035e482f5aae 100644 |
--- a/webrtc/media/engine/webrtcvideoengine2.cc |
+++ b/webrtc/media/engine/webrtcvideoengine2.cc |
@@ -1562,15 +1562,24 @@ static void CreateBlackFrame(webrtc::VideoFrame* video_frame, |
void WebRtcVideoChannel2::WebRtcVideoSendStream::OnFrame( |
const VideoFrame& frame) { |
TRACE_EVENT0("webrtc", "WebRtcVideoSendStream::OnFrame"); |
- webrtc::VideoFrame video_frame(frame.GetVideoFrameBuffer(), 0, 0, |
- frame.GetVideoRotation()); |
+ invoker_.AsyncInvoke<void>( |
pbos-webrtc
2016/04/08 14:08:56
I really don't want a thread hop here, I've CLs th
perkj_webrtc
2016/04/08 14:34:07
This can wait until then....
nisse-webrtc
2016/04/08 14:57:03
Agreed.
nisse-webrtc
2016/04/11 06:35:39
Can you cc me on that cl?
|
+ worker_thread_, |
+ rtc::Bind(&WebRtcVideoChannel2::WebRtcVideoSendStream::OnFrame_w, |
+ this, |
+ webrtc::VideoFrame(frame.GetVideoFrameBuffer(), 0, 0, |
+ frame.GetVideoRotation()), |
+ frame.GetTimeStamp() / rtc::kNumNanosecsPerMillisec)); |
+} |
+ |
+void WebRtcVideoChannel2::WebRtcVideoSendStream::OnFrame_w( |
+ webrtc::VideoFrame video_frame, int64_t frame_delta_ms) { |
+ RTC_DCHECK(worker_thread_->IsCurrent()); |
rtc::CritScope cs(&lock_); |
if (stream_ == NULL) { |
// Frame input before send codecs are configured, dropping frame. |
return; |
} |
- int64_t frame_delta_ms = frame.GetTimeStamp() / rtc::kNumNanosecsPerMillisec; |
// frame->GetTimeStamp() is essentially a delta, align to webrtc time |
if (first_frame_timestamp_ms_ == 0) { |
first_frame_timestamp_ms_ = rtc::Time() - frame_delta_ms; |