| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(patchset #1 of https://codereview.chromium.org/509893002/)
Reason for revert:
https://codereview.chromium.org/510893003/ fixed the ledger bot, so I am going to revert this revert CL.
Original issue's description:
> Revert of Remove the last piece of deprecated synchronous IO code. (patchset #5 of https://codereview.chromium.org/460373002/)
>
> Reason for revert:
> Build failure on Google Chrome ChromeOS:
>
> http://build.chromium.org/p/chromium.chrome/buildstatus?builder=Google%20Chrome%20ChromeOS&number=71164
>
> Original issue's description:
> > Remove the last piece of deprecated synchronous IO code.
> >
> > BUG=337096
> > TEST=bots
> >
> > Committed: https://chromium.googlesource.com/chromium/src/+/c4a64ffdd0d511c66d774341fa0a318af7911193
>
> TBR=dalecurtis@chromium.org,ajm@chromium.org,rkc@chromium.org,avi@chromium.org,palmer@chromium.org,xians@chromium.org
> NOTREECHECKS=true
> BUG=337096
>
> Committed: https://chromium.googlesource.com/chromium/src/+/3e8c19c89c16fe8a7c2dfe0cae2990cd4a004339
TBR=dalecurtis@chromium.org,ajm@chromium.org,rkc@chromium.org,avi@chromium.org,palmer@chromium.org,tnagel@chromium.org
NOTREECHECKS=true
BUG=337096
Review URL: https://codereview.chromium.org/518433002
Cr-Commit-Position: refs/heads/master@{#292463}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
#5 of https://codereview.chromium.org/460373002/)
Reason for revert:
Build failure on Google Chrome ChromeOS:
http://build.chromium.org/p/chromium.chrome/buildstatus?builder=Google%20Chrome%20ChromeOS&number=71164
Original issue's description:
> Remove the last piece of deprecated synchronous IO code.
>
> BUG=337096
> TEST=bots
>
> Committed: https://chromium.googlesource.com/chromium/src/+/c4a64ffdd0d511c66d774341fa0a318af7911193
TBR=dalecurtis@chromium.org,ajm@chromium.org,rkc@chromium.org,avi@chromium.org,palmer@chromium.org,xians@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=337096
Review URL: https://codereview.chromium.org/509893002
Cr-Commit-Position: refs/heads/master@{#292133}
|
|
|
|
|
|
|
|
|
| |
BUG=337096
TEST=bots
Review URL: https://codereview.chromium.org/460373002
Cr-Commit-Position: refs/heads/master@{#292132}
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the platforms.
This is required to do some experiments with low buffer size for input audio.
BUG=363958
TEST=manual test with audio-buffer-size flag
Review URL: https://codereview.chromium.org/285233005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@271673 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove the unified IO code on the browser.
Unified IO is not used any more and it should be removed.
TBR=dalecurtis@chromium.org
BUG=337096
TEST=bots, and nothing breaks.
Review URL: https://codereview.chromium.org/163343002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@251018 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
http://build.chromium.org/p/chromium.chromiumos/builders/ChromiumOS%20%28amd64%29/builds/14117
chromeos-chrome-34.0.1829.0_alpha-r1: ../../../../../../../home/chrome-bot/chrome_root/src/media/audio/linux/audio_manager_linux.cc: In function 'media::AudioManager* media::CreateAudioManager(media::AudioLogFactory*)':
chromeos-chrome-34.0.1829.0_alpha-r1: ../../../../../../../home/chrome-bot/chrome_root/src/media/audio/linux/audio_manager_linux.cc:33:50: error: cannot allocate an object of abstract type 'media::AudioManagerCras'
chromeos-chrome-34.0.1829.0_alpha-r1: return new AudioManagerCras(audio_log_factory);
chromeos-chrome-34.0.1829.0_alpha-r1: ^
> Remove the unified IO code on the browser.
>
> Unified IO is not used any more and it should be removed.
>
>
> BUG=337096
> TEST=bots, and nothing breaks.
>
> Review URL: https://codereview.chromium.org/153623004
TBR=xians@chromium.org
Review URL: https://codereview.chromium.org/136233005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@249811 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
Unified IO is not used any more and it should be removed.
BUG=337096
TEST=bots, and nothing breaks.
Review URL: https://codereview.chromium.org/153623004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@249790 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Re-land https://codereview.chromium.org/99033003/ with a CrOS build fix.
TBR=tommi
Including the original CL description here:
Add a platform effects mask member to AudioParameters. This allows the
availability of platform effects (currently AEC) to be plumbed up to
MediaStreamDependencyFactory, where they can be reconciled with the
media constraints to determine if the effects should be enabled. When
this is the case, the constraints will be modified to disable the
corresponding software effect in PeerConnection.
The availability is controlled by a whitelist of device models in
AudioManagerAndroid, which for AEC, currently consists of Nexus 5 and
Nexus 7.
AudioManagerAndroid will use the AudioRecord path iff the platform
AEC is enabled.
TESTED=Using apprtc on a N5 and N7 (whitelisted):
- The AudioRecord input path is used.
- The platform AEC is enabled and the software AEC (in PeerConnection)
is disabled.
- Calls have good echo cancellation quality.
Using apprtc with ?audio=googEchoCancellation=false on a N5 and N7:
- The OpenSLES input path is used.
- Both the platform and software AEC are disabled.
Using apprtc on Nexus 4 (non-whitelisted):
- The OpenSLES input path is used.
- The platform AEC is disabled and the software AEC is enabled.
Using apprtc on Galaxy S2 (running ICS):
- The OpenSLES input path is used.
audio_android_unittest.cc passes on N5, N7 and Galaxy S2
Review URL: https://codereview.chromium.org/115413002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@240787 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
AudioManager is now also an AudioLogFactory. Changing the constructor
of AudioManager isn't viable due to its psuedo-singleton behavior, so
MediaInternal's AudioLogFactory must be injected after construction.
The next step after this CL is to have AudioOutputDispatcherImpl objects
own an AudioLog instance.
BUG=260005
TEST=none, just plumbing.
Review URL: https://codereview.chromium.org/99733004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@238637 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Removes GetHighLatencyOutputBufferSize() since we no longer
have any high latency users. Fallback uses a minimum 2048
buffer size in AudioOutputResampler.
- Moves NumberOfWaveOutBuffers() to AudioManagerWin. Documents
existing broken unit test edge case for Vista.
- Moves GetUserBufferSize() to AudioManagerBase as a protected
method.
BUG=120319
TEST=compiles
Review URL: https://codereview.chromium.org/25133002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@226131 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
devices.
The implementation still assumes an empty device id (aka the default device), so this is only updating virtual methods and call sites.
BUG=276894
R=henrika@chromium.org
Review URL: https://codereview.chromium.org/23452009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@220927 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
mac 10.7 bot because the oroginal CL queried the device info while there is no device on the bot.
Hook up the device selection to the WebAudio live audio.
WebAudio live audio needs to pass the session_id to the browser process so that Chrome can open the correct input device for unitfied IO.
This CL looks big because it touches quite some interfaces from the render to the browser. But the change is simple and basically adding a session_id/device_id to the classes. All the changes some together and it is very hard to break it down.
It also makes the media output code more similar to the media input code as well, and it will be easier to merge them for the future.
TBR=henrika@chormium.org
BUG=147327
TEST=http://chromium.googlecode.com/svn/trunk/samples/audio/visualizer-live.html
Change the device using the camera icon on the right of the omnibox, then reload. Verify the sound is coming from the correct input device.
Review URL: https://codereview.chromium.org/15979015
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@203695 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
> Trying relanding this CL, the original CL passed the try bots but failed the mac 10.7 bot, I am keeping an eye on the bots and will revert it if it fails the bot again.
>
> Hook up the device selection to the WebAudio live audio.
> WebAudio live audio needs to pass the session_id to the browser process so that Chrome can open the correct input device for unitfied IO.
>
> This CL looks big because it touches quite some interfaces from the render to the browser. But the change is simple and basically adding a session_id/device_id to the classes. All the changes some together and it is very hard to break it down.
> It also makes the media output code more similar to the media input code as well, and it will be easier to merge them for the future.
>
> TBR=henrika@chormium.org
>
> BUG=147327
> TEST=http://chromium.googlecode.com/svn/trunk/samples/audio/visualizer-live.html
> Change the device using the camera icon on the right of the omnibox, then reload. Verify the sound is coming from the correct input device.
>
> Review URL: https://codereview.chromium.org/15836006
TBR=xians@chromium.org
Review URL: https://codereview.chromium.org/16325002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@203690 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
mac 10.7 bot, I am keeping an eye on the bots and will revert it if it fails the bot again.
Hook up the device selection to the WebAudio live audio.
WebAudio live audio needs to pass the session_id to the browser process so that Chrome can open the correct input device for unitfied IO.
This CL looks big because it touches quite some interfaces from the render to the browser. But the change is simple and basically adding a session_id/device_id to the classes. All the changes some together and it is very hard to break it down.
It also makes the media output code more similar to the media input code as well, and it will be easier to merge them for the future.
TBR=henrika@chormium.org
BUG=147327
TEST=http://chromium.googlecode.com/svn/trunk/samples/audio/visualizer-live.html
Change the device using the camera icon on the right of the omnibox, then reload. Verify the sound is coming from the correct input device.
Review URL: https://codereview.chromium.org/15836006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@203686 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Possibly caused content_browsertests to fail on Mac.
> Hook up the device selection to the WebAudio live audio.
> WebAudio live audio needs to pass the session_id to the browser process so that Chrome can open the correct input device for unitfied IO.
>
> This CL looks big because it touches quite some interfaces from the render to the browser. But the change is simple and basically adding a session_id/device_id to the classes. All the changes some together and it is very hard to break it down.
> It also makes the media output code more similar to the media input code as well, and it will be easier to merge them for the future.
>
>
> BUG=147327
> TEST=http://chromium.googlecode.com/svn/trunk/samples/audio/visualizer-live.html
> Change the device using the camera icon on the right of the omnibox, then reload. Verify the sound is coming from the correct input device.
>
> Review URL: https://chromiumcodereview.appspot.com/15721002
TBR=xians@chromium.org
Review URL: https://codereview.chromium.org/15725013
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@203434 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
WebAudio live audio needs to pass the session_id to the browser process so that Chrome can open the correct input device for unitfied IO.
This CL looks big because it touches quite some interfaces from the render to the browser. But the change is simple and basically adding a session_id/device_id to the classes. All the changes some together and it is very hard to break it down.
It also makes the media output code more similar to the media input code as well, and it will be easier to merge them for the future.
BUG=147327
TEST=http://chromium.googlecode.com/svn/trunk/samples/audio/visualizer-live.html
Change the device using the camera icon on the right of the omnibox, then reload. Verify the sound is coming from the correct input device.
Review URL: https://chromiumcodereview.appspot.com/15721002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@203427 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
r187677 was reverted due to it broke the chromeos bots. And it seems some chromeos bots do not have the libpulse-dev headers files. Instead of fixing the bots, I added back the USE_PULSEAUDIO macro to disable pulse for chromeos.
This patch enables pulse as the default IO handling in Chrome.
Right now we have the dynamic linking for pulse library, for the machine without pulse, it will automatically fall back to ALSA.
In order to enable pulse as the default IO, libpulse-dev package is required to build Chrome on linux. Previously libpulse-dev is only required if building chromeOS, right now it is also required by building chrome.
Note, we still have some small issues for the pulse implementations, so this patch needs to be landed after https://codereview.chromium.org/12328097/,
https://codereview.chromium.org/12316131/, https://codereview.chromium.org/12310102/ and
https://codereview.chromium.org/12613005/
TBR=dalecurtis@chromium.org
BUG=178101
TEST=compile on linux
Review URL: https://codereview.chromium.org/12646006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@187834 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This broke the ChromeOS bots. See:
http://build.chromium.org/p/chromium.chromiumos/builders/ChromiumOS%20%28daisy%29/builds/7853/steps/cbuildbot/logs/stdio
chromeos-chrome-27.0.1439.0_alpha-r1: In file included from media/audio/pulse/audio_manager_pulse.cc:5:0:
chromeos-chrome-27.0.1439.0_alpha-r1: ./media/audio/pulse/audio_manager_pulse.h:8:30: fatal error: pulse/pulseaudio.h: No such file or directory
> This patch enables pulse as the default IO handling in Chrome.
>
> Right now we have the dynamic linking for pulse library, for the machine without pulse, it will automatically fall back to ALSA.
>
> In order to enable pulse as the default IO, libpulse-dev package is required to build Chrome on linux. Previously libpulse-dev is only required if building chromeOS, right now it is also required by building chrome.
>
>
> Note, we still have some small issues for the pulse implementations, so this patch needs to be landed after https://codereview.chromium.org/12328097/,
> https://codereview.chromium.org/12316131/, https://codereview.chromium.org/12310102/ and
> https://codereview.chromium.org/12613005/
>
>
> BUG=178101
> TEST=compile on linux
>
> Review URL: https://chromiumcodereview.appspot.com/12310101
TBR=xians@chromium.org
Review URL: https://codereview.chromium.org/12567014
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@187701 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Right now we have the dynamic linking for pulse library, for the machine without pulse, it will automatically fall back to ALSA.
In order to enable pulse as the default IO, libpulse-dev package is required to build Chrome on linux. Previously libpulse-dev is only required if building chromeOS, right now it is also required by building chrome.
Note, we still have some small issues for the pulse implementations, so this patch needs to be landed after https://codereview.chromium.org/12328097/,
https://codereview.chromium.org/12316131/, https://codereview.chromium.org/12310102/ and
https://codereview.chromium.org/12613005/
BUG=178101
TEST=compile on linux
Review URL: https://chromiumcodereview.appspot.com/12310101
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@187677 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In addition to relanding r186180, this patch gets back the --audio-buffer-size flag support and also fixed the audio issue in cras.
The review for r186180 is https://codereview.chromium.org/12316131/
Moved AudioUtil static functions:
GetAudioHardwareSampleRate
GetAudioInputHardwareSampleRate
GetAudioHardwareBufferSize
GetAudioInputHardwareChannelLayout
to AudioManager interfaces:
GetDefaultOutputStreamParameters()
GetDefaultInputStreamParameters(const std::string& device_id)
By doing this, we remove the messy ifdef statements in AudioUtil, allow getting the native sample rate for Pulse, each AudioManager is responsible for providing the optimal audio params to achieve the best audio performance, for example, cras can raise the buffer size to reduce CPU consumption without affecting other Linux products.
TBR=dalecurtis@chromium.org
BUG=178142, 137326, 120319
TEST=media_unittests, content_unittests
Review URL: https://codereview.chromium.org/12602002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@186698 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
> Moved AudioUtil static functions:
> GetAudioHardwareSampleRate
> GetAudioInputHardwareSampleRate
> GetAudioHardwareBufferSize
> GetAudioInputHardwareChannelLayout
> to AudioManager interfaces:
> GetDefaultOutputStreamParameters()
> GetDefaultInputStreamParameters(const std::string& device_id)
>
> By doing this, we remove the messy ifdef statements in AudioUtil, allow getting the native sample rate for Pulse, each AudioManager is responsible for providing the optimal audio params to achieve the best audio performance, for example, cras can raise the buffer size to reduce CPU consumption without affecting other Linux products.
>
>
> BUG=178142, 137326, 120319
> TEST=media_unittests, content_unittests
>
> Review URL: https://chromiumcodereview.appspot.com/12316131
BUG=180682
TBR=xians@chromium.org
TBR=dalecurtis@chromium.org
Review URL: https://codereview.chromium.org/12440008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@186566 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
GetAudioHardwareSampleRate
GetAudioInputHardwareSampleRate
GetAudioHardwareBufferSize
GetAudioInputHardwareChannelLayout
to AudioManager interfaces:
GetDefaultOutputStreamParameters()
GetDefaultInputStreamParameters(const std::string& device_id)
By doing this, we remove the messy ifdef statements in AudioUtil, allow getting the native sample rate for Pulse, each AudioManager is responsible for providing the optimal audio params to achieve the best audio performance, for example, cras can raise the buffer size to reduce CPU consumption without affecting other Linux products.
BUG=178142,137326,120319
TEST=media_unittests, content_unittests
Review URL: https://chromiumcodereview.appspot.com/12316131
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@186180 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Collapses the Init() method into the constructor since it was always
called immediately anyways and provides a more useful method for
performing initialization on the audio thread.
BUG=153056
TEST=media_unittests continue to work and pass.
Review URL: https://chromiumcodereview.appspot.com/11175066
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@163720 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
round 2.
Review URL: https://chromiumcodereview.appspot.com/10826174
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@150302 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
BUG=115187
TEST=compiles and runs without breaking audio tag; media_unittests, content_unittests
TBR=scherkus,jam
Review URL: https://chromiumcodereview.appspot.com/9968054
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@130288 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
BUG=115187
TEST=compiles and runs without breaking audio tag; media_unittests, content_unittests
Review URL: https://chromiumcodereview.appspot.com/9805001
TBR=vrk@google.com
Review URL: https://chromiumcodereview.appspot.com/9965076
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@130182 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=115187
TEST=compiles and runs without breaking audio tag; media_unittests, content_unittests
Review URL: https://chromiumcodereview.appspot.com/9805001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@130180 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
BUG=
TEST=
Review URL: http://codereview.chromium.org/9816012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@128246 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The destruction of the AudioManager family happens in order of: AudioManager<Platform>, AudioManagerBase, AudioManager.
So before getting into the destruction of AudioManagerBase, we have make sure the audio thread has been stopped before AudioManager<Platform> is gone, otherwise it will end up into unexpected behavior, for example, crash because of pure virtual function.
BUG=117470
TEST=media_unittests, Address Sanitizer
Review URL: http://codereview.chromium.org/9692038
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@126635 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to AudioManagerBase and let all the AudioManagerPlatforms inherit the same implementations.
Also moved the MakeAudioOutputStream() and MakeAudioInputStream() to AudioManagerBase, separate the AUDIO_PCM_LINEAR mode and AUDIO_PCM_LOW_LATENCY mode into two different functions inside the AudioManagerPlatforms. So that the structure is clearer and also easier to deprecate the AUDIO_PCM_LINEAR for the future.
Made the destructor of the AudioManagerPlatforms protected so it can be called by only the AudioManagerBase.
BUG=116064
TEST=media_unittests
Review URL: http://codereview.chromium.org/9570014
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@125389 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This include the following changes:
* The implementation of Start() for ALSA was implemented "asynchronously" on the audio thread.
This isn't necessary since Start() is already called on the audio thread and when it eventually runs, it would block the audio thread anyway.
Also, the OnPlaying() notification could be fired before the stream is actually at the 'playing' state, which is not consistent with other implementations.
* The pulse and alsa output stream classes use the message loop that the AudioManager owns - not a separate pointer.
In practice this only removes a member variable but the message loop being used previously belonged to the AudioManager anyaway.
* Close is now synchronous like it is in other implementations.
* Updated documentation.
This also simplifies the threading model for these classes and they are now (like the other stream classes) for all intents and purposes, single threaded.
Background:
We're working on making more of our tests work across all supported platforms.
We identified this problem with these particular implementations when running tests that previously only ran for other platforms.
Review URL: http://codereview.chromium.org/8930006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@114415 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Unit tests now instantiate their own AudioManager and can choose to
use the default one or provide their own mock implementation without
having to worry about conflicting with the singleton.
The teardown sequence of the AudioManager and its thread has been cleaned
up significantly and I don't think it has been completely tested before as
the audio thread was terminated before all objects that belonged to the
thread had a chance to do cleanup. The AudioManager unit tests do not use
the actual audio thread, so this part seems to have been left out.
In Chrome, the AudioManager instance is now owned by BrowserProcessImpl
and always constructed on the UI thread. This instance is then shared
in the same way that several other 'manager' type objects are shared to
'content' code, via content::ResourceContext. Audio specific classes
do though receive a direct pointer to the AudioManager and are required
to do proper reference counting if they need to hold onto the instance.
I chose to use the ResourceContext rather than direct use of g_browser_process
to avoid requiring another singleton when writing relatively simple tests
that touch the AudioManager.
I added a couple of safeguards to guard against future regressions:
- Not more than one instance of the AudioManager should be created.
- The AudioManager should not be addrefed by its own thread. This
can basically become a circular reference and prevent deterministic
shutdown.
Reviewers: Of course you're free to review everything,
but here's the breakdown in terms of the bare minimum from
the standpoint of "Owners approval". I'm asking Henrik to be the
main reviewer of the entire patch (sorry!).
Henrik: Everything minus the below, but it would be great if you could
take a look at the whole thing, specifically media/audio.
Pawel: I'd like you to take a generic look at this approach.
The key areas as far as the singleton itself goes are in
media/audio/audio_manager[_base].* and
chrome/browser/browser_process*.*
Satish: content/browser/speech/*
media/audio/audio_manager_base.* (new reference counting code)
Andrew: content/browser/renderer_host/media/*
content/renderer/media/webrtc_audio_device_unittest.cc (Owner)
Avi: content/browser/renderer_host/render_process_host_impl.cc
content/browser/resource_context.*
William: chrome/browser/profiles/profile_io_data.cc
chrome/browser/browser_process*.*
Robert: This is basically a heads up. I hope that I didn't break the OpenBSD
implementation, but unfortunately I have no way of knowing for sure.
Shijing: Please take a look at AudioManagerLinux. I replaced the set of
active streams with a simple counter.
BUG=105249
TEST=content_unittests, media_unittests, browser_tests.
Review URL: http://codereview.chromium.org/8818012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@114084 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
BUG=
TEST=
Review URL: http://codereview.chromium.org/8681005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@111448 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
This time without breaking the windows build!
Patch by robert.nagy@gmail.com:
http://codereview.chromium.org/8499029/
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@110629 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
support on OpenBSD.
Patch by robert.nagy@gmail.com:
http://codereview.chromium.org/8499029/
TBR=scherkus@chromium.org
Review URL: http://codereview.chromium.org/8590045
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@110590 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
| |
Patch by robert.nagy@gmail.com:
http://codereview.chromium.org/8499029/
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@110584 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Sync the dummy OpenBSD audio manager and exclude -mssse3 from
cflags on OpenBSD since it's not supported in the used gcc version.
BUG=
TEST=
Review URL: http://codereview.chromium.org/8329024
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@106590 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
active in Chrome.
Adding also missing OVERRIDEs in the affected files.
BUG=97388
TEST=none
Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=105333
Review URL: http://codereview.chromium.org/8208013
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@105337 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to find out if recording is currently active in Chrome.
Adding also missing OVERRIDEs in the affected files.
BUG=97388
TEST=none
Review URL: http://codereview.chromium.org/8208013
TBR=leandrogracia@chromium.org
Review URL: http://codereview.chromium.org/8276008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@105335 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
active in Chrome.
Adding also missing OVERRIDEs in the affected files.
BUG=97388
TEST=none
Review URL: http://codereview.chromium.org/8208013
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@105333 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
CID=13686,13687,13688,13709,13710,13711,13712,13713,13714,13718,13715,13716,
13717,13796,13797,13798,13811,13812,13813,14708,16329
BUG=none
TEST=none
R=vandebo@chromium.org
Review URL: http://codereview.chromium.org/7218031
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@90112 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We were using a mix of both (and sometimes even static functions *inside* anonymous namespaces!) so we decided to stick to using static.
Also moved static/test code into media namespace and removed media:: prefixes.
BUG=none
TEST=compiles
Review URL: http://codereview.chromium.org/6628020
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@77135 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. Removed packet_size parameter from Open().
2. Removed OnClose() from the callback. Now the callback is guaranteed to be called only between Start() and Stop().
3. Added samples_per_packet in the AudioParameters struct.
BUG=39825
TEST=Unittests
Review URL: http://codereview.chromium.org/4661001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65766 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
Compilation on OpenBSD was broken by previous commits in the audio code.
BUG=None
TEST=None
Review URL: http://codereview.chromium.org/3301007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@58276 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
per stream.
TEST=unittests
BUG=39825
Review URL: http://codereview.chromium.org/3185022
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@57392 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
of creating one per stream.
TEST=unittests
BUG=39825
Review URL: http://codereview.chromium.org/3185022
TBR=sergeyu@chromium.org
Review URL: http://codereview.chromium.org/3192017
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@57256 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
per stream.
TEST=unittests
BUG=39825
Review URL: http://codereview.chromium.org/3185022
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@57254 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the WaveIn APIs.
Implementation for other platforms will follow in future patches.
Also includes a unit test.
BUG=none
TEST=no user visible change yet, just adding audio recording backend.
Review URL: http://codereview.chromium.org/2966005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@52292 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
additions.
Renaming audio_output.h to audio_io.h as future patches will add audio recording code to this file.
Also renamed a couple of methods to make it clear that these are for audio playback/output and similar methods will be added for audio capture/recording soon.
BUG=none
TEST=no change in functionality.
Review URL: http://codereview.chromium.org/2962006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@52125 0039d316-1c4b-4281-b951-d872f2087c98
|
|
- FreeBSD has ALSA, add it to media.gyp
Review URL: http://codereview.chromium.org/1301003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@42699 0039d316-1c4b-4281-b951-d872f2087c98
|