| OLD | NEW | 
|---|
| 1 /* | 1 /* | 
| 2  * libjingle | 2  *  Copyright 2012 The WebRTC Project Authors. All rights reserved. | 
| 3  * Copyright 2012 Google Inc. |  | 
| 4  * | 3  * | 
| 5  * Redistribution and use in source and binary forms, with or without | 4  *  Use of this source code is governed by a BSD-style license | 
| 6  * modification, are permitted provided that the following conditions are met: | 5  *  that can be found in the LICENSE file in the root of the source | 
| 7  * | 6  *  tree. An additional intellectual property rights grant can be found | 
| 8  *  1. Redistributions of source code must retain the above copyright notice, | 7  *  in the file PATENTS.  All contributing project authors may | 
| 9  *     this list of conditions and the following disclaimer. | 8  *  be found in the AUTHORS file in the root of the source tree. | 
| 10  *  2. Redistributions in binary form must reproduce the above copyright notice, |  | 
| 11  *     this list of conditions and the following disclaimer in the documentation |  | 
| 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 |  | 
| 14  *     derived from this software without specific prior written permission. |  | 
| 15  * |  | 
| 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 |  | 
| 18  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO |  | 
| 19  * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |  | 
| 20  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |  | 
| 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, |  | 
| 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 |  | 
| 25  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |  | 
| 26  */ | 9  */ | 
| 27 | 10 | 
| 28 // The CaptureManager class manages VideoCapturers to make it possible to share | 11 // The CaptureManager class manages VideoCapturers to make it possible to share | 
| 29 // the same VideoCapturers across multiple instances. E.g. if two instances of | 12 // the same VideoCapturers across multiple instances. E.g. if two instances of | 
| 30 // some class want to listen to same VideoCapturer they can't individually stop | 13 // some class want to listen to same VideoCapturer they can't individually stop | 
| 31 // and start capturing as doing so will affect the other instance. | 14 // and start capturing as doing so will affect the other instance. | 
| 32 // The class employs reference counting on starting and stopping of capturing of | 15 // The class employs reference counting on starting and stopping of capturing of | 
| 33 // frames such that if anyone is still listening it will not be stopped. The | 16 // frames such that if anyone is still listening it will not be stopped. The | 
| 34 // class also provides APIs for attaching VideoRenderers to a specific capturer | 17 // class also provides APIs for attaching VideoRenderers to a specific capturer | 
| 35 // such that the VideoRenderers are fed frames directly from the capturer. | 18 // such that the VideoRenderers are fed frames directly from the capturer. | 
| 36 // CaptureManager is Thread-unsafe. This means that none of its APIs may be | 19 // CaptureManager is Thread-unsafe. This means that none of its APIs may be | 
| 37 // called concurrently. Note that callbacks are called by the VideoCapturer's | 20 // called concurrently. Note that callbacks are called by the VideoCapturer's | 
| 38 // thread which is normally a separate unmarshalled thread and thus normally | 21 // thread which is normally a separate unmarshalled thread and thus normally | 
| 39 // require lock protection. | 22 // require lock protection. | 
| 40 | 23 | 
| 41 #ifndef TALK_MEDIA_BASE_CAPTUREMANAGER_H_ | 24 #ifndef WEBRTC_MEDIA_BASE_CAPTUREMANAGER_H_ | 
| 42 #define TALK_MEDIA_BASE_CAPTUREMANAGER_H_ | 25 #define WEBRTC_MEDIA_BASE_CAPTUREMANAGER_H_ | 
| 43 | 26 | 
| 44 #include <map> | 27 #include <map> | 
| 45 #include <vector> | 28 #include <vector> | 
| 46 | 29 | 
| 47 #include "talk/media/base/capturerenderadapter.h" |  | 
| 48 #include "talk/media/base/videocommon.h" |  | 
| 49 #include "webrtc/base/sigslotrepeater.h" | 30 #include "webrtc/base/sigslotrepeater.h" | 
| 50 #include "webrtc/base/thread_checker.h" | 31 #include "webrtc/base/thread_checker.h" | 
|  | 32 #include "webrtc/media/base/capturerenderadapter.h" | 
|  | 33 #include "webrtc/media/base/videocommon.h" | 
| 51 | 34 | 
| 52 namespace cricket { | 35 namespace cricket { | 
| 53 | 36 | 
| 54 class VideoCapturer; | 37 class VideoCapturer; | 
| 55 class VideoRenderer; | 38 class VideoRenderer; | 
| 56 class VideoCapturerState; | 39 class VideoCapturerState; | 
| 57 | 40 | 
| 58 class CaptureManager : public sigslot::has_slots<> { | 41 class CaptureManager : public sigslot::has_slots<> { | 
| 59  public: | 42  public: | 
| 60   enum RestartOptions { | 43   enum RestartOptions { | 
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 98 | 81 | 
| 99   VideoCapturerState* GetCaptureState(VideoCapturer* video_capturer) const; | 82   VideoCapturerState* GetCaptureState(VideoCapturer* video_capturer) const; | 
| 100   CaptureRenderAdapter* GetAdapter(VideoCapturer* video_capturer) const; | 83   CaptureRenderAdapter* GetAdapter(VideoCapturer* video_capturer) const; | 
| 101 | 84 | 
| 102   rtc::ThreadChecker thread_checker_; | 85   rtc::ThreadChecker thread_checker_; | 
| 103   CaptureStates capture_states_; | 86   CaptureStates capture_states_; | 
| 104 }; | 87 }; | 
| 105 | 88 | 
| 106 }  // namespace cricket | 89 }  // namespace cricket | 
| 107 | 90 | 
| 108 #endif  // TALK_MEDIA_BASE_CAPTUREMANAGER_H_ | 91 #endif  // WEBRTC_MEDIA_BASE_CAPTUREMANAGER_H_ | 
| OLD | NEW | 
|---|