| OLD | NEW |
| 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 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 174 | 174 |
| 175 rtc::scoped_refptr<webrtc::VideoFrameBuffer> buffer = | 175 rtc::scoped_refptr<webrtc::VideoFrameBuffer> buffer = |
| 176 buffer_pool_.CreateBuffer(width, height); | 176 buffer_pool_.CreateBuffer(width, height); |
| 177 libyuv::NV21ToI420( | 177 libyuv::NV21ToI420( |
| 178 y_plane, width, | 178 y_plane, width, |
| 179 vu_plane, width, | 179 vu_plane, width, |
| 180 buffer->MutableData(webrtc::kYPlane), buffer->stride(webrtc::kYPlane), | 180 buffer->MutableData(webrtc::kYPlane), buffer->stride(webrtc::kYPlane), |
| 181 buffer->MutableData(webrtc::kUPlane), buffer->stride(webrtc::kUPlane), | 181 buffer->MutableData(webrtc::kUPlane), buffer->stride(webrtc::kUPlane), |
| 182 buffer->MutableData(webrtc::kVPlane), buffer->stride(webrtc::kVPlane), | 182 buffer->MutableData(webrtc::kVPlane), buffer->stride(webrtc::kVPlane), |
| 183 width, height); | 183 width, height); |
| 184 AsyncCapturerInvoke("OnIncomingFrame", | 184 |
| 185 &webrtc::AndroidVideoCapturer::OnIncomingFrame, | 185 rtc::CritScope cs(&capturer_lock_); |
| 186 buffer, rotation, timestamp_ns); | 186 if (!capturer_) { |
| 187 LOG(LS_WARNING) << "OnMemoryBufferFrame() called for closed capturer."; |
| 188 return; |
| 189 } |
| 190 capturer_->OnIncomingFrame(buffer, rotation, timestamp_ns); |
| 187 } | 191 } |
| 188 | 192 |
| 189 void AndroidVideoCapturerJni::OnTextureFrame(int width, | 193 void AndroidVideoCapturerJni::OnTextureFrame(int width, |
| 190 int height, | 194 int height, |
| 191 int rotation, | 195 int rotation, |
| 192 int64_t timestamp_ns, | 196 int64_t timestamp_ns, |
| 193 const NativeHandleImpl& handle) { | 197 const NativeHandleImpl& handle) { |
| 194 rtc::scoped_refptr<webrtc::VideoFrameBuffer> buffer( | 198 rtc::scoped_refptr<webrtc::VideoFrameBuffer> buffer( |
| 195 surface_texture_helper_->CreateTextureFrame(width, height, handle)); | 199 surface_texture_helper_->CreateTextureFrame(width, height, handle)); |
| 196 | 200 |
| 197 AsyncCapturerInvoke("OnIncomingFrame", | 201 rtc::CritScope cs(&capturer_lock_); |
| 198 &webrtc::AndroidVideoCapturer::OnIncomingFrame, | 202 if (!capturer_) { |
| 199 buffer, rotation, timestamp_ns); | 203 LOG(LS_WARNING) << "OnTextureFrame() called for closed capturer."; |
| 204 return; |
| 205 } |
| 206 capturer_->OnIncomingFrame(buffer, rotation, timestamp_ns); |
| 200 } | 207 } |
| 201 | 208 |
| 202 void AndroidVideoCapturerJni::OnOutputFormatRequest(int width, | 209 void AndroidVideoCapturerJni::OnOutputFormatRequest(int width, |
| 203 int height, | 210 int height, |
| 204 int fps) { | 211 int fps) { |
| 205 AsyncCapturerInvoke("OnOutputFormatRequest", | 212 AsyncCapturerInvoke("OnOutputFormatRequest", |
| 206 &webrtc::AndroidVideoCapturer::OnOutputFormatRequest, | 213 &webrtc::AndroidVideoCapturer::OnOutputFormatRequest, |
| 207 width, height, fps); | 214 width, height, fps); |
| 208 } | 215 } |
| 209 | 216 |
| (...skipping 29 matching lines...) Expand all Loading... |
| 239 | 246 |
| 240 JOW(void, VideoCapturer_00024NativeObserver_nativeOnOutputFormatRequest) | 247 JOW(void, VideoCapturer_00024NativeObserver_nativeOnOutputFormatRequest) |
| 241 (JNIEnv* jni, jclass, jlong j_capturer, jint j_width, jint j_height, | 248 (JNIEnv* jni, jclass, jlong j_capturer, jint j_width, jint j_height, |
| 242 jint j_fps) { | 249 jint j_fps) { |
| 243 LOG(LS_INFO) << "NativeObserver_nativeOnOutputFormatRequest"; | 250 LOG(LS_INFO) << "NativeObserver_nativeOnOutputFormatRequest"; |
| 244 reinterpret_cast<AndroidVideoCapturerJni*>(j_capturer)->OnOutputFormatRequest( | 251 reinterpret_cast<AndroidVideoCapturerJni*>(j_capturer)->OnOutputFormatRequest( |
| 245 j_width, j_height, j_fps); | 252 j_width, j_height, j_fps); |
| 246 } | 253 } |
| 247 | 254 |
| 248 } // namespace webrtc_jni | 255 } // namespace webrtc_jni |
| OLD | NEW |