summaryrefslogtreecommitdiffstats
path: root/media/base/audio_capturer_source.h
Commit message (Collapse)AuthorAgeFilesLines
* Adding key press detection in the browser process.jiayl@chromium.org2013-08-151-1/+2
| | | | | | | | | | | | | | | | | It works like this on the browser side: A new object UserInputMonitor is created on BrowserMainLoop and passed to AudioInputRendererHost to pass to AudioInputController. AudioInputController::DoRecord calls UserInputMonitor::AddKeyStrokeListener --> UserInputMonitor listens to system key events (only implemented on Linux) --> AudioInputController::OnKeyPressed is called and sets key_pressed_ --> When AudioInputController::OnData called, it writes key_pressed_ to shared memory along with the audio data buffer. On the renderer side a new param "key_pressed" is added through the code path of passing the flag to the webrtc voice engine. This CL includes all these changes except the implementation of UserInputMonitor for Windows and Mac. The impl of UserInputMonitor is mostly copied from remoting/host/local_input_monitor_linux.cc BUG= Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=217768 Review URL: https://chromiumcodereview.appspot.com/21183002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@217844 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 217768 "Adding key press detection in the browser process."phoglund@chromium.org2013-08-151-2/+1
| | | | | | | | | | | | | | | | | | | | > Adding key press detection in the browser process. > It works like this on the browser side: > A new object KeyPressMonitor is created on BrowserMainLoop and passed to AudioInputRendererHost to pass to AudioInputController. > AudioInputController::DoRecord calls KeyPressMonitor::AddKeyPressListener --> KeyPressMonitor listens to system key events through UserInputMonitor(only implemented on Linux) --> AudioInputController::OnKeyPressed is called and sets key_pressed_ --> When AudioInputController::OnData called, it writes key_pressed_ to shared memory along with the audio data buffer. > On the renderer side a new param "key_pressed" is added through the code path of passing the flag to the webrtc voice engine. > This CL includes all these changes except the implementation of UserInputMonitor for Windows and Mac. The impl of UserInputMonitor is mostly copied from remoting/host/local_input_monitor_linux.cc > > > BUG= > > Review URL: https://chromiumcodereview.appspot.com/21183002 TBR=jiayl@chromium.org Review URL: https://codereview.chromium.org/22871007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@217774 0039d316-1c4b-4281-b951-d872f2087c98
* Adding key press detection in the browser process.jiayl@chromium.org2013-08-151-1/+2
| | | | | | | | | | | | | | | It works like this on the browser side: A new object KeyPressMonitor is created on BrowserMainLoop and passed to AudioInputRendererHost to pass to AudioInputController. AudioInputController::DoRecord calls KeyPressMonitor::AddKeyPressListener --> KeyPressMonitor listens to system key events through UserInputMonitor(only implemented on Linux) --> AudioInputController::OnKeyPressed is called and sets key_pressed_ --> When AudioInputController::OnData called, it writes key_pressed_ to shared memory along with the audio data buffer. On the renderer side a new param "key_pressed" is added through the code path of passing the flag to the webrtc voice engine. This CL includes all these changes except the implementation of UserInputMonitor for Windows and Mac. The impl of UserInputMonitor is mostly copied from remoting/host/local_input_monitor_linux.cc BUG= Review URL: https://chromiumcodereview.appspot.com/21183002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@217768 0039d316-1c4b-4281-b951-d872f2087c98
* Do not pass the string device_id via IPC message to create an audio input ↵xians@chromium.org2013-03-201-19/+5
| | | | | | | | | | | | stream. Using a string device_id via IPC message from the render client to open the device is not very safe since IPC message is not trusted. Instead, we should just pass an int (session_id) to the browser, and we do the lookup on AudioInputDeviceManager in the browser to re-map the session_id to the device_id. BUG=179597,216952 Review URL: https://chromiumcodereview.appspot.com/12440027 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@189342 0039d316-1c4b-4281-b951-d872f2087c98
* Add chromium support for MediaStreamAudioDestinationNodecrogers@google.com2013-01-171-0/+1
| | | | | | | | | | | | | | | | | We add smarts into MediaStreamDependencyFactory::CreateNativeLocalMediaStream() to handle MediaStreams originating from WebAudio. Please see companion WebKit patches: https://bugs.webkit.org/show_bug.cgi?id=101815 https://bugs.webkit.org/show_bug.cgi?id=106053 BUG=none TEST=manual test http://www.corp.google.com/~henrika/WebAudio/MediaStreamAudioDestinationNode.html Review URL: https://chromiumcodereview.appspot.com/11369171 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@177330 0039d316-1c4b-4281-b951-d872f2087c98
* Break down the webrtc code and AudioInputDevice into a WebRtcAudioCapturer.xians@chromium.org2012-11-161-0/+81
| | | | | | | | | | | | | | | | | | | | | This capturer contains a source (AudioInputDevice) and a sink (WebRtcAudioDeviceImpl) by default. What it does is to get data from AudioInputDevice via CaptureCallback::Capture() callback, and forward the data to WebRtcAudioDeviceImpl. The source can be over written by API: SetCapturerSource(media::AudioCapturerSource* source) This capture currently only support one sink (WebRtcAudioDeviceImpl), but this can be extended to multiple sinks for the future. Design doc: https://docs.google.com/a/google.com/document/d/1FmiXtk1pxFlAw_CWwbfG-EQ4Syi4vpnZm6GWMyJ1UfU/edit TBR=tommi@chromium.org BUG=157306 TEST=manual test Review URL: https://codereview.chromium.org/11366244 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@168242 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 167387 - Break down the webrtc code and AudioInputDevice into a ↵wez@chromium.org2012-11-131-81/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | WebRtcAudioCapturer. This CL failed the TabCapture browser-test on the win_rel try-bot, and caused it to fail on Mac & Windows on the build-bots. BUG=160782 This capturer contains a source (AudioInputDevice) and a sink (WebRtcAudioDeviceImpl) by default. What it does is to get data from AudioInputDevice via CaptureCallback::Capture() callback, and forward the data to WebRtcAudioDeviceImpl. The source can be over written by API: SetCapturerSource(media::AudioCapturerSource* source) This capture currently only support one sink (WebRtcAudioDeviceImpl), but this can be extended to multiple sinks for the future. Design doc: https://docs.google.com/a/google.com/document/d/1FmiXtk1pxFlAw_CWwbfG-EQ4Syi4vpnZm6GWMyJ1UfU/edit BUG=157306 TEST=manual test Review URL: https://codereview.chromium.org/11231003 TBR=xians@chromium.org Review URL: https://codereview.chromium.org/11362231 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@167448 0039d316-1c4b-4281-b951-d872f2087c98
* Break down the webrtc code and AudioInputDevice into a WebRtcAudioCapturer.xians@chromium.org2012-11-131-0/+81
This capturer contains a source (AudioInputDevice) and a sink (WebRtcAudioDeviceImpl) by default. What it does is to get data from AudioInputDevice via CaptureCallback::Capture() callback, and forward the data to WebRtcAudioDeviceImpl. The source can be over written by API: SetCapturerSource(media::AudioCapturerSource* source) This capture currently only support one sink (WebRtcAudioDeviceImpl), but this can be extended to multiple sinks for the future. Design doc: https://docs.google.com/a/google.com/document/d/1FmiXtk1pxFlAw_CWwbfG-EQ4Syi4vpnZm6GWMyJ1UfU/edit BUG=157306 TEST=manual test Review URL: https://codereview.chromium.org/11231003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@167387 0039d316-1c4b-4281-b951-d872f2087c98