media_stream_options.h revision a36e5920737c6adbddd3e43b760e5de8431db6e0
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 3// found in the LICENSE file. 4 5#ifndef CONTENT_COMMON_MEDIA_MEDIA_STREAM_OPTIONS_H_ 6#define CONTENT_COMMON_MEDIA_MEDIA_STREAM_OPTIONS_H_ 7 8#include <string> 9#include <vector> 10 11#include "content/common/content_export.h" 12#include "content/public/common/media_stream_request.h" 13 14namespace content { 15 16// MediaStreamConstraint keys for constraints that are passed to getUserMedia. 17CONTENT_EXPORT extern const char kMediaStreamSource[]; 18CONTENT_EXPORT extern const char kMediaStreamSourceId[]; 19CONTENT_EXPORT extern const char kMediaStreamSourceInfoId[]; 20CONTENT_EXPORT extern const char kMediaStreamSourceTab[]; 21CONTENT_EXPORT extern const char kMediaStreamSourceScreen[]; 22CONTENT_EXPORT extern const char kMediaStreamSourceSystem[]; 23 24// StreamOptions is a Chromium representation of WebKit's 25// WebUserMediaRequest Options. It describes the components 26// in a request for a new media stream. 27struct CONTENT_EXPORT StreamOptions { 28 StreamOptions(); 29 StreamOptions(MediaStreamType audio_type, MediaStreamType video_type); 30 31 // If not NO_SERVICE, the stream shall contain an audio input stream. 32 MediaStreamType audio_type; 33 std::string audio_device_id; 34 35 // If not NO_SERVICE, the stream shall contain a video input stream. 36 MediaStreamType video_type; 37 std::string video_device_id; 38}; 39 40// StreamDeviceInfo describes information about a device. 41struct CONTENT_EXPORT StreamDeviceInfo { 42 static const int kNoId; 43 44 StreamDeviceInfo(); 45 StreamDeviceInfo(MediaStreamType service_param, 46 const std::string& name_param, 47 const std::string& device_param, 48 bool opened); 49 StreamDeviceInfo(MediaStreamType service_param, 50 const std::string& name_param, 51 const std::string& device_param, 52 int sample_rate, 53 int channel_layout, 54 bool opened); 55 static bool IsEqual(const StreamDeviceInfo& first, 56 const StreamDeviceInfo& second); 57 58 MediaStreamDevice device; 59 // Set to true if the device has been opened, false otherwise. 60 bool in_use; 61 // Id for this capture session. Unique for all sessions of the same type. 62 int session_id; 63}; 64 65typedef std::vector<StreamDeviceInfo> StreamDeviceInfoArray; 66 67} // namespace content 68 69#endif // CONTENT_COMMON_MEDIA_MEDIA_STREAM_OPTIONS_H_ 70