media_stream_request.cc revision a1401311d1ab56c4ed0a474bd38c108f75cb0cd9
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/common/media_stream_request.h" 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/logging.h" 82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace content { 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bool IsAudioMediaType(MediaStreamType type) { 12a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) return (type == MEDIA_DEVICE_AUDIO_CAPTURE || 13a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) type == content::MEDIA_TAB_AUDIO_CAPTURE || 1468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) type == content::MEDIA_LOOPBACK_AUDIO_CAPTURE); 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bool IsVideoMediaType(MediaStreamType type) { 18a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) return (type == MEDIA_DEVICE_VIDEO_CAPTURE || 192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) type == content::MEDIA_TAB_VIDEO_CAPTURE || 20ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch type == content::MEDIA_DESKTOP_VIDEO_CAPTURE); 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)MediaStreamDevice::MediaStreamDevice() 2468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) : type(MEDIA_NO_SERVICE), 2568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) video_facing(MEDIA_VIDEO_FACING_NONE) { 2668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)} 272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)MediaStreamDevice::MediaStreamDevice( 292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) MediaStreamType type, 302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const std::string& id, 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& name) 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) : type(type), 332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) id(id), 3468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) video_facing(MEDIA_VIDEO_FACING_NONE), 3558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) name(name) { 3668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)#if defined(OS_ANDROID) 3768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) if (name.find("front") != std::string::npos) { 3868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) video_facing = MEDIA_VIDEO_FACING_USER; 3968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) } else if (name.find("back") != std::string::npos) { 4068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) video_facing = MEDIA_VIDEO_FACING_ENVIRONMENT; 4168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) } 4268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)#endif 432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)MediaStreamDevice::MediaStreamDevice( 462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) MediaStreamType type, 472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const std::string& id, 482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const std::string& name, 492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int sample_rate, 5058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) int channel_layout, 5158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) int frames_per_buffer) 522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) : type(type), 532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) id(id), 5468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) video_facing(MEDIA_VIDEO_FACING_NONE), 552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) name(name), 5658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) input(sample_rate, channel_layout, frames_per_buffer) { 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)MediaStreamDevice::~MediaStreamDevice() {} 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 61f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)bool MediaStreamDevice::IsEqual(const MediaStreamDevice& second) const { 62f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const AudioDeviceParameters& input_second = second.input; 63f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) return type == second.type && 64f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) name == second.name && 65f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) id == second.id && 66f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) input.sample_rate == input_second.sample_rate && 67f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) input.channel_layout == input_second.channel_layout; 68f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} 69f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)MediaStreamRequest::MediaStreamRequest( 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int render_process_id, 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int render_view_id, 737dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch int page_request_id, 742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const GURL& security_origin, 752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) MediaStreamRequestType request_type, 767dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch const std::string& requested_audio_device_id, 777dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch const std::string& requested_video_device_id, 782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) MediaStreamType audio_type, 792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) MediaStreamType video_type) 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) : render_process_id(render_process_id), 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) render_view_id(render_view_id), 827dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch page_request_id(page_request_id), 832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) security_origin(security_origin), 842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) request_type(request_type), 857dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch requested_audio_device_id(requested_audio_device_id), 867dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch requested_video_device_id(requested_video_device_id), 872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) audio_type(audio_type), 882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) video_type(video_type) { 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)MediaStreamRequest::~MediaStreamRequest() {} 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace content 94