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

Side by Side Diff: content/browser/renderer_host/media/media_stream_provider.h

Issue 29423003: Added video capture capabilities retrieval and caching to VideoCaptureManager (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Changed mechanics of Caps enumeration to be asynchronous and 2 threaded. UT adapted. Created 7 years, 1 month 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
OLDNEW
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
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_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698