OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // MediaStreamProvider is used to capture media of the types defined in | 5 // MediaStreamProvider is used to capture media of the types defined in |
6 // MediaStreamType. There is only one MediaStreamProvider instance per media | 6 // MediaStreamType. There is only one MediaStreamProvider instance per media |
7 // type and a MediaStreamProvider instance can have only one registered | 7 // type and a MediaStreamProvider instance can have only one registered |
8 // listener. | 8 // listener. |
9 // The MediaStreamManager is expected to be called on Browser::IO thread and | 9 // The MediaStreamManager is expected to be called on Browser::IO thread and |
10 // the listener will be called on the same thread. | 10 // the listener will be called on the same thread. |
11 | 11 |
12 #ifndef CONTENT_BROWSER_RENDERER_HOST_MEDIA_MEDIA_STREAM_PROVIDER_H_ | 12 #ifndef CONTENT_BROWSER_RENDERER_HOST_MEDIA_MEDIA_STREAM_PROVIDER_H_ |
13 #define CONTENT_BROWSER_RENDERER_HOST_MEDIA_MEDIA_STREAM_PROVIDER_H_ | 13 #define CONTENT_BROWSER_RENDERER_HOST_MEDIA_MEDIA_STREAM_PROVIDER_H_ |
14 | 14 |
15 #include <list> | 15 #include <list> |
16 #include <string> | 16 #include <string> |
17 | 17 |
18 #include "base/memory/ref_counted.h" | 18 #include "base/memory/ref_counted.h" |
19 #include "content/common/content_export.h" | 19 #include "content/common/content_export.h" |
20 #include "content/common/media/media_stream_options.h" | 20 #include "content/common/media/media_stream_options.h" |
21 | 21 |
22 namespace base { | 22 namespace base { |
23 class MessageLoopProxy; | 23 class MessageLoopProxy; |
24 } | 24 } |
25 | 25 |
26 namespace media { | |
27 class VideoCaptureCapability; | |
28 typedef std::vector<VideoCaptureCapability> VideoCaptureCapabilities; | |
tommi (sloooow) - chröme
2013/10/25 14:15:34
only one space after >
mcasas
2013/10/28 12:50:08
Done.
| |
29 } | |
30 | |
26 namespace content { | 31 namespace content { |
27 | 32 |
28 enum MediaStreamProviderError { | 33 enum MediaStreamProviderError { |
29 kMediaStreamOk = 0, | 34 kMediaStreamOk = 0, |
30 kInvalidMediaStreamType, | 35 kInvalidMediaStreamType, |
31 kInvalidSession, | 36 kInvalidSession, |
32 kUnknownSession, | 37 kUnknownSession, |
33 kDeviceNotAvailable, | 38 kDeviceNotAvailable, |
34 kDeviceAlreadyInUse, | 39 kDeviceAlreadyInUse, |
35 kUnknownError | 40 kUnknownError |
36 }; | 41 }; |
37 | 42 |
38 enum { kInvalidMediaCaptureSessionId = 0xFFFFFFFF }; | 43 enum { kInvalidMediaCaptureSessionId = 0xFFFFFFFF }; |
39 | 44 |
40 // Callback class used by MediaStreamProvider. | 45 // Callback class used by MediaStreamProvider. |
41 class CONTENT_EXPORT MediaStreamProviderListener { | 46 class CONTENT_EXPORT MediaStreamProviderListener { |
42 public: | 47 public: |
43 // Called by a MediaStreamProvider when a stream has been opened. | 48 // Called by a MediaStreamProvider when a stream has been opened. |
44 virtual void Opened(MediaStreamType stream_type, | 49 virtual void Opened(MediaStreamType stream_type, |
45 int capture_session_id) = 0; | 50 int capture_session_id) = 0; |
46 | 51 |
47 // Called by a MediaStreamProvider when a stream has been closed. | 52 // Called by a MediaStreamProvider when a stream has been closed. |
48 virtual void Closed(MediaStreamType stream_type, | 53 virtual void Closed(MediaStreamType stream_type, |
49 int capture_session_id) = 0; | 54 int capture_session_id) = 0; |
50 | 55 |
51 // Called by a MediaStreamProvider when available devices has been enumerated. | 56 // Called by a MediaStreamProvider when available devices has been enumerated. |
52 virtual void DevicesEnumerated(MediaStreamType stream_type, | 57 virtual void DevicesEnumerated(MediaStreamType stream_type, |
53 const StreamDeviceInfoArray& devices) = 0; | 58 const StreamDeviceInfoArray& devices) = 0; |
54 | 59 |
55 // Called by a MediaStreamProvider when an error has occured. | 60 // Called by a MediaStreamProvider when an error has occurred. |
56 virtual void Error(MediaStreamType stream_type, | 61 virtual void Error(MediaStreamType stream_type, |
57 int capture_session_id, | 62 int capture_session_id, |
58 MediaStreamProviderError error) = 0; | 63 MediaStreamProviderError error) = 0; |
59 | 64 |
65 // Called by a MediaStreamProvider when available devices' formats have been | |
66 // enumerated. | |
67 virtual void DeviceCapabilitiesEnumerated( | |
68 const StreamDeviceInfo& device_info, | |
69 const media::VideoCaptureCapabilities& capabilities) {} | |
tommi (sloooow) - chröme
2013/10/25 14:15:34
why not pure virtual like the other methods?
mcasas
2013/10/28 12:50:08
Because the AudioInputDeviceManager also implement
| |
70 | |
60 protected: | 71 protected: |
61 virtual ~MediaStreamProviderListener() {} | 72 virtual ~MediaStreamProviderListener() {} |
62 }; | 73 }; |
63 | 74 |
64 // Implemented by a manager class providing captured media. | 75 // Implemented by a manager class providing captured media. |
65 class CONTENT_EXPORT MediaStreamProvider | 76 class CONTENT_EXPORT MediaStreamProvider |
66 : public base::RefCountedThreadSafe<MediaStreamProvider> { | 77 : public base::RefCountedThreadSafe<MediaStreamProvider> { |
67 public: | 78 public: |
68 // Registers a listener and a device message loop. | 79 // Registers a listener and a device message loop. |
69 virtual void Register(MediaStreamProviderListener* listener, | 80 virtual void Register(MediaStreamProviderListener* listener, |
(...skipping 15 matching lines...) Expand all Loading... | |
85 virtual void Close(int capture_session_id) = 0; | 96 virtual void Close(int capture_session_id) = 0; |
86 | 97 |
87 protected: | 98 protected: |
88 friend class base::RefCountedThreadSafe<MediaStreamProvider>; | 99 friend class base::RefCountedThreadSafe<MediaStreamProvider>; |
89 virtual ~MediaStreamProvider() {} | 100 virtual ~MediaStreamProvider() {} |
90 }; | 101 }; |
91 | 102 |
92 } // namespace content | 103 } // namespace content |
93 | 104 |
94 #endif // CONTENT_BROWSER_RENDERER_HOST_MEDIA_MEDIA_STREAM_PROVIDER_H_ | 105 #endif // CONTENT_BROWSER_RENDERER_HOST_MEDIA_MEDIA_STREAM_PROVIDER_H_ |
OLD | NEW |