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

Side by Side Diff: talk/app/webrtc/videosourceinterface.h

Issue 1594973006: New rtc::VideoSinkInterface. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Workaround to not break chrome. Created 4 years, 10 months 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
« no previous file with comments | « talk/app/webrtc/videosource.cc ('k') | talk/app/webrtc/videosourceproxy.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * libjingle 2 * libjingle
3 * Copyright 2012 Google Inc. 3 * Copyright 2012 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,
(...skipping 12 matching lines...) Expand all
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 27
28 #ifndef TALK_APP_WEBRTC_VIDEOSOURCEINTERFACE_H_ 28 #ifndef TALK_APP_WEBRTC_VIDEOSOURCEINTERFACE_H_
29 #define TALK_APP_WEBRTC_VIDEOSOURCEINTERFACE_H_ 29 #define TALK_APP_WEBRTC_VIDEOSOURCEINTERFACE_H_
30 30
31 #include "talk/app/webrtc/mediastreaminterface.h" 31 #include "talk/app/webrtc/mediastreaminterface.h"
32 #include "talk/media/base/mediachannel.h" 32 #include "talk/media/base/mediachannel.h"
33 #include "talk/media/base/videorenderer.h"
33 34
34 namespace webrtc { 35 namespace webrtc {
35 36
36 // VideoSourceInterface is a reference counted source used for VideoTracks. 37 // VideoSourceInterface is a reference counted source used for VideoTracks.
37 // The same source can be used in multiple VideoTracks. 38 // The same source can be used in multiple VideoTracks.
38 // The methods are only supposed to be called by the PeerConnection 39 // The methods are only supposed to be called by the PeerConnection
39 // implementation. 40 // implementation.
40 class VideoSourceInterface : public MediaSourceInterface { 41 class VideoSourceInterface : public MediaSourceInterface {
41 public: 42 public:
42 // Get access to the source implementation of cricket::VideoCapturer. 43 // Get access to the source implementation of cricket::VideoCapturer.
43 // This can be used for receiving frames and state notifications. 44 // This can be used for receiving frames and state notifications.
44 // But it should not be used for starting or stopping capturing. 45 // But it should not be used for starting or stopping capturing.
45 virtual cricket::VideoCapturer* GetVideoCapturer() = 0; 46 virtual cricket::VideoCapturer* GetVideoCapturer() = 0;
46 47
47 // Stop the video capturer. 48 // Stop the video capturer.
48 virtual void Stop() = 0; 49 virtual void Stop() = 0;
49 virtual void Restart() = 0; 50 virtual void Restart() = 0;
50 51
52 // TODO(nisse): Delete these backwards compatibility wrappers after
53 // chrome is updated. Needed now because chrome's MockVideoSource
54 // defines a method with this signature (and marked with override).
55 // In addition, we need a dummy default implementation for the new
56 // AddSink/RemoveSink methods below, because they're unimplemented
57 // in the same class. This is ugly, but for MockVideoSource it
58 // doesn't really matter what these methods do, because they're not
59 // used.
60 virtual void AddSink(cricket::VideoRenderer* output) {
61 AddSink(static_cast<rtc::VideoSinkInterface<cricket::VideoFrame>*>(output));
62 }
63 virtual void RemoveSink(cricket::VideoRenderer* output) {
64 RemoveSink(
65 static_cast<rtc::VideoSinkInterface<cricket::VideoFrame>*>(output));
66 }
67
51 // Adds |output| to the source to receive frames. 68 // Adds |output| to the source to receive frames.
52 virtual void AddSink(cricket::VideoRenderer* output) = 0; 69 // TODO(nisse): Delete dummy default implementation.
53 virtual void RemoveSink(cricket::VideoRenderer* output) = 0; 70 virtual void AddSink(rtc::VideoSinkInterface<cricket::VideoFrame>* output){};
71 virtual void RemoveSink(
72 rtc::VideoSinkInterface<cricket::VideoFrame>* output){};
54 virtual const cricket::VideoOptions* options() const = 0; 73 virtual const cricket::VideoOptions* options() const = 0;
55 virtual cricket::VideoRenderer* FrameInput() = 0; 74 virtual cricket::VideoRenderer* FrameInput() = 0;
56 75
57 protected: 76 protected:
58 virtual ~VideoSourceInterface() {} 77 virtual ~VideoSourceInterface() {}
59 }; 78 };
60 79
61 } // namespace webrtc 80 } // namespace webrtc
62 81
63 #endif // TALK_APP_WEBRTC_VIDEOSOURCEINTERFACE_H_ 82 #endif // TALK_APP_WEBRTC_VIDEOSOURCEINTERFACE_H_
OLDNEW
« no previous file with comments | « talk/app/webrtc/videosource.cc ('k') | talk/app/webrtc/videosourceproxy.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698