| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
PrerenderManager::OnCreatingAudioStream. The goal is that PrerenderTracker (almost the last caller of the deprecated GetAssociatedRenderFrame) will keep track of RenderFrame IDs instead of RenderView IDs.
BUG=304341
R=miu@chromium.org, nasko@chromium.org
Review URL: https://codereview.chromium.org/106913004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@246045 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
the audio data, and this patch also adds interfaces of AddToAudioTrack and RemoveFromAudioTrack to connect the sink to the audio track.
BUG=322547
Review URL: https://codereview.chromium.org/90743004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@238503 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before this CL, the thread model of our capture class is that they will be updated with the format in the main render thread by SetCaptureFormat() and getting the audio callback in the capture audio thread.
And this complicates our code since it is required that the audio format in the data callback in the capture audio thread has to be the same as the cached format we get from the main render thread.
This CL simplies the thread model by moving the SetCaptureFormat() to the capture audio thread, so the format change callback will be in the same thread as the data callback.
This CL fixed the problems of https://codereview.chromium.org/76293004/
(crash when the webrtcLocalSourceProvider has not been getting the format callback before the data callback)
https://codereview.chromium.org/59273005/
(WebRtcLocalAudioRenderer might get a SetCaptureFormat() after Start(), in such case we should start the sink_ in WebRtcLocalAudioRenderer to adapt to the new format)
TBR=joi@chromium.org
BUG=320808
TEST=content_unittests
Review URL: https://codereview.chromium.org/83133002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@236765 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
> Move the SetCaptureFormat to the capture audio thread.
>
> Before this CL, the thread model of our capture class is that they will be updated with the format in the main render thread by SetCaptureFormat() and getting the audio callback in the capture audio thread.
> And this complicates our code since it is required that the audio format in the data callback in the capture audio thread has to be the same as the cached format we get from the main render thread.
>
> This CL simplies the thread model by moving the SetCaptureFormat() to the capture audio thread, so the format change callback will be in the same thread as the data callback.
>
>
> This CL fixed the problems of https://codereview.chromium.org/76293004/
> (crash when the webrtcLocalSourceProvider has not been getting the format callback before the data callback)
> https://codereview.chromium.org/59273005/
> (WebRtcLocalAudioRenderer might get a SetCaptureFormat() after Start(), in such case we should start the sink_ in WebRtcLocalAudioRenderer to adapt to the new format)
>
>
> BUG=320808
> TEST=content_unittests
>
> Review URL: https://codereview.chromium.org/77803004
TBR=xians@chromium.org
Review URL: https://codereview.chromium.org/81493002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@236574 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before this CL, the thread model of our capture class is that they will be updated with the format in the main render thread by SetCaptureFormat() and getting the audio callback in the capture audio thread.
And this complicates our code since it is required that the audio format in the data callback in the capture audio thread has to be the same as the cached format we get from the main render thread.
This CL simplies the thread model by moving the SetCaptureFormat() to the capture audio thread, so the format change callback will be in the same thread as the data callback.
This CL fixed the problems of https://codereview.chromium.org/76293004/
(crash when the webrtcLocalSourceProvider has not been getting the format callback before the data callback)
https://codereview.chromium.org/59273005/
(WebRtcLocalAudioRenderer might get a SetCaptureFormat() after Start(), in such case we should start the sink_ in WebRtcLocalAudioRenderer to adapt to the new format)
BUG=320808
TEST=content_unittests
Review URL: https://codereview.chromium.org/77803004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@236556 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
This saves one interleave and two memcpy, which might be helpful for Clank.
TEST=verify http://webrtc.googlecode.com/svn/trunk/samples/js/demos/html/pc1.html works
R=henrika@chromium.org, jar@chromium.org
Review URL: https://codereview.chromium.org/24262004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@224990 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When a non-default input device is selected, do a best-effort selection of a matching output device.
This is used to switch output of media stream audio tracks to the output device that matches the currently open capture device (microphone).
An typical example is to support switching to USB headsets when in a audio/video call.
This does not affect the audio output of non-webrtc related audio elements and only happens when there's exactly 1 active audio capture device in the page.
BUG=276894
Review URL: https://chromiumcodereview.appspot.com/23731007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@222187 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
> 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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The current media stream AudioTrack only supports one source even there are different media streams, either microphone or webaudio. But from the spec, different media streams can have different sources, and we need to support such cases in order to playout file while doing recording microphone data.
And we should also be able to send the audio tracks via the same(different) peerconnection(s).
This patch implements this feature in chrome.
BUG=262117,247027
TEST=content_unittests --gtest_filter="*MediaStream*, *WebRtc*"
Review URL: https://chromiumcodereview.appspot.com/19541004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@216162 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
This keeps the forwarding header, just updates all current callers.
BUG=
R=avi@chromium.org
Review URL: https://codereview.chromium.org/16514006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@205306 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Android
The usage of native buffer size allows low latency playback.
BUG=243506
R=henrika@chromium.org, xians@chromium.org
Review URL: https://codereview.chromium.org/15795005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@204290 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
"operator T*"
Linux fixes
BUG=110610
TBR=darin
Review URL: https://chromiumcodereview.appspot.com/16294003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@203624 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
After calling Stop(), the timer should just stop.
BUG=244192
TEST= https://webrtc.googlecode.com/svn/trunk/samples/js/demos/html/local-audio-rendering.html
Calling Start/Stop, the timer used to start/stop counting.
Review URL: https://chromiumcodereview.appspot.com/16045004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@202419 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Due to AudioPullFifo always clearing the |fifo_| before reading
another block from |read_cb_| we can actually remove the AudioFifo
object in favor of a plain AudioBus.
Speedup is ~17% over the old version per AudioConverter benchmark
using --audio-converter-iterations=500000:
Old: 430.04ms
New: 355.44ms
BUG=none
TEST=media_unittests
Review URL: https://chromiumcodereview.appspot.com/15394003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@201662 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
First step to add audio track support to local stream.
This patch builds up a correct structure for the local audio track, and added a correct chromium audio track implementation to local media stream.
This patch does not change the current functionalities and behaviour of local media stream, it is more like a refactoring on the structure.
TBR=henrika@chromium.org
BUG=164813
TEST=content_unittests --gtest_filter="*WebRtcLocalAudio*"
apprtc.appspot.com and webrtc.googlecode.com/svn/trunk/samples/js/demos/html/local-audio-rendering.html
Review URL: https://chromiumcodereview.appspot.com/14644005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@197383 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
> Reland 196894 - First step to add audio track support to local stream.
>
> First step to add audio track support to local stream.
> This patch builds up a correct structure for the local audio track, and added a correct chromium audio track implementation to local media stream.
>
> This patch does not change the current functionalities and behaviour of local media stream, it is more like a refactoring on the structure.
>
> TBR=tommi@chromium.org
>
> BUG=164813
> TEST=content_unittests --gtest_filter="*WebRtcLocalAudio*"
> apprtc.appspot.com and webrtc.googlecode.com/svn/trunk/samples/js/demos/html/local-audio-rendering.html
>
> Review URL: https://codereview.chromium.org/14640006
TBR=xians@chromium.org
Review URL: https://codereview.chromium.org/14641007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@197350 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
First step to add audio track support to local stream.
This patch builds up a correct structure for the local audio track, and added a correct chromium audio track implementation to local media stream.
This patch does not change the current functionalities and behaviour of local media stream, it is more like a refactoring on the structure.
TBR=tommi@chromium.org
BUG=164813
TEST=content_unittests --gtest_filter="*WebRtcLocalAudio*"
apprtc.appspot.com and webrtc.googlecode.com/svn/trunk/samples/js/demos/html/local-audio-rendering.html
Review URL: https://codereview.chromium.org/14640006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@197349 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
> Reland 196894 - First step to add audio track support to local stream.
>
> First step to add audio track support to local stream.
> This patch builds up a correct structure for the local audio track, and added a correct chromium audio track implementation to local media stream.
>
> This patch does not change the current functionalities and behaviour of local media stream, it is more like a refactoring on the structure.
>
> TBR=tommi@chromium.org
>
> BUG=164813
> TEST=content_unittests --gtest_filter="*WebRtcLocalAudio*"
> apprtc.appspot.com and webrtc.googlecode.com/svn/trunk/samples/js/demos/html/local-audio-rendering.html
>
> Review URL: https://codereview.chromium.org/14359019
TBR=xians@chromium.org
Review URL: https://codereview.chromium.org/14198012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@197080 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
First step to add audio track support to local stream.
This patch builds up a correct structure for the local audio track, and added a correct chromium audio track implementation to local media stream.
This patch does not change the current functionalities and behaviour of local media stream, it is more like a refactoring on the structure.
TBR=tommi@chromium.org
BUG=164813
TEST=content_unittests --gtest_filter="*WebRtcLocalAudio*"
apprtc.appspot.com and webrtc.googlecode.com/svn/trunk/samples/js/demos/html/local-audio-rendering.html
Review URL: https://codereview.chromium.org/14359019
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@197063 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
> First step to add audio track support to local stream.
> This patch builds up a correct structure for the local audio track, and added a correct chromium audio track implementation to local media stream.
>
> This patch does not change the current functionalities and behaviour of local media stream, it is more like a refactoring on the structure.
>
> BUG=164813
> TEST=content_unittests --gtest_filter="*WebRtcLocalAudio*"
> apprtc.appspot.com and webrtc.googlecode.com/svn/trunk/samples/js/demos/html/local-audio-rendering.html
>
> Review URL: https://chromiumcodereview.appspot.com/13601012
TBR=xians@chromium.org
Review URL: https://codereview.chromium.org/14307020
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@196900 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch builds up a correct structure for the local audio track, and added a correct chromium audio track implementation to local media stream.
This patch does not change the current functionalities and behaviour of local media stream, it is more like a refactoring on the structure.
BUG=164813
TEST=content_unittests --gtest_filter="*WebRtcLocalAudio*"
apprtc.appspot.com and webrtc.googlecode.com/svn/trunk/samples/js/demos/html/local-audio-rendering.html
Review URL: https://chromiumcodereview.appspot.com/13601012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@196894 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
audio output and input.
Also:
1. Removed RendererAudioOutputDevice class, since it's no longer necessary to manage asynchronously associating a render view with a stream.
2. Clean-ups: Applied several changes/bug fixes to bring the audio input classes/impls up-to-date w.r.t. the audio output classes/impls. Filed bug 179597 for follow-up.
3. Added missing plumbing for associating audio input devices created by WebRtcAudioCapturer to render views.
4. Updated unit tests.
BUG=166779
TEST=media_unittests, content_unittests, TSAN, chrome/test/functional/webrtc_*.py, and manual testing described in http://codereview.chromium.org/11359196/
Review URL: https://codereview.chromium.org/12383016
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@194711 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=208580
TEST=apprtc.com in loopback
Review URL: https://chromiumcodereview.appspot.com/12769010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@188718 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Given https://chromiumcodereview.appspot.com/12646009, we do lo longer have to use a callback to be informed about when stop() has been called on a media stream.
This patch is a pure cleanup patch.
BUG=none
TEST=Several different WebRTC demos and content_unittests.
Review URL: https://chromiumcodereview.appspot.com/12732008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@188396 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=none
TEST=apprtc.appspot.com/?debug=loopback
Review URL: https://codereview.chromium.org/12841004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@188061 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Main goal is to allow the user to use a local stream as source for more than one audio element. Adding the stream to one extra element will result in an increased output volume and the possibility to tune the volume on each element. If two elements are used, both elements must be muted to silence the audio.
The design is now more clear since more work is done in the local renderer and not divided between the capturer (which used to own the FIFO) and the local renderer. The capturer only dispatches the recorded audio out to its sinks and they deal with the rest.
- Removes auto-mute on local media streams when rendered by a media player.
- Moves local FIFO from WebRtcAudioCapturer to WebRtcLocalAudioRenderer.
- Now allows multiple WebRtcLocalAudioRenderer objects where each instance creates its own output stream.
- Adds support for the enabled attribute on the MediaStreamTrack object.
BUG=none
TEST=All existing WebRTC demos and a new test at: https://www.corp.google.com/~henrika/webrtc/multi_local_rendering.html
TBR=wjia@chromium.org
Review URL: https://codereview.chromium.org/12599002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@187252 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This re-lands 187048
BUG=none
TEST=none
TBR=ccameron@chromium.org
> Revert 187048
> based on
> http://build.chromium.org/p/chromium.win/builders/Win%20Aura%20Tests%20%282%29/builds/1968
>
> > Enable the "Web Audio Input" feature by default.
> >
> > We now get the proper audio input device identifier passed into WebKit and back into chromium
> > to be able to determine if the correct device will be used that the user gave permission to
> > access in getUserMedia().
> >
> > See related WebKit work:
> > https://bugs.webkit.org/show_bug.cgi?id=90110
> > https://bugs.webkit.org/show_bug.cgi?id=93756
> > https://bugs.webkit.org/show_bug.cgi?id=101815
> > https://bugs.webkit.org/show_bug.cgi?id=106490
> > https://bugs.webkit.org/show_bug.cgi?id=106816
> > https://bugs.webkit.org/show_bug.cgi?id=109494
> > https://bugs.webkit.org/show_bug.cgi?id=110796
> >
> > and chromium work:
> > https://codereview.chromium.org/10830268/
> > https://codereview.chromium.org/10916105/
> > https://codereview.chromium.org/10909185/
> > https://codereview.chromium.org/10959068
> > https://codereview.chromium.org/11418125/
> > https://codereview.chromium.org/11827040/
> > https://codereview.chromium.org/11878032/
> > https://codereview.chromium.org/12218106/
> > https://codereview.chromium.org/12335072/
> >
> > BUG=145092
> > TEST=none
> > manual tests:
> > http://chromium.googlecode.com/svn/trunk/samples/audio/visualizer-live.html
> > http://dashersw.github.com/pedalboard.js/demo/
> > Review URL: https://codereview.chromium.org/12383064
>
> TBR=crogers@google.com
> Review URL: https://codereview.chromium.org/12649007
TBR=ccameron@chromium.org
Review URL: https://codereview.chromium.org/12743002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@187095 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
based on
http://build.chromium.org/p/chromium.win/builders/Win%20Aura%20Tests%20%282%29/builds/1968
> Enable the "Web Audio Input" feature by default.
>
> We now get the proper audio input device identifier passed into WebKit and back into chromium
> to be able to determine if the correct device will be used that the user gave permission to
> access in getUserMedia().
>
> See related WebKit work:
> https://bugs.webkit.org/show_bug.cgi?id=90110
> https://bugs.webkit.org/show_bug.cgi?id=93756
> https://bugs.webkit.org/show_bug.cgi?id=101815
> https://bugs.webkit.org/show_bug.cgi?id=106490
> https://bugs.webkit.org/show_bug.cgi?id=106816
> https://bugs.webkit.org/show_bug.cgi?id=109494
> https://bugs.webkit.org/show_bug.cgi?id=110796
>
> and chromium work:
> https://codereview.chromium.org/10830268/
> https://codereview.chromium.org/10916105/
> https://codereview.chromium.org/10909185/
> https://codereview.chromium.org/10959068
> https://codereview.chromium.org/11418125/
> https://codereview.chromium.org/11827040/
> https://codereview.chromium.org/11878032/
> https://codereview.chromium.org/12218106/
> https://codereview.chromium.org/12335072/
>
> BUG=145092
> TEST=none
> manual tests:
> http://chromium.googlecode.com/svn/trunk/samples/audio/visualizer-live.html
> http://dashersw.github.com/pedalboard.js/demo/
> Review URL: https://codereview.chromium.org/12383064
TBR=crogers@google.com
Review URL: https://codereview.chromium.org/12649007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@187073 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We now get the proper audio input device identifier passed into WebKit and back into chromium
to be able to determine if the correct device will be used that the user gave permission to
access in getUserMedia().
See related WebKit work:
https://bugs.webkit.org/show_bug.cgi?id=90110
https://bugs.webkit.org/show_bug.cgi?id=93756
https://bugs.webkit.org/show_bug.cgi?id=101815
https://bugs.webkit.org/show_bug.cgi?id=106490
https://bugs.webkit.org/show_bug.cgi?id=106816
https://bugs.webkit.org/show_bug.cgi?id=109494
https://bugs.webkit.org/show_bug.cgi?id=110796
and chromium work:
https://codereview.chromium.org/10830268/
https://codereview.chromium.org/10916105/
https://codereview.chromium.org/10909185/
https://codereview.chromium.org/10959068
https://codereview.chromium.org/11418125/
https://codereview.chromium.org/11827040/
https://codereview.chromium.org/11878032/
https://codereview.chromium.org/12218106/
https://codereview.chromium.org/12335072/
BUG=145092
TEST=none
manual tests:
http://chromium.googlecode.com/svn/trunk/samples/audio/visualizer-live.html
http://dashersw.github.com/pedalboard.js/demo/
Review URL: https://codereview.chromium.org/12383064
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@187048 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Re-land of https://codereview.chromium.org/12220063/.
This will hold on to a reference to the buffer while the buffer is being used by WebRTC. I also tried to fix the places where synchronization was missing (mostly for the params_ instance).
BUG=173987
TBR=tommi@chromium.org
Review URL: https://chromiumcodereview.appspot.com/12261003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@182227 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
> Possible solution to synchronization problems in webrtc audio capturer.
>
> This will hold on to a reference to the buffer while the buffer is being used by WebRTC. I also tried to fix the places where synchronization was missing (mostly for the params_ instance).
>
> Let me know if you want an offline explanation!
>
> BUG=173987
> TESTED=content_unittests on win and linux, chrome + apprtc on win and linux, release-built chrome with asan on original crashing test page.
>
> Review URL: https://codereview.chromium.org/12220063
TBR=phoglund@chromium.org
Review URL: https://codereview.chromium.org/12207127
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@181932 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This will hold on to a reference to the buffer while the buffer is being used by WebRTC. I also tried to fix the places where synchronization was missing (mostly for the params_ instance).
Let me know if you want an offline explanation!
BUG=173987
TESTED=content_unittests on win and linux, chrome + apprtc on win and linux, release-built chrome with asan on original crashing test page.
Review URL: https://codereview.chromium.org/12220063
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@181929 0039d316-1c4b-4281-b951-d872f2087c98
|
|
Overview:
=========
This patch ensures that a user can add a local media stream to an audio/video element and render the captured audio locally (in loopback).
Details:
========
Our current architecture is a bit hairy but I've done my best to add the new code in a structured way. I have an issue in crbug assigned to myself to refactor the code in this area since we really must improve and make it less complex to work with.
One more client now implements the webkit_media::MediaStreamAudioRenderer and this client is
called WebRtcLocalAudioRenderer (WLAR).
The WLAR is created by the WebMediaPlayer when a local media stream is generated and this will ensure that the controls for a media element becomes visible.
The main action takes place in WebRtcLocalAudioRenderer::Start() where I have gathered all the main stuff. This method is the best starting point for understanding the new data flow.
A reference to an existing WebRtcAudioCapturer (WAC) (owned by the WebRTC ADM) is given to the WLAR at construction. Calling Start =>
- WLAR connects itself to the WAC using the WAC pointer from construction
- render audio parameter are copied from the capture side (since output does resampling etc.)
- creates and inits a new AudioOutputDevice (AOD)
- starts the capturer and the new AOD
Media flow:
-----------
Data is recorded and fed to the WAC which knows that it is in "loopback mode". The WAC then stores recorded data in a FIFO. The WLAR consumes audio from the FIFO when the AOD needs data to render. The WLAR reads data from the FIFO using a callback.
Testing procedure:
==================
Main testing was done using a new WebRCT demo at https://www.corp.google.com/~henrika/webrtc/gum4.html.
I also tried all other demos at https://webrtc-demos.appspot.com/ and the htp://apprtc.appspot.com demo.
For all cases, debug filters were used to track things like calling sequences etc.
BUG=157142
Review URL: https://codereview.chromium.org/11450029
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@173164 0039d316-1c4b-4281-b951-d872f2087c98
|