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

Side by Side Diff: content/browser/media_stream/media_stream_provider.h

Issue 6946001: VideoCaptureManager opens/closes, starts/stops and enumerates video capture devices. VideoCapture... (Closed) Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: Removing unnecessary checks in unittest that might fail on try server Created 9 years, 7 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 | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 // MediaStreamProvider is used to capture media of the types defined in
6 // MediaStreamType. There is only one MediaStreamProvider instance per media
7 // type and a MediaStreamProvider instance can have only one registered
8 // listener.
9 // The MediaStreamManager is expected to be called on Browser::IO thread and
10 // the listener will be called on the same thread.
11
12 #ifndef CONTENT_BROWSER_MEDIA_STREAM_MEDIA_STREAM_PROVIDER_H_
13 #define CONTENT_BROWSER_MEDIA_STREAM_MEDIA_STREAM_PROVIDER_H_
14
15 #include <list>
16 #include <string>
17
18 namespace media_stream {
19
20 // TODO(mflodman) Create a common type to use for all video capture and media
21 // stream classes.
22 typedef int MediaCaptureSessionId;
23
24 enum MediaStreamType {
25 kNoService = 0,
26 kAudioCapture,
27 kVideoCapture
28 };
29
30 enum MediaStreamProviderError {
31 kMediaStreamOk = 0,
32 kInvalidMediaStreamType,
33 kInvalidSession,
34 kUnknownSession,
35 kDeviceNotAvailable,
36 kDeviceAlreadyInUse,
37 kUnknownError
38 };
39
40 enum { kInvalidMediaCaptureSessionId = 0xFFFFFFFF };
41
42 struct MediaCaptureDeviceInfo {
43 MediaStreamType stream_type;
brettw 2011/05/24 20:49:30 Data should come after the functions.
wjia(left Chromium) 2011/05/31 18:47:03 Done.
44 std::string name;
45 std::string device_id;
46 bool in_use;
47
48 MediaCaptureDeviceInfo() : stream_type(kNoService), name(), device_id(),
brettw 2011/05/24 20:49:30 If initializers don't fit all one one line, format
wjia(left Chromium) 2011/05/31 18:47:03 Done.
49 in_use(false) {}
50 MediaCaptureDeviceInfo(MediaStreamType service_param,
51 const std::string name_param,
52 const std::string device_param,
53 bool opened)
54 : stream_type(service_param),
55 name(name_param),
56 device_id(device_param),
57 in_use(opened) {}
58 };
59
60 typedef std::list<MediaCaptureDeviceInfo> MediaCaptureDevices;
61
62 // Callback class used by MediaStreamProvider.
63 class MediaStreamProviderListener {
64 public:
65 // Called by a MediaStreamProvider when a stream has been opened.
66 virtual void Opened(MediaStreamType stream_type,
67 MediaCaptureSessionId capture_session_id) = 0;
68
69 // Called by a MediaStreamProvider when a stream has been closed.
70 virtual void Closed(MediaStreamType stream_type,
71 MediaCaptureSessionId capture_session_id) = 0;
72
73 // Called by a MediaStreamProvider when available devices has been enumerated.
74 virtual void DevicesEnumerated(MediaStreamType stream_type,
75 const MediaCaptureDevices& devices) = 0;
76
77 // Called by a MediaStreamProvider when an error has occured.
78 virtual void Error(MediaStreamType stream_type,
79 MediaCaptureSessionId capture_session_id,
80 MediaStreamProviderError error) = 0;
81
82 protected:
83 virtual ~MediaStreamProviderListener() {}
84 };
85
86 // Implemented by a manager class providing captured media.
87 class MediaStreamProvider {
88 public:
89 // Registers a listener, only one listener is allowed.
90 virtual bool Register(MediaStreamProviderListener* listener) = 0;
91
92 // Unregisters the previously registered listener.
93 virtual void Unregister() = 0;
94
95 // Enumerates existing capture devices and calls |DevicesEnumerated|.
96 virtual void EnumerateDevices() = 0;
97
98 // Opens the specified device. The device is not started and it is still
99 // possible for other applications to open the device before the device is
100 // started. |Opened| is called when the device is opened.
101 // kInvalidMediaCaptureSessionId is returned on error.
102 virtual MediaCaptureSessionId Open(const MediaCaptureDeviceInfo& device) = 0;
103
104 // Closes the specified device and calls |Closed| when done.
105 virtual void Close(MediaCaptureSessionId capture_session_id) = 0;
106
107 protected:
108 virtual ~MediaStreamProvider() {}
109 };
110
111 } // namespace media_stream
112
113 #endif // CONTENT_BROWSER_MEDIA_STREAM_MEDIA_STREAM_PROVIDER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698