| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This was the only method that could not be implemented in an async fashion
which is why a couple of implementations cached the volume in SetVolume
in order to implement GetVolume. However, AudioRendererSink::GetVolume is
never used, so I think it's safe to remove it and simplify the implementations
a bit. If/when we need it, we should have a version that supports a callback
or use the RenderCallback interface to provide the currently set volume
asynchronously.
AudioRendererMixerInput is the only class whose GetVolume method is being used
but it's not being used via the AudioRendererSink, so I simply made GetVolume
a class method and not an implementation of AudioRendererSink.
BUG=none
TEST=none
Review URL: https://chromiumcodereview.appspot.com/10703191
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@146731 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes a memory leak and use of uninitialized data.
BUG=none
TEST=valgrind+media_unittests
TBR=scherkus
Review URL: https://chromiumcodereview.appspot.com/10780008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@146722 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
BUG=WK85952
TEST=PipelineTest.TimeUpdateDuringSeek
Review URL: https://chromiumcodereview.appspot.com/10781006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@146721 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes non-standard naming.
BUG=none
TEST=media_unittests
TBR=scherkus
Review URL: https://chromiumcodereview.appspot.com/10786005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@146720 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Plumbs all the relevant bits around. Updates the unit tests to do a
basic resampling sanity check.
Still requires http://codereview.chromium.org/10636036/ before
anything will work on ToT. I'll land that behind a flag later.
BUG=133637
TEST=These unit tests + CL above for manual testing.
Review URL: https://chromiumcodereview.appspot.com/10698066
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@146717 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This CL makes ChunkDemuxer wait until it gets the first OnNewMediaSegment()
signal before notifying the Pipeline that it is initialized. ChunkDemuxer uses
the first media segment start time reported as its |start_time_|, and seeks
all streams to this time. The "first seek" logic is thus removed from
SourceBufferStream.
BUG=132815
TEST=media_unittests, 'bug 5' plays
Review URL: https://chromiumcodereview.appspot.com/10690057
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@146687 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
r145771 changed the implementation of CompositeFilter::host() to no longer check whether host_impl_ was NULL. Even though we're removing this code soon a CHECK()-fail is preferable over a NULL dereference.
BUG=137276
TEST=DrMemory media_unittests
Review URL: https://chromiumcodereview.appspot.com/10703196
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@146676 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Remove IdentityBitstreamConverter which is obsolete.
- Remove FFmpegBitstreamConverter as it's not really used. Currently GpuVideoDecoder is the only place where EnableBitstreamConverter is called, and EnableBitstreamConverter is the only caller of FFmpegBitstreamConverter, but only when decoding mpeg4, whereas GVD only works with h264 ATM.
- Remove BitstreamConverter since after removal of FFmpegBitstreamConverter, we only have one implementation of BitstreamConverter.
- Remove BitstreamConverterTest.
- Rename FFmpegH264BitstreamConverter to FFmpegH264ToAnnexBBitstreamConverter.
- Rename H264BitstreamConverter to H264ToAnnexBBitstreamConverter.
- Move H264ToAnnexBBitstreamConverter from media/base to media/filters.
BUG=none
TEST=media_unittests
Review URL: https://chromiumcodereview.appspot.com/10690140
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@146420 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Introduced the class MockAudioManager that will be used by upcoming speech recognition tests.
- Added interface TestAudioInputController::Delegate, which allows to intercept Record/Close events.
- Added audio_manager_for_tests_ static field in SpeechRecognizer to inject the MockAudioManager during tests.
BUG=116954
TEST=none
Review URL: https://chromiumcodereview.appspot.com/10704154
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@146316 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
appropriately
Adds logic to transfer the waiting-for-next-keyframe state to the split range
if necessary.
BUG=NONE
TEST=media_unittests
Review URL: https://chromiumcodereview.appspot.com/10703125
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@146274 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Wraps the SincResampler for multichannel use. Can't land until after
https://chromiumcodereview.appspot.com/10702050/ lands.
Since the SincResampler unit tests focus on accuracy, the multi channel
resampling tests just ensure the wrapper functions as expected with a
single resampling frequency and a constant fill value.
BUG=133637
TEST=MultiChannelResampler Unittests.
Review URL: https://chromiumcodereview.appspot.com/10701049
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@146254 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
Review URL: https://chromiumcodereview.appspot.com/10736040
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@146250 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a partial port of WebAudio's SincResampler from WebKit formatted and
culled for use by Chrome Media.
We can't directly use the one in WebKit as it's layed under a ton of abstraction
and is tightly coupled with WebKit objects.
Test generates a swept sine wave and calculates the RMS error for common sample
rates (via UMA stats).
MultiChannelResampler and AudioRenderMixer changes to support resampling will
come in later CLs.
The 1000 ft view is that MultiChannelResampler will implement SincResampler::
AudioSourceProvider and AudioRendererMixer will implement a new
MultiChannelResampler::MultiChannelAudioSourceProvider interface.
When resampling is necessary AudioRenderMixer will feed itself into a
MultiChannelResampler instance which will poll data as necessary and feed it
channel by channel into a set of SincResamplers (one for each channel).
We want to resample post-mixing since resampling is a much more expensive
operation.
Original for reference:
http://git.chromium.org/gitweb/?p=external/Webkit.git&a=blob&f=Source/WebCore/platform/audio/SincResampler.cpp
Visual plot of 44100 to 48000 for reference; red line is the resampled signal
and the green line is the reference signal. Ideally only the pure signal (green)
should be seen. Any bit of the resampled signal showing (red) is where the
resampling algorithm is incorrect: http://i.imgur.com/1vsaI.png
BUG=133637
TEST=New unittests.
Review URL: https://chromiumcodereview.appspot.com/10702050
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@146219 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
ignored during overlaps
BUG=NONE
TEST=asan bots are now happy
Review URL: https://chromiumcodereview.appspot.com/10736021
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@146181 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=None
TEST=PipelineIntegrationTest, BasicPlayback_MediaSource
Review URL: https://chromiumcodereview.appspot.com/10701130
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@146127 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
Review URL: https://chromiumcodereview.appspot.com/10701135
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@146076 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
If we call DoSeek() without a demuxer we've clearly got issues as we shouldn't be seeking without a demuxer so crashing is preferable.
BUG=none
TEST=none
TBR=acolwell
Review URL: https://chromiumcodereview.appspot.com/10694125
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@146024 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ignored during overlaps
BUG=136463
TEST=media_unittests,seek-sourceabort-crash.html
Review URL: https://chromiumcodereview.appspot.com/10766021
TBR=vrk@google.com
Review URL: https://chromiumcodereview.appspot.com/10690124
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@145968 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=136463
TEST=media_unittests,seek-sourceabort-crash.html
Review URL: https://chromiumcodereview.appspot.com/10766021
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@145965 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some FFmpeg SIMD functions overread/write slightly to have
more efficient buffer access code. Not adding padding thus
can lead to overreads/bytes (and crashes) when the buffer
pointer points near the end of the frame boundaries.
BUG=136231
Review URL: https://chromiumcodereview.appspot.com/10765015
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@145900 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
SourceBufferStream accordingly
This removes the work to calculate buffers' durations in WebMClusterParser and
modifies SourceBufferStream to no longer need duration information to work. This
allows us to fix several bugs.
BUG=131695,136418
TEST=media_unittests, go/oiedsb no longer needs Abort()s to work
Review URL: https://chromiumcodereview.appspot.com/10692053
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@145839 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Another step towards eliminating the Filter class altogether!
While attempting to refactor AudioRenderer out of Filter I noticed that Filter's default implementations caused Pipeline tests to not set appropriate expectations leading to unexpected gmock warnings. With this change we should be able to continue refactoring with no changes to unit tests.
BUG=108341, 108342
TEST=none
Review URL: https://chromiumcodereview.appspot.com/10749003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@145771 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Also abstract common code in H264BitReader into BitReader for reusing.
Was: https://chromiumcodereview.appspot.com/10710002/
In the submitted patch of the last issue, the media.gyp included a non-existing file. This error hadn't been caught by try but later got caught by the build process and reverted the commit. So I create this issue to submit the fixed patch.
BUG=134445
TEST=BitReaderTest, AACTest
Review URL: https://chromiumcodereview.appspot.com/10753005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@145769 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
They are no longer used and will not be needed in a post-Filter world.
BUG=126069
TEST=none
Review URL: https://chromiumcodereview.appspot.com/10752003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@145715 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
R=acolwell@chromium.org
BUG=108171
Review URL: https://chromiumcodereview.appspot.com/10692117
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@145692 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
BUG=134624,136238
TEST=none
TBR=tommi@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10744002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@145682 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. Parse esds box to get HE AAC config.
2. Send audio config from AAC header to decoder instead of the one embedded in SampleDescription.
3. Convert raw audio data into ADTS before sending to decoder.
4. Abstract general bit stream code from H264BitReader into media::BitReader.
BUG=134445
TEST=BitReaderTest, AACTest
Review URL: https://chromiumcodereview.appspot.com/10710002
TBR=xiaomings@google.com
Review URL: https://chromiumcodereview.appspot.com/10693115
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@145621 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. Parse esds box to get HE AAC config.
2. Send audio config from AAC header to decoder instead of the one embedded in SampleDescription.
3. Convert raw audio data into ADTS before sending to decoder.
4. Abstract general bit stream code from H264BitReader into media::BitReader.
BUG=134445
TEST=BitReaderTest, AACTest
Review URL: https://chromiumcodereview.appspot.com/10710002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@145617 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
synchronous up-to-date device list. This heavily loads the IO thread since the enumeration is done on IO thread.
This patch moves the device thread from VideoCaptureManager to MediaStreamManager, so that audio and video can share one device thread, and also allow running audio device API on this shared device thread.
BUG=132701,130113
TEST=content_unittests
Review URL: https://chromiumcodereview.appspot.com/10662049
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@145584 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
loops simpler.
TEST=Run media_unittests --gtest_filter=*AsyncSocketIoHandlerTest*
Review URL: https://chromiumcodereview.appspot.com/10697069
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@145453 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
CID_COUNT=1
CID=104390
BUG=none
TEST=none
R=gbillock
TBR=vrk
Review URL: https://chromiumcodereview.appspot.com/10702066
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@145207 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
BUG=NONE
TEST=media_unittests
Review URL: https://chromiumcodereview.appspot.com/10673012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@145030 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
Per basictypes.h address-casting is bad! Instead use bit_cast<>.
BUG=none
TEST=BasicPlaybackHashed still passes without hash update.
Review URL: https://chromiumcodereview.appspot.com/10702028
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@144856 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
now nothing except unit tests are plumbed since mixing has poor performance with
the large buffer sizes we're currently using; I.e., for a 140ms clip we attempt
to render the full 170ms buffer, adding 30ms of overhead to the pipeline.
Once another CL introduces resampling we can switch over to the low latency path
for audio and turn on mixing at the same time. Chris also has some other ideas
on how we might fix this prior to introducing resampling.
Design revolves around each renderer creating an AudioRendererMixerInput which
funnels into a common AudioRendererMixer (based on the AudioParameters each
AudioRendererMixerInput is configured with). Each AudioRendererMixer owns a
single AudioDevice which output from each AudioRendererMixerInput is mixed into.
As mentioned above, for the initial landing of this CL the code which creates an
AudioRendererMixerInput in RenderAudioSourceProvider has been disabled. Please
look at https://chromiumcodereview.appspot.com/10636036/ if you're interested in
what this looks like.
BUG=133637
TEST=unit tests. audio_latency_perf. drum machine. manual testing. asan.
Review URL: https://chromiumcodereview.appspot.com/10544130
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@144819 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
presentation timestamps, resulting in incorrect playback. This patch makes the source buffer explicitly reference only decode timestamps as an intermediate step toward making it aware of buffer reordering.
Additionally, FFmpegVideoDecoder will attempt to recover a framerate from the first sample duration it sees if the decoder config has a framerate of zero.
BUG=134262
TEST=SourceBufferStreamTest, manual playback tests
Review URL: https://chromiumcodereview.appspot.com/10669005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@144724 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
The existing code produces undefined behaviour because it attempts to make
multiple modifications to active_queue_ between two sequence points.
Review URL: https://chromiumcodereview.appspot.com/10699022
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@144697 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
The existing code produces undefined behaviour because it attempts to make multiple modifications to active_queue_ between two sequence points.
This generates warnings with -Wsequence-point in some versions of gcc.
Review URL: https://chromiumcodereview.appspot.com/10689009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@144690 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
(round 3).
TEST=none
BUG=none
TBR=jam
Review URL: https://chromiumcodereview.appspot.com/10703018
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@144640 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
BUG=122913
TEST=MP4StreamParserTest
Review URL: https://chromiumcodereview.appspot.com/10656022
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@144618 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
video decoding.
TEST=none
BUG=none
Review URL: https://chromiumcodereview.appspot.com/10678010
TBR=scherkus@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10704014
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@144539 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
BUG=134801
TEST=Manual (non-public media file)
Review URL: https://chromiumcodereview.appspot.com/10689003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@144537 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
TEST=none
BUG=none
Review URL: https://chromiumcodereview.appspot.com/10678010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@144484 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
BUG=134274
TEST=MP4StreamParserTest
Review URL: https://chromiumcodereview.appspot.com/10660005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@144410 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
BUG=None
TEST=All FFmpegDemuxerTest test cases that used to rely on MockReader still pass.
Review URL: https://chromiumcodereview.appspot.com/10687003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@144366 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
BUG=134704
TEST=
TBR=jam@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10668039
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@144272 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
So we can move the metro bits to \src
FACILITY_VISUALCPP is now defined in the sdk
BUG=127799
TEST= it builds
Review URL: https://chromiumcodereview.appspot.com/10656036
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@144121 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For Delegate/Observer-type classes that specify an
interface but do not have any particular lifetime
requirements, make their destructors protected. This is to
allow their interfaces to be implemented safely by
RefCounted types. With public destructors, it's possible to
do "scoped_ptr<Delegate> foo", and then assign a
RefCountedDelegateImpl, which would lead to a double free.
As none of these Delegates actually need public destructors
(ownership of the Delegate* is not transferred during a
function call / class constructor), mark the destructors
protected so that it becomes a compile warning to try to
delete them via the Delegate*.
BUG=123295
TEST=it compiles
Review URL: https://chromiumcodereview.appspot.com/10383262
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@144086 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
BUG=133849
TEST=None
Review URL: https://chromiumcodereview.appspot.com/10661015
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@143794 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
Avoids buffering bar disappearing/reappearing when the bytes are distributed
unevenly throughout the media.
BUG=133567,131444
Review URL: https://chromiumcodereview.appspot.com/10581050
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@143765 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
BUG=133849
TEST=None
Review URL: https://chromiumcodereview.appspot.com/10636011
TBR=acolwell@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10656009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@143736 0039d316-1c4b-4281-b951-d872f2087c98
|