OLD | NEW |
1 /* | 1 /* |
2 * libjingle | 2 * libjingle |
3 * Copyright 2015 Google Inc. | 3 * Copyright 2015 Google Inc. |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions are met: | 6 * modification, are permitted provided that the following conditions are met: |
7 * | 7 * |
8 * 1. Redistributions of source code must retain the above copyright notice, | 8 * 1. Redistributions of source code must retain the above copyright notice, |
9 * this list of conditions and the following disclaimer. | 9 * this list of conditions and the following disclaimer. |
10 * 2. Redistributions in binary form must reproduce the above copyright notice, | 10 * 2. Redistributions in binary form must reproduce the above copyright notice, |
11 * this list of conditions and the following disclaimer in the documentation | 11 * this list of conditions and the following disclaimer in the documentation |
12 * and/or other materials provided with the distribution. | 12 * and/or other materials provided with the distribution. |
13 * 3. The name of the author may not be used to endorse or promote products | 13 * 3. The name of the author may not be used to endorse or promote products |
14 * derived from this software without specific prior written permission. | 14 * derived from this software without specific prior written permission. |
15 * | 15 * |
16 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED | 16 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED |
17 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | 17 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
18 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO | 18 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO |
19 * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | 19 * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
20 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, | 20 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
21 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; | 21 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; |
22 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, | 22 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, |
23 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR | 23 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR |
24 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF | 24 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF |
25 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 25 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 */ | 26 */ |
27 #include "talk/app/webrtc/androidvideocapturer.h" | 27 #include "talk/app/webrtc/androidvideocapturer.h" |
28 | 28 |
29 #include "talk/app/webrtc/java/jni/native_handle_impl.h" | 29 #include "talk/app/webrtc/java/jni/native_handle_impl.h" |
30 #include "talk/media/webrtc/webrtcvideoframe.h" | |
31 #include "webrtc/base/common.h" | 30 #include "webrtc/base/common.h" |
32 #include "webrtc/base/json.h" | 31 #include "webrtc/base/json.h" |
33 #include "webrtc/base/timeutils.h" | 32 #include "webrtc/base/timeutils.h" |
| 33 #include "webrtc/media/webrtc/webrtcvideoframe.h" |
34 | 34 |
35 namespace webrtc { | 35 namespace webrtc { |
36 | 36 |
37 // A hack for avoiding deep frame copies in | 37 // A hack for avoiding deep frame copies in |
38 // cricket::VideoCapturer.SignalFrameCaptured() using a custom FrameFactory. | 38 // cricket::VideoCapturer.SignalFrameCaptured() using a custom FrameFactory. |
39 // A frame is injected using UpdateCapturedFrame(), and converted into a | 39 // A frame is injected using UpdateCapturedFrame(), and converted into a |
40 // cricket::VideoFrame with CreateAliasedFrame(). UpdateCapturedFrame() should | 40 // cricket::VideoFrame with CreateAliasedFrame(). UpdateCapturedFrame() should |
41 // be called before CreateAliasedFrame() for every frame. | 41 // be called before CreateAliasedFrame() for every frame. |
42 // TODO(magjed): Add an interface cricket::VideoCapturer::OnFrameCaptured() | 42 // TODO(magjed): Add an interface cricket::VideoCapturer::OnFrameCaptured() |
43 // for ref counted I420 frames instead of this hack. | 43 // for ref counted I420 frames instead of this hack. |
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
241 | 241 |
242 bool AndroidVideoCapturer::GetBestCaptureFormat( | 242 bool AndroidVideoCapturer::GetBestCaptureFormat( |
243 const cricket::VideoFormat& desired, | 243 const cricket::VideoFormat& desired, |
244 cricket::VideoFormat* best_format) { | 244 cricket::VideoFormat* best_format) { |
245 // Delegate this choice to VideoCapturerAndroid.startCapture(). | 245 // Delegate this choice to VideoCapturerAndroid.startCapture(). |
246 *best_format = desired; | 246 *best_format = desired; |
247 return true; | 247 return true; |
248 } | 248 } |
249 | 249 |
250 } // namespace webrtc | 250 } // namespace webrtc |
OLD | NEW |