| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
TEST=media_unittests
BUG=21574
Several problems in mac audio:
1. AudioQueueEnqueueBuffer doesn't accept empty buffers. But
we often hit buffer underrun with various reasons. In
order to simulate the behavior of Windows that empty
buffer would make the callback be called after a short time,
we write a short buffer of silence.
2. Mac audio doesn't provide pending bytes (unplayed buffer
size in audio buffer). This is now fixed by having a
running counter.
3. After Stop() is called, Start() will take a long time for
the audio packet to be played. It is found that
AudioQueueEnqueueBuffer should be called before
AudioQueueStart otherwise we'll hit this problem of long
delay for start.
Review URL: http://codereview.chromium.org/194112
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26510 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
BUG=20351
A bug found while fixing mac audio. IPCAudioSouce transist to a
wrong state after Play() is called. Resulting to pause having
no effect. This will solve the problem of audio keeps playing
a while after it is paused.
Review URL: http://codereview.chromium.org/193095
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26500 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
All audio hardware properties can be accessed via AudioObjectGetPropertyData,
present since Mac OS X 10.4 ("Tiger").
BUG=20925 sort of
TEST=Builds in all sorts of configurations
Review URL: http://codereview.chromium.org/210009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26478 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
Review URL: http://codereview.chromium.org/205015
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26347 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit r24792.
TBR=estade
Review URL: http://codereview.chromium.org/179028
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24796 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Most of these are classes with virtual methods lacking virtual destructors
or NULL used in non-pointer context.
BUG=none
TEST=app_unittests && base_unittests
--gtest_filter=-ConditionVariableTest.LargeFastTaskTest
patch by Jacob Mandelson <jlmjlm [at] gmail>
http://codereview.chromium.org/171028/show
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24792 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
BUG=19921
TEST=play an video track on linux, AV should be in sync.
Use snd_pcm_delay() to provide the number of unplayed bytes in linux's
audio implementation. This information will correct the sync problem
for linux.
Review URL: http://codereview.chromium.org/173288
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24163 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
BUG=20007
TEST=WinAudioTest.PCMWaveStreamPendingBytes
We used to guess what is in the hardware audio buffer to
perform audio sync. But due the triple buffering and
other platforms has other buffering scheme we need to be
able to know how many bytes are left in the hardware buffer.
We provide this data via AudioCallback::OnMoreData(), so we
can predict when the requested buffer will be played.
Review URL: http://codereview.chromium.org/174243
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24114 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
error on open better.
This should fix the memory leak on stream close by synchronizing the removal
of the audio source callback with the signaling of a close event to both the
audio source, and to the audio manager.
This change also makes it possible to go from kPlaying -> kPlaying because
the audio source callback can be swapped correctly.
Lastly, Open() is made more robust by failing early on an error state.
BUG=19860,18217
TEST=none
Review URL: http://codereview.chromium.org/173168
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23988 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
It will never be disabled anyways and just leaves a block of code open for bitrot.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/171017
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23852 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
BUG=17940
TEST=This vid should not stutter http://fbarchard-v64.ad.corp.google.com/testmatrix/color/color2.mp4
Review URL: http://codereview.chromium.org/174134
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23849 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
BUG=19788
TEST=try playing any mono audio source, should just work!
Review URL: http://codereview.chromium.org/173109
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23846 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Implement Alpha's idea of pausing the device while we queue the first two packets.
- This way we don't risk the chance to enter the callback from two threads at the same time.
TEST=unit test added
BUG=19276
Review URL: http://codereview.chromium.org/173022
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23668 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
AudioRendererHost should use ViewMsg_AudioStreamState to
notify renderer of its state instead of AudioOutputStream::State.
The enum of AudioOutputStream::State is not used anywhere, thus
removed.
TEST=unit_tests --gtest_filter=Audio*
Review URL: http://codereview.chromium.org/165255
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23061 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We should a local reference of the input buffer, so that buffer
gets cleanup after it is out of scope.
Also disabled AudioUtilTest.FoldChannels_s16_benchmark because
it is running too long. It shold be run locally instead of on
the build bots.
TEST=media_unittests --gtest_filter=AudioRendererBaseTest.OneCompleteReadCycle
TBR=scherkus
Review URL: http://codereview.chromium.org/165087
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@22671 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
Changes the threading model from one thread per stream to one shared thread. Also, redoes the alsa reading/buffering logic to assume an asynchronous data source, and respect the different packet sizes. The Alsa device is set to non-blocking now. State transitions are cleaned up, and the threading semantics are reworked. Now linux audio will no longer crash on shutdown, seek, pause, or tab close. This implementation does still leak though. :( The leak will be fixed in another CL.
Review URL: http://codereview.chromium.org/160497
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@22414 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=16026
TEST=play a movie trailer with 5.1 audio. It should sound roughly the same as quicktime.
Review URL: http://codereview.chromium.org/155894
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21613 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=17709
TEST=None
Review URL: http://codereview.chromium.org/159380
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21602 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Re-trying the previous CL. The last change got reverted because of valgrind
failure.
TBR=scherkus
Original CL: http://codereview.chromium.org/155471
Review URL: http://codereview.chromium.org/159167
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21242 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
TBR=scherkus
Review URL: http://codereview.chromium.org/159122
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21154 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
Review URL: http://codereview.chromium.org/155471
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21137 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=16500
TEST=play youtube in different window. play another video with video tag and mute sound and make sure it does not affect youtube.
Review URL: http://codereview.chromium.org/159092
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21091 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
Review URL: http://codereview.chromium.org/155525
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@20823 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Max number of channels (2)
- Bits per sample (64)
- Sampling rate (256kHz)
- Queue audio buffer (64MB x 2)
BUG=none
TEST= WinAudioTest.SanityOnMakeParams
Review URL: http://codereview.chromium.org/151093
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19695 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
BUG: 13287
Review URL: http://codereview.chromium.org/140033
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18882 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
Removed some trailing whitespace as well and fixed some style nits. No code change.
TEST=none
BUG=none
TBR=hclam
Review URL: http://codereview.chromium.org/125225
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18577 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
between the IPC layer and the audio hardware interface.
We have completely moved away from being blocking in
AudioRendererHost.
Since we'll be using PushSource for a longer period
of buffering. It's necessary to have
Play/Pause functionality in the AudioOutputStream,
this is simulated by start/stop the AudioOutputStream
multiple times.
Review URL: http://codereview.chromium.org/114069
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17707 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
It's not the right time to move SineWaveAudioSource to a common
unit test yet since linux doesn't have mock audio stream
implemented.
TBR=cpu, willchan
Review URL: http://codereview.chromium.org/118286
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17691 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
The change actually supports arbitrary write size but
write size greater than read size (packet size) is prohibited
by an explicit check.
Review URL: http://codereview.chromium.org/118170
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17686 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
Review URL: http://codereview.chromium.org/113923
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17040 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- New interface PushAudioOutput for push model source
- New adapter class PushSource which converts from pull model to push model
- A test audio file (made by me using freeware program WavePad)
- A new test
TEST=unit test included.
Review URL: http://codereview.chromium.org/115223
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16825 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
Review URL: http://codereview.chromium.org/115645
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16639 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
TBR=ajwong
Review URL: http://codereview.chromium.org/115641
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16626 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
Review URL: http://codereview.chromium.org/115638
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16622 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
Review URL: http://codereview.chromium.org/115624
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16584 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
responsible for buffering data from the data source, and writing the buffers to the output device. This design blocks while waiting for data to be retrieved from the data source, which can lead to unnecessary buffer underruns in the audio device. This will be solved later after the non-blocking AudioSource interface is written.
Review URL: http://codereview.chromium.org/115276
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16583 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
- Finally audio playback wired
- Takes into account initial buffer fill change of last week
- Two 'can you hear this?' unit tests added
Review URL: http://codereview.chromium.org/92131
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@15017 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
Review URL: http://codereview.chromium.org/92007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@14366 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
- A fix to reported deadlock: don't start the real-time thread until the inital buffers are filled
- A new unitest that uses a slow source, the idea is to try to repro the deadlock
- Implements GetVolume and SetVolume
Review URL: http://codereview.chromium.org/67154
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13856 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
-Fixed leaks (audiomanager singleton, audiostream)
-Moved simple_sources to be common for all platforms
-Added trivial check for sinesource
-Added some logic on the audio callback, not used yet
Review URL: http://codereview.chromium.org/67058
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13713 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. AudioRendererHost should not wait on IO thread.
Calling AudioOutputStream::Start requests some
audio packets by calling IPCAudioSource::OnMoreData,
resulting in a deadlock. I implemented a prefetching
logic to solve this problem, source has to know
how many internal buffers the implementation of
AudioOutputStream is using and prepare the
same amount of packets before calling
AudioOutputStream::Start.
2. When IPCAudioSource::OnMoreData is waiting for
packet to arrive, calling AudioOutputStream::Stop
will result in a deadlock since it expects
OnMoreData to return. Should wake up all waiting
threads before calling AudioOutputStream::Stop.
3. Did some refactoring and move the message handlers
completely into AudioRendererHost, it was clumsy
to call to AudioRendererHost from ResourceMessageFilter.
Also moved all logics of using shared memory for
packet passing, prefetching to IPCAudioSource.
AudioRendererHost is now merely a container that
manages and delegates calls to IPCAudioSource. This
refactoring is helpful because the next step is to
implement standalone IPC channel for audio.
Review URL: http://codereview.chromium.org/57023
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13288 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
- Basic factory support for 16 PCM audio
- Adds PCM audio using Queue Services
- Many functions not implemented, trying to keep CLs to a decent size
- Added two unit tests
Review URL: http://codereview.chromium.org/42494
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12431 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
TBR=agl
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11906 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
| |
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11904 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
Review URL: http://codereview.chromium.org/42155
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11593 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
Normalize end of file newlines in build/ media/ printing/ testing/ and tools/. All files end in a single newline.
Review URL: http://codereview.chromium.org/43082
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11449 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
| |
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@10982 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
break the build.
TBR=cpy
Review URL: http://codereview.chromium.org/27331
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@10701 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
-Current unit tests sufice
Review URL: http://codereview.chromium.org/28036
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@10248 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
renderer
1. Added 4 IPC messages and corresponding handlers for
audio:
- RequestAudioPacket(int stream_id)
Browser process is hungry for audio packet, notify
renderer process to provide more.
- NotifyAudioStreamCreated(int stream_id, SharedMemoryHandler
buffer, int len)
Notify stream created event and provide buffer for
filling in the future.
- NotifyAudioStreamStateChanged(int stream_id, enum state,
nt info)
The internal state of the audio stream has chagned,
notify renderer
process of the change. int info provides additional
information of the
change, e.g. platform specific error code.
- NotifyAudioStreamVolume(int stream_id, double left, double right)
Notify the current volume for the audio stream.
2. Added methods to RenderView for creating audio streams
and delegate audio related requests to browser process with
IPC. Now the registration and bookkeeping of
AudioRendererImpl happens in RenderView (see
audio_renderers_). The reason being that the code is almost
just an base::IDMap that doesn't worth creating a new class.
Review URL: http://codereview.chromium.org/20410
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@10078 0039d316-1c4b-4281-b951-d872f2087c98
|