summaryrefslogtreecommitdiffstats
path: root/media/audio/openbsd
Commit message (Collapse)AuthorAgeFilesLines
* Revert of Revert of Remove the last piece of deprecated synchronous IO code. ↵xians2014-08-281-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (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}
* Revert of Remove the last piece of deprecated synchronous IO code. (patchset ↵tnagel2014-08-271-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | #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}
* Remove the last piece of deprecated synchronous IO code.xians2014-08-271-3/+1
| | | | | | | | | BUG=337096 TEST=bots Review URL: https://codereview.chromium.org/460373002 Cr-Commit-Position: refs/heads/master@{#292132}
* add audio-buffer-size command line flag support to the input audio for all ↵xians@chromium.org2014-05-201-1/+5
| | | | | | | | | | | | | 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
* Reland 153623004: Remove the unified IO code on the browserxians@chromium.org2014-02-132-4/+2
| | | | | | | | | | | | | | 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
* Revert 249790 "Remove the unified IO code on the browser."skobes@google.com2014-02-072-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | 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
* Remove the unified IO code on the browser.xians@chromium.org2014-02-072-4/+2
| | | | | | | | | | | | 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
* Enable platform echo cancellation through the AudioRecord path.ajm@chromium.org2013-12-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Plumb AudioLog support into AudioManager.dalecurtis@chromium.org2013-12-042-5/+6
| | | | | | | | | | | | | | | | 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
* Remove the last vestiges of audio_util.dalecurtis@chromium.org2013-10-011-1/+0
| | | | | | | | | | | | | | | | | - 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
* Add the necessary scaffolding to allow creation of non-default audio output ↵tommi@chromium.org2013-09-032-0/+7
| | | | | | | | | | | | | 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
* Try relanding this CL, the original CL passed the try bots but failed the ↵xians@chromium.org2013-06-032-2/+4
| | | | | | | | | | | | | | | | | | | | 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
* Revert 203686 "Trying relanding this CL, the original CL passed ..."xians@chromium.org2013-06-032-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | > 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
* Trying relanding this CL, the original CL passed the try bots but failed the ↵xians@chromium.org2013-06-032-2/+4
| | | | | | | | | | | | | | | | | | | | 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
* Revert 203427 "Hook up the device selection to the WebAudio live..."justinlin@chromium.org2013-05-312-4/+2
| | | | | | | | | | | | | | | | | | | | | | 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
* Hook up the device selection to the WebAudio live audio.xians@chromium.org2013-05-312-2/+4
| | | | | | | | | | | | | | | | 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
* The proper review is in https://codereview.chromium.org/12310101/.xians@chromium.org2013-03-132-10/+26
| | | | | | | | | | | | | | | | | | | | | | 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
* Revert 187677 "This patch enables pulse as the default IO handli..."sail@chromium.org2013-03-122-26/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* This patch enables pulse as the default IO handling in Chrome.xians@chromium.org2013-03-122-10/+26
| | | | | | | | | | | | | | | | | | | 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
* Reland r186180 after fixing the --audio-buffer-size flag and cras issue.xians@chromium.org2013-03-072-0/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Revert 186180 "Moved AudioUtil static functions:"hshi@chromium.org2013-03-072-43/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | > 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
* Moved AudioUtil static functions:xians@chromium.org2013-03-052-0/+43
| | | | | | | | | | | | | | | | | | | | 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
* Replace AudioManager::Init() with InitializeOnAudioThread().dalecurtis@chromium.org2012-10-232-7/+0
| | | | | | | | | | | | | | 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
* Dead code elimination: scythe.chrome_functions:segment.path %media% edition, ↵fischman@chromium.org2012-08-072-10/+0
| | | | | | | | 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
* Move media/audio files into media namespace (relanding)vrk@google.com2012-04-032-0/+8
| | | | | | | | | | 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
* Revert 130180 - Move media/audio files into media namespacevrk@google.com2012-04-022-8/+0
| | | | | | | | | | | | 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
* Move media/audio files into media namespacevrk@google.com2012-04-022-0/+8
| | | | | | | | | 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
* sync the openbsd audio code with linuxrobert.nagy@gmail.com2012-03-221-4/+0
| | | | | | | | | | 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
* Stopping the audio thread before destroying the AudioManager<Platform>.xians@chromium.org2012-03-141-9/+1
| | | | | | | | | | | | | 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
* Moved the implementations of ReleaseOutputStream() and ReleaseInputStream() ↵xians@chromium.org2012-03-072-56/+54
| | | | | | | | | | | | | | | 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
* Make linux output streams consistent with other output stream implementations.tommi@chromium.org2011-12-141-1/+1
| | | | | | | | | | | | | | | | | | | | | 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
* Remove the AudioManager singleton.tommi@chromium.org2011-12-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* enable the device selection for openbsd too to be in sync with linuxrobert.nagy@gmail.com2011-11-232-3/+3
| | | | | | | | | | 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
* Make pulseaudio available for all posix platforms and add support on OpenBSD.scherkus@chromium.org2011-11-182-13/+94
| | | | | | | | | 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
* Revert 110584 - Make pulseaudio available for all posix platforms and add ↵scherkus@chromium.org2011-11-172-94/+13
| | | | | | | | | | | | 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
* Make pulseaudio available for all posix platforms and add support on OpenBSD.scherkus@chromium.org2011-11-172-13/+94
| | | | | | | 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
* OpenBSD patches for media, split from CR #8275005robert.nagy@gmail.com2011-10-202-15/+3
| | | | | | | | | | | | | 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
* Add a method to the audio manager to find out if recording is currently ↵leandrogracia@chromium.org2011-10-132-7/+14
| | | | | | | | | | | | | | | 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
* Revert 105333: OVERRIDE failures on asan - Add a method to the audio manager ↵erg@google.com2011-10-132-14/+7
| | | | | | | | | | | | | | | | 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
* Add a method to the audio manager to find out if recording is currently ↵leandrogracia@chromium.org2011-10-132-7/+14
| | | | | | | | | | | | | 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
* Coverity: Pass parameters by reference.jhawkins@chromium.org2011-06-222-4/+6
| | | | | | | | | | | | | 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
* Cleaning up src/media to be consistent with static versus anonymous namespaces.scherkus@chromium.org2011-03-071-4/+2
| | | | | | | | | | | | | 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
* Simplified AudioOutputStream interface.sergeyu@chromium.org2010-11-112-4/+2
| | | | | | | | | | | | | 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
* Fixed OpenBSD build.sergeyu@chromium.org2010-09-022-33/+7
| | | | | | | | | | | 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
* Share one thread between all AudioOutputControllers instead of creating one ↵sergeyu@chromium.org2010-08-252-2/+7
| | | | | | | | | | | 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
* Revert 57254 - Share one thread between all AudioOutputControllers instead ↵scherkus@chromium.org2010-08-242-7/+2
| | | | | | | | | | | | | | 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
* Share one thread between all AudioOutputControllers instead of creating one ↵sergeyu@chromium.org2010-08-242-2/+7
| | | | | | | | | | | 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
* Add recording capability to AudioManager, and implemented on windows using ↵satish@chromium.org2010-07-142-0/+20
| | | | | | | | | | | | | 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
* Rename a header and some methods to make way for subsequent audio recording ↵satish@chromium.org2010-07-122-10/+11
| | | | | | | | | | | | | 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
* - OpenBSD media/audio support stubpvalchev@google.com2010-03-262-0/+91
- 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