Ddalecurtis@google.comAdd ARM NEON intrinsic optimizations for SincResampler.
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
Fix warnings when compiling with clang TBR=scherkus BUG=143931 Review URL: https://chromiumcodereview.appspot.com/10983004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@158493 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Dead code elimination: scythe.chrome_functions:segment.path %media% edition, round 1. Internal-only site: http://go/videostack/engineering/dead-code-elimination Review URL: https://chromiumcodereview.appspot.com/10837118 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@150129 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Add Mac OS X synchronized audio I/O back-end AudioSynchronizedStream is an implementation of AudioOuputStream for Mac OS X when using an input and output which are *not* unified in the same driver. This requires managing a separate input and output thread for each of the drivers and synchronizing them with a FIFO and varispeed. This synchronization involves two threads, and requires that the FIFO be made thread-safe in the sense that one thread may call AudioFifo::Push() while a second thread calls AudioFifo::Consume(). It is not acceptable to simply require the client to put locks around these calls because they can (and will) be contended (causing glitches) since both threads are real-time audio threads. BUG=none TEST=extensive manual testing on various machines, audio hardware, and input/output sample-rates R=scherkus Review URL: https://chromiumcodereview.appspot.com/10909185 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157251 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Add Mac OS X synchronized audio I/O back-end AudioSynchronizedStream is an implementation of AudioOuputStream for Mac OS X when using an input and output which are *not* unified in the same driver. This requires managing a separate input and output thread for each of the drivers and synchronizing them with a FIFO and varispeed. This synchronization involves two threads, and requires that the FIFO be made thread-safe in the sense that one thread may call AudioFifo::Push() while a second thread calls AudioFifo::Consume(). It is not acceptable to simply require the client to put locks around these calls because they can (and will) be contended (causing glitches) since both threads are real-time audio threads. BUG=none TEST=extensive manual testing on various machines, audio hardware, and input/output sample-rates R=scherkus Review URL: https://chromiumcodereview.appspot.com/10909185 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157251 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Convert WebAudio file handlers to use AudioBus. Lets us remove AudioUtil::DeinterleaveAudioChannel(). Modifies AudioBus to add a new FromInterleavedPartial() function which allows for streaming deinterleave. Also adds supporting method: ZeroFramesPartial(). BUG=114700, 120319 TEST=unittests + WebAudio test page. Review URL: https://chromiumcodereview.appspot.com/10871051 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@154099 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Remove AudioDecoder from the Filter heirarchy. BUG=108339 TEST=none Review URL: https://chromiumcodereview.appspot.com/9325044 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@120718 0039d316-1c4b-4281-b951-d872f2087c98 | 14 年前 | |
Add status parameter to DemuxerStream::ReadCB BUG=122913 TEST=None Review URL: https://chromiumcodereview.appspot.com/10669022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@147108 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Add config change handling to SourceBufferStream & ChunkDemuxer BUG=122913 TEST=None Review URL: https://chromiumcodereview.appspot.com/10696182 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@148563 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
FFmpeg: Add gsm_ms and pcm big endian codecs. Also update corresponding tests. BUG=chromium-os:31955 TEST=Played on linux CrOS build. Review URL: https://chromiumcodereview.appspot.com/10452004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@150154 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Add Mac OS X synchronized audio I/O back-end AudioSynchronizedStream is an implementation of AudioOuputStream for Mac OS X when using an input and output which are *not* unified in the same driver. This requires managing a separate input and output thread for each of the drivers and synchronizing them with a FIFO and varispeed. This synchronization involves two threads, and requires that the FIFO be made thread-safe in the sense that one thread may call AudioFifo::Push() while a second thread calls AudioFifo::Consume(). It is not acceptable to simply require the client to put locks around these calls because they can (and will) be contended (causing glitches) since both threads are real-time audio threads. BUG=none TEST=extensive manual testing on various machines, audio hardware, and input/output sample-rates R=scherkus Review URL: https://chromiumcodereview.appspot.com/10909185 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157251 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Add Mac OS X synchronized audio I/O back-end AudioSynchronizedStream is an implementation of AudioOuputStream for Mac OS X when using an input and output which are *not* unified in the same driver. This requires managing a separate input and output thread for each of the drivers and synchronizing them with a FIFO and varispeed. This synchronization involves two threads, and requires that the FIFO be made thread-safe in the sense that one thread may call AudioFifo::Push() while a second thread calls AudioFifo::Consume(). It is not acceptable to simply require the client to put locks around these calls because they can (and will) be contended (causing glitches) since both threads are real-time audio threads. BUG=none TEST=extensive manual testing on various machines, audio hardware, and input/output sample-rates R=scherkus Review URL: https://chromiumcodereview.appspot.com/10909185 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157251 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Adds media::AudioPullFifo class to Chrome. A FIFO (First In First Out) buffer to handle mismatches in buffer sizes between a provider and consumer. The consumer will pull data from this FIFO. If data is already available in the FIFO, it is provided to the consumer. If insufficient data is available to satisfy the request, the FIFO will ask the provider for more data to fulfill a request. Patch by henrika@chromium.org: http://codereview.chromium.org/10915123/ BUG=none TEST=--gtest_filter=AudioPullFifoTest.* TBR=henrika Review URL: https://chromiumcodereview.appspot.com/10914178 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@155744 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Adds media::AudioPullFifo class to Chrome. A FIFO (First In First Out) buffer to handle mismatches in buffer sizes between a provider and consumer. The consumer will pull data from this FIFO. If data is already available in the FIFO, it is provided to the consumer. If insufficient data is available to satisfy the request, the FIFO will ask the provider for more data to fulfill a request. Patch by henrika@chromium.org: http://codereview.chromium.org/10915123/ BUG=none TEST=--gtest_filter=AudioPullFifoTest.* TBR=henrika Review URL: https://chromiumcodereview.appspot.com/10914178 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@155744 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Adds media::AudioPullFifo class to Chrome. A FIFO (First In First Out) buffer to handle mismatches in buffer sizes between a provider and consumer. The consumer will pull data from this FIFO. If data is already available in the FIFO, it is provided to the consumer. If insufficient data is available to satisfy the request, the FIFO will ask the provider for more data to fulfill a request. Patch by henrika@chromium.org: http://codereview.chromium.org/10915123/ BUG=none TEST=--gtest_filter=AudioPullFifoTest.* TBR=henrika Review URL: https://chromiumcodereview.appspot.com/10914178 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@155744 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Adds media::AudioPullFifo class to Chrome. A FIFO (First In First Out) buffer to handle mismatches in buffer sizes between a provider and consumer. The consumer will pull data from this FIFO. If data is already available in the FIFO, it is provided to the consumer. If insufficient data is available to satisfy the request, the FIFO will ask the provider for more data to fulfill a request. Patch by henrika@chromium.org: http://codereview.chromium.org/10915123/ BUG=none TEST=--gtest_filter=AudioPullFifoTest.* TBR=henrika Review URL: https://chromiumcodereview.appspot.com/10914178 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@155744 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Move VideoRenderer out of Filter heirarchy. As a result the following classes no longer exist: Filter, FilterHost, CompositeFilter. I guess you could say we no longer have filters! BUG=108342,126069 TEST=none Review URL: https://chromiumcodereview.appspot.com/10796074 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@147834 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Replace Pipeline::kEnded state and HasEnded() methods with renderer-specific bools. The kEnded state was used to protect against the case where both renderers executed their ended callbacks at the same time, resulting in two tasks posted to the pipeline message loop but the first task would poll each renderer's HasEnded() method and execute the ended logic before the second task executed. Review URL: https://chromiumcodereview.appspot.com/10834236 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@150689 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Split AudioRendererMixer::VectorFMAC into VectorMath library. Prepare the future home for more optimized vector math routines, specifically FMUL for volume adjustment. Additionally the FMAC operation will be used for browser side mixing as well as channel upmixing and downmixing. BUG=none TEST=unittests. Review URL: https://chromiumcodereview.appspot.com/10868037 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@153122 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Split AudioRendererMixer::VectorFMAC into VectorMath library. Prepare the future home for more optimized vector math routines, specifically FMUL for volume adjustment. Additionally the FMAC operation will be used for browser side mixing as well as channel upmixing and downmixing. BUG=none TEST=unittests. Review URL: https://chromiumcodereview.appspot.com/10868037 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@153122 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Coverity: Initialize member variables. CID_COUNT=12 CID=104349,104361,104373,104374,104399,104420,104421,104422,104466,104476, 104532,104538 BUG=none TEST=none R=groby TBR=brettw,satorux,mnissler Review URL: https://chromiumcodereview.appspot.com/10833006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@148430 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Remove GetVolume from media::AudioRendererSink. 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 | 13 年前 | |
Switch to pcm_low_latency and enable resampling. 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 | 13 年前 | |
Split AudioRendererMixer::VectorFMAC into VectorMath library. Prepare the future home for more optimized vector math routines, specifically FMUL for volume adjustment. Additionally the FMAC operation will be used for browser side mixing as well as channel upmixing and downmixing. BUG=none TEST=unittests. Review URL: https://chromiumcodereview.appspot.com/10868037 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@153122 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Allow audio system to handle synchronized low-latency audio I/O As an important part of WebAudio/WebRTC integration, we need to be able to process and analyse live audio. This change adds the ability to our audio system for handling synchronized audio input and output in the same callback (same thread) which is important for good performance and low-latency. As a part of this change, the audio IPC system now takes an optional |input_channels| argument in the CreateStream() message and associated browser-side code in AudioRendererHost::OnCreateStream(), etc. |input_channels| will be 0 during normal operation of audio output (and no input). But when synchronized audio I/O is needed, then a non-zero value can be passed in here. The |params| passed in represents both the input and output format, particularly the frames_per_buffer() and sample_rate(). AudioRendererSink now has an new InitializeIO() method which will allow the use of synchronized I/O with the |input_channels| argument. AudioRendererSink::RenderCallback now has a new RenderIO() which will be called instead of Render() in the case where a non-zero value is passed in for |input_channels|. BUG=none TEST=none (manual testing on early Mac OS X and Windows audio back-ends) Review URL: https://chromiumcodereview.appspot.com/10830268 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@156234 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
media::BindToLoop() is born, with example uses to slim down WebMediaPlayerProxy. WMPP could use further slimming-down / flamethrowering, but this pass just removes the lowest-hanging fruit, where WMPP is used as a silent trampoline to WMPI on the render thread. Review URL: https://chromiumcodereview.appspot.com/10855188 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@152239 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
media::BindToLoop() is born, with example uses to slim down WebMediaPlayerProxy. WMPP could use further slimming-down / flamethrowering, but this pass just removes the lowest-hanging fruit, where WMPP is used as a silent trampoline to WMPI on the render thread. Review URL: https://chromiumcodereview.appspot.com/10855188 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@152239 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
media::BindToLoop() is born, with example uses to slim down WebMediaPlayerProxy. WMPP could use further slimming-down / flamethrowering, but this pass just removes the lowest-hanging fruit, where WMPP is used as a silent trampoline to WMPI on the render thread. Review URL: https://chromiumcodereview.appspot.com/10855188 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@152239 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Add HE AAC support to ISO BMFF. Was https://chromiumcodereview.appspot.com/10753005/. The original cl also includes abstraction of BitReader class used by H264Parser. It includes bugs that break the H264Parser. In this cl I removed the abstraction and make the BitReader used by H264Parser independent to the one used by esds parser because of: 1. The original cl introduce bugs. 2. Even if we fix the bugs, we may not be able to make the generalized class as fast as the old one while keeping the abstraction. 3. The H264 bit stream use very special syntax on escaping and trailing zero bits, which might not be a good candidate for abstraction. BUG=134445 TEST=BitReaderTest, AACTest Review URL: https://chromiumcodereview.appspot.com/10780026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@147511 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Add HE AAC support to ISO BMFF. Was https://chromiumcodereview.appspot.com/10753005/. The original cl also includes abstraction of BitReader class used by H264Parser. It includes bugs that break the H264Parser. In this cl I removed the abstraction and make the BitReader used by H264Parser independent to the one used by esds parser because of: 1. The original cl introduce bugs. 2. Even if we fix the bugs, we may not be able to make the generalized class as fast as the old one while keeping the abstraction. 3. The H264 bit stream use very special syntax on escaping and trailing zero bits, which might not be a good candidate for abstraction. BUG=134445 TEST=BitReaderTest, AACTest Review URL: https://chromiumcodereview.appspot.com/10780026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@147511 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Add HE AAC support to ISO BMFF. Was https://chromiumcodereview.appspot.com/10753005/. The original cl also includes abstraction of BitReader class used by H264Parser. It includes bugs that break the H264Parser. In this cl I removed the abstraction and make the BitReader used by H264Parser independent to the one used by esds parser because of: 1. The original cl introduce bugs. 2. Even if we fix the bugs, we may not be able to make the generalized class as fast as the old one while keeping the abstraction. 3. The H264 bit stream use very special syntax on escaping and trailing zero bits, which might not be a good candidate for abstraction. BUG=134445 TEST=BitReaderTest, AACTest Review URL: https://chromiumcodereview.appspot.com/10780026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@147511 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Added support for Decode() calls during Reset(). Decode() calls are now queued for later processing when the decoder is in RESETTING state. Also output buffers are queued by OVDA during the Flush() triggered by Reset() for re-use as soon as the Reset is done. BUG=none TEST=ovdatest, gles2, trybots Review URL: http://codereview.chromium.org/7524032 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@94700 0039d316-1c4b-4281-b951-d872f2087c98 | 14 年前 | |
Introducing DecoderBuffer and general Buffer cleanup. FFmpeg expects data to be padded and aligned in a certain way. It's currently possible to do this incorrectly and introduce dangerous issues. I enforce padding and alignment by introducing a new Buffer called DecoderBuffer and forcing DemuxerStream::Read to only accept it for transfer into decoders. DecoderBuffer allocates all memory through av_malloc (which takes care of alignment) with the appropriate padding size (except for Android, which doesn't care about this). Along the way it was necessary to clean up a large smattering of code to replace usage of DataBuffer with DecoderBuffer. I've rolled in several cleanup actions as well: - Moved DecryptConfig from Buffer to DecoderBuffer. - Replaced AVPacketBuffer and av_dup_packet with a DecoderBuffer::CopyFrom. - Fixed a resultant issue with FFmpegBitStreamConverter after removing the av_dup_packet functionality. Removed some unsupported bitstream filters. - Reduce TestDataUtil::ReadTestDataFile() to a single method returning a DecoderBuffer so unit tests will always have safe buffers. - Replace new DataBuffer(0)/new DecoderBuffer(0) w/ DecoderBuffer::CreateEOSBuffer. - Remove extraneous IsEndOfStream check from FFmpegAudioDecoder. BUG=129843 TEST=media_unittests + valgrind, layout tests. Review URL: https://chromiumcodereview.appspot.com/10447035 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@139857 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Introducing DecoderBuffer and general Buffer cleanup. FFmpeg expects data to be padded and aligned in a certain way. It's currently possible to do this incorrectly and introduce dangerous issues. I enforce padding and alignment by introducing a new Buffer called DecoderBuffer and forcing DemuxerStream::Read to only accept it for transfer into decoders. DecoderBuffer allocates all memory through av_malloc (which takes care of alignment) with the appropriate padding size (except for Android, which doesn't care about this). Along the way it was necessary to clean up a large smattering of code to replace usage of DataBuffer with DecoderBuffer. I've rolled in several cleanup actions as well: - Moved DecryptConfig from Buffer to DecoderBuffer. - Replaced AVPacketBuffer and av_dup_packet with a DecoderBuffer::CopyFrom. - Fixed a resultant issue with FFmpegBitStreamConverter after removing the av_dup_packet functionality. Removed some unsupported bitstream filters. - Reduce TestDataUtil::ReadTestDataFile() to a single method returning a DecoderBuffer so unit tests will always have safe buffers. - Replace new DataBuffer(0)/new DecoderBuffer(0) w/ DecoderBuffer::CreateEOSBuffer. - Remove extraneous IsEndOfStream check from FFmpegAudioDecoder. BUG=129843 TEST=media_unittests + valgrind, layout tests. Review URL: https://chromiumcodereview.appspot.com/10447035 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@139857 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Introducing DecoderBuffer and general Buffer cleanup. FFmpeg expects data to be padded and aligned in a certain way. It's currently possible to do this incorrectly and introduce dangerous issues. I enforce padding and alignment by introducing a new Buffer called DecoderBuffer and forcing DemuxerStream::Read to only accept it for transfer into decoders. DecoderBuffer allocates all memory through av_malloc (which takes care of alignment) with the appropriate padding size (except for Android, which doesn't care about this). Along the way it was necessary to clean up a large smattering of code to replace usage of DataBuffer with DecoderBuffer. I've rolled in several cleanup actions as well: - Moved DecryptConfig from Buffer to DecoderBuffer. - Replaced AVPacketBuffer and av_dup_packet with a DecoderBuffer::CopyFrom. - Fixed a resultant issue with FFmpegBitStreamConverter after removing the av_dup_packet functionality. Removed some unsupported bitstream filters. - Reduce TestDataUtil::ReadTestDataFile() to a single method returning a DecoderBuffer so unit tests will always have safe buffers. - Replace new DataBuffer(0)/new DecoderBuffer(0) w/ DecoderBuffer::CreateEOSBuffer. - Remove extraneous IsEndOfStream check from FFmpegAudioDecoder. BUG=129843 TEST=media_unittests + valgrind, layout tests. Review URL: https://chromiumcodereview.appspot.com/10447035 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@139857 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Revert 115229 - Revert 115214 (caused media_unittests failure in FFmpegGlueTest, suspiciously immediately after the code modified in this test.) FFmpegGlueTest failure was a flake. Fix ChunkDemuxer seeks that occur during a partially parsed cluster. BUG=104160 TEST=ChunkDemuxerTest.TestSeekWhileParsingCluster, WebMParserTest.TestReset Review URL: http://codereview.chromium.org/9010001 TBR=acolwell@chromium.org Review URL: http://codereview.chromium.org/8989041 TBR=dmazzoni@chromium.org Review URL: http://codereview.chromium.org/9019020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@115360 0039d316-1c4b-4281-b951-d872f2087c98 | 14 年前 | |
Add config change handling to SourceBufferStream & ChunkDemuxer BUG=122913 TEST=None Review URL: https://chromiumcodereview.appspot.com/10696182 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@148563 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Introduce shared_memory_support media target for PPAPI. Allows PPAPI to directly utilize shared memory utility code instead of duplicating it and CHECK'ing for equivalency. Required to eventually convert PPAPI to using an AudioBus and floats in PPB_Audio_Shared::Run(). http://crbug.com/114700 BUG=123203 TEST=unittests Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=152406 Review URL: https://chromiumcodereview.appspot.com/10826296 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@153262 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Add UMA reporting for audio hardware parameters. Records bits per channel, channel layout, and sample rate. BUG=147572 TEST=build/run Review URL: https://chromiumcodereview.appspot.com/10914203 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@156296 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Update media duration if data is appended after the previous duration BUG=139044 TEST=media_unittests Review URL: https://chromiumcodereview.appspot.com/10800041 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@149651 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Move VideoRenderer out of Filter heirarchy. As a result the following classes no longer exist: Filter, FilterHost, CompositeFilter. I guess you could say we no longer have filters! BUG=108342,126069 TEST=none Review URL: https://chromiumcodereview.appspot.com/10796074 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@147834 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Fix media timeline so that thumb never exceeds buffered data Caps PipelineImpl's current time to the time of the end of the last frame buffered so that the thumb no longer continues progress when stalled. BUG=99915 TEST=Playing video with limited bandwidth. Review URL: http://codereview.chromium.org/9155003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@120151 0039d316-1c4b-4281-b951-d872f2087c98 | 14 年前 | |
Dead code elimination: scythe.chrome_functions:segment.path %media% edition, round 1. Internal-only site: http://go/videostack/engineering/dead-code-elimination Review URL: https://chromiumcodereview.appspot.com/10837118 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@150129 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Dead code elimination: scythe.chrome_functions:segment.path %media% edition, round 1. Internal-only site: http://go/videostack/engineering/dead-code-elimination Review URL: https://chromiumcodereview.appspot.com/10837118 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@150129 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Replace size_t with int in a few media classes. This addressed TODOs in DataSource::Read() and AudioRendererAlgorithmBase, which led to converting Buffer and SeekableBuffer as well. Review URL: https://chromiumcodereview.appspot.com/9854031 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@129140 0039d316-1c4b-4281-b951-d872f2087c98 | 14 年前 | |
Replace size_t with int in a few media classes. This addressed TODOs in DataSource::Read() and AudioRendererAlgorithmBase, which led to converting Buffer and SeekableBuffer as well. Review URL: https://chromiumcodereview.appspot.com/9854031 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@129140 0039d316-1c4b-4281-b951-d872f2087c98 | 14 年前 | |
RefCounted types should not have public destructors, delegate cleanup 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 | 13 年前 | |
Replace av_malloc with AlignedAlloc for memory allocation in DecoderBuffer. BUG=150920,145551 TEST=media_unittests Review URL: https://chromiumcodereview.appspot.com/10949029 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157836 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Replace av_malloc with AlignedAlloc for memory allocation in DecoderBuffer. BUG=150920,145551 TEST=media_unittests Review URL: https://chromiumcodereview.appspot.com/10949029 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157836 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Replace av_malloc with AlignedAlloc for memory allocation in DecoderBuffer. BUG=150920,145551 TEST=media_unittests Review URL: https://chromiumcodereview.appspot.com/10949029 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157836 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
We are removing checksum/HMAC in WebM spec for encrypted content. xhwang's CL http://codereview.chromium.org/10918276 has been merged into this one. 10918276 CL updates the CDM interface, ClearKeyCdm, CdmWrapper and PPAPI code to reflect this change. - Remove checksum from DecryptConfig. - Remove HMAC from AesDecryptor. - Update AesDecryptorTest as all decrypts will not fail but the data checks will. - Remove FakeCheckSum from ffmpeg_video_decoder_unittest. - Remove HMAC from WebMClusterParser. - Remove checksum from ppapi_plugin_instance. BUG=150014 TEST=All media_unittests pass. TBR=dmichael Review URL: https://chromiumcodereview.appspot.com/10917308 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157322 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
We are removing checksum/HMAC in WebM spec for encrypted content. xhwang's CL http://codereview.chromium.org/10918276 has been merged into this one. 10918276 CL updates the CDM interface, ClearKeyCdm, CdmWrapper and PPAPI code to reflect this change. - Remove checksum from DecryptConfig. - Remove HMAC from AesDecryptor. - Update AesDecryptorTest as all decrypts will not fail but the data checks will. - Remove FakeCheckSum from ffmpeg_video_decoder_unittest. - Remove HMAC from WebMClusterParser. - Remove checksum from ppapi_plugin_instance. BUG=150014 TEST=All media_unittests pass. TBR=dmichael Review URL: https://chromiumcodereview.appspot.com/10917308 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157322 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Call Decryptor::Stop() in FFmpegVideoDecoder::Reset(). To avoid freeze when user trying to seek() when a DecrptCB is pending. It also fix an issue that the stop_cb isn't fired when FFmpegVideoDecoder::Stop() is called when a DecryptCB is pending. BUG=151708 TEST=added new unittest to catch this Review URL: https://chromiumcodereview.appspot.com/10964055 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@158457 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Add Decryptor interface. This is in preparation for the ProxyDecryptor and PpapiDecryptor. BUG=123260 TEST=media_unittests, media layout tests Review URL: https://chromiumcodereview.appspot.com/10539150 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@143030 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Move Demuxer::set_host() to Initialize(). BUG=111585 Review URL: https://chromiumcodereview.appspot.com/9968117 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@130842 0039d316-1c4b-4281-b951-d872f2087c98 | 14 年前 | |
Dead code elimination: scythe.chrome_functions:segment.path %media% edition, round 1. Internal-only site: http://go/videostack/engineering/dead-code-elimination Review URL: https://chromiumcodereview.appspot.com/10837118 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@150129 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Remove DemuxerStream::GetAVStream() once and for all. We now use AudioDecoderConfig and VideoDecoderConfig to pass decoder initialization information. Review URL: http://codereview.chromium.org/8341033 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@107494 0039d316-1c4b-4281-b951-d872f2087c98 | 14 年前 | |
Cap sourceBuffered() on duration and truncate duration on EoS Adds logic + test to truncate the duration on Media Source streams when EndOfStream is signalled. Also adds some logic to make sure buffered streams never exceed the reported duration. BUG=139899 Review URL: https://chromiumcodereview.appspot.com/10829108 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@149702 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
hash code cleanup - copy seed to local and use array indexing. 1.483 ms for 720p vs 2.225 ms for old code. BUG=none TEST=none Review URL: https://chromiumcodereview.appspot.com/10052036 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@131901 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Create media.dll / libmedia.so. This is a re-attempt at landing http://codereview.chromium.org/7572040, now with a DEPS roll to pick up the changes made to ffmpeg by http://codereview.chromium.org/7778004/ so that media_unittests run properly on Linux. TBR=fischman Review URL: http://codereview.chromium.org/7775004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@98600 0039d316-1c4b-4281-b951-d872f2087c98 | 14 年前 | |
DJB2 Hash for applications where high speed hash or checksum values are needed. BUG=21126 TEST=djb2_unittest.cc has a quick test. will replace versions in media unittests and media_bench in future. Review URL: http://codereview.chromium.org/193028 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28532 0039d316-1c4b-4281-b951-d872f2087c98 | 16 年前 | |
Switch AudioRenderSink::Callback to use AudioBus. As titled, switches everything over to using the AudioBus class instead of const std::vector<float*>. Allows removal of lots of crufty allocations and memsets. BUG=114700 TEST=unit tests, layout tests, try bots. Nothing should change. Review URL: https://chromiumcodereview.appspot.com/10823175 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@150906 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Switch AudioRenderSink::Callback to use AudioBus. As titled, switches everything over to using the AudioBus class instead of const std::vector<float*>. Allows removal of lots of crufty allocations and memsets. BUG=114700 TEST=unit tests, layout tests, try bots. Nothing should change. Review URL: https://chromiumcodereview.appspot.com/10823175 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@150906 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Move VideoDecoder initialization into VideoRendererBase to simplify implementing codec config changes during playback. BUG=141533 TEST=Existing PipelineTest.*, VideoRendererBaseTest.* Review URL: https://chromiumcodereview.appspot.com/10836167 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@151132 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Move VideoDecoder initialization into VideoRendererBase to simplify implementing codec config changes during playback. BUG=141533 TEST=Existing PipelineTest.*, VideoRendererBaseTest.* Review URL: https://chromiumcodereview.appspot.com/10836167 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@151132 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Move VideoDecoder initialization into VideoRendererBase to simplify implementing codec config changes during playback. BUG=141533 TEST=Existing PipelineTest.*, VideoRendererBaseTest.* Review URL: https://chromiumcodereview.appspot.com/10836167 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@151132 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Switch OnMoreData() to use AudioBus. As titled, with this change we're now piping float data around the pipeline from end to end. This change is in preparation for browser side channel remixing and resampling. As a consequence of this change the shared memory now represents the contents of an AudioBus object, which is essentially audio data in a float planar format. BUG=114700 TEST=Should be no audible change. Ran all existing tests. Compiled ran WebAudio/HTML5/WebRTC on all platforms and PPAPI on Linux. Review URL: https://chromiumcodereview.appspot.com/10832285 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@154951 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Dead code elimination: scythe.chrome_functions:segment.path %media% edition, round 1. Internal-only site: http://go/videostack/engineering/dead-code-elimination Review URL: https://chromiumcodereview.appspot.com/10837118 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@150129 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Remove #pragma once from media Review URL: https://chromiumcodereview.appspot.com/10701135 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@146076 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Rewrite media::Pipeline state transition machinery and simplify shutdown. Shutdown is now a single call to Stop() and is called regardless of the current state of pending operations. BUG=110228 Review URL: https://chromiumcodereview.appspot.com/10837206 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@156011 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Rewrite media::Pipeline state transition machinery and simplify shutdown. Shutdown is now a single call to Stop() and is called regardless of the current state of pending operations. BUG=110228 Review URL: https://chromiumcodereview.appspot.com/10837206 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@156011 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Replace Pipeline::kEnded state and HasEnded() methods with renderer-specific bools. The kEnded state was used to protect against the case where both renderers executed their ended callbacks at the same time, resulting in two tasks posted to the pipeline message loop but the first task would poll each renderer's HasEnded() method and execute the ended logic before the second task executed. Review URL: https://chromiumcodereview.appspot.com/10834236 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@150689 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Dead code elimination: scythe.chrome_functions:segment.path %media% edition, round 1. Internal-only site: http://go/videostack/engineering/dead-code-elimination Review URL: https://chromiumcodereview.appspot.com/10837118 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@150129 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Build supported media targets on iOS. Makes the changes required to get media and media_unittests to build successfully for iOS, building only the limited set of files that iOS requires. BUG=None Review URL: https://chromiumcodereview.appspot.com/10919092 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@154996 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Flip AudioOutputResampler to on by default. BUG=147572 TEST=none Review URL: https://chromiumcodereview.appspot.com/10928147 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@156803 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Flip AudioOutputResampler to on by default. BUG=147572 TEST=none Review URL: https://chromiumcodereview.appspot.com/10928147 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@156803 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Dead code elimination: scythe.chrome_functions:segment.path %media% edition, round 1. Internal-only site: http://go/videostack/engineering/dead-code-elimination Review URL: https://chromiumcodereview.appspot.com/10837118 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@150129 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Combine audio decoding and video decoding onto a single thread. Our use of multithreaded video decoding results in a video decoding thread that is idle most of the time. Instead of being idle it can be doing real work like decoding audio. The end result is one less thread created per media element. BUG=61293 TBR=brettw Review URL: https://chromiumcodereview.appspot.com/10915091 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@155179 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Combine audio decoding and video decoding onto a single thread. Our use of multithreaded video decoding results in a video decoding thread that is idle most of the time. Instead of being idle it can be doing real work like decoding audio. The end result is one less thread created per media element. BUG=61293 TBR=brettw Review URL: https://chromiumcodereview.appspot.com/10915091 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@155179 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Switch to pcm_low_latency and enable resampling. 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 | 13 年前 | |
Dead code elimination: scythe.chrome_functions:segment.path %media% edition, round 1. Internal-only site: http://go/videostack/engineering/dead-code-elimination Review URL: https://chromiumcodereview.appspot.com/10837118 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@150129 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
RefCounted types should not have public destructors, media/ and gpu/ edition BUG=123295 TEST=none Review URL: https://chromiumcodereview.appspot.com/10067035 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@137966 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
RefCounted types should not have public destructors, media/ and gpu/ edition BUG=123295 TEST=none Review URL: https://chromiumcodereview.appspot.com/10067035 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@137966 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Removing DataSource from Filter hierarchy and refactoring FilterHost into DemuxerHost & DataSourceHost. Over the last year, several refactorings have caused DataSource to have almost nothing in common with the Filter interface. This change removes it from the Filter class hierarchy and splits up the FilterHost interface so that DataSource, Demuxer, and Filter have their own host interfaces. Splitting FilterHost improves encapsulation and makes it easier to reason about which host methods are required by different parts of the code. BUG= TEST=media_unittests Review URL: http://codereview.chromium.org/8936014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@114819 0039d316-1c4b-4281-b951-d872f2087c98 | 14 年前 | |
Ensure media's buffered ranges always have a range that includes currentTime. 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 | 13 年前 | |
Removing DataSource from Filter hierarchy and refactoring FilterHost into DemuxerHost & DataSourceHost. Over the last year, several refactorings have caused DataSource to have almost nothing in common with the Filter interface. This change removes it from the Filter class hierarchy and splits up the FilterHost interface so that DataSource, Demuxer, and Filter have their own host interfaces. Splitting FilterHost improves encapsulation and makes it easier to reason about which host methods are required by different parts of the code. BUG= TEST=media_unittests Review URL: http://codereview.chromium.org/8936014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@114819 0039d316-1c4b-4281-b951-d872f2087c98 | 14 年前 | |
Ensure media's buffered ranges always have a range that includes currentTime. 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 | 13 年前 | |
Move VideoDecoder initialization into VideoRendererBase to simplify implementing codec config changes during playback. BUG=141533 TEST=Existing PipelineTest.*, VideoRendererBaseTest.* Review URL: https://chromiumcodereview.appspot.com/10836167 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@151132 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Call Decryptor::Stop() in FFmpegVideoDecoder::Reset(). To avoid freeze when user trying to seek() when a DecrptCB is pending. It also fix an issue that the stop_cb isn't fired when FFmpegVideoDecoder::Stop() is called when a DecryptCB is pending. BUG=151708 TEST=added new unittest to catch this Review URL: https://chromiumcodereview.appspot.com/10964055 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@158457 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
As titled! AudioOutputResampler is a single stream output resampler which uses the existing AudioOutputDispatcherImpl to handle the heavy lifting. It intercepts the AudioSourceCallback provided during OpenStream() and replaces it with a call to itself. An AudioFifo object is used to ensure we interface with the renderer and downstream components using the same buffer size they were configured with. A MultiChannelResampler object interfaces with a provided callback method which pulls data from the AudioFifo if available and otherwise retrieves more data from the client (using the buffer size the client expects). The pending bytes value is scaled according to the input / output sample rate and bits per channel values. Outstanding data is tracked between OnMoreData() calls in order to provide the client with an accurate delay estimate. Feature is behind the "--enable-audio-output-resampler" for a/b testing. Will be removed from behind the flag after tuning and functionality can be verified by the Pepper Flash team. BUG=147572 TEST=PepperFlash + 192kHz->44kHz, 48kHz->44kHz, 44kHz->96kHz. Manual testing by various parties. Review URL: https://chromiumcodereview.appspot.com/10918098 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@155968 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
As titled! AudioOutputResampler is a single stream output resampler which uses the existing AudioOutputDispatcherImpl to handle the heavy lifting. It intercepts the AudioSourceCallback provided during OpenStream() and replaces it with a call to itself. An AudioFifo object is used to ensure we interface with the renderer and downstream components using the same buffer size they were configured with. A MultiChannelResampler object interfaces with a provided callback method which pulls data from the AudioFifo if available and otherwise retrieves more data from the client (using the buffer size the client expects). The pending bytes value is scaled according to the input / output sample rate and bits per channel values. Outstanding data is tracked between OnMoreData() calls in order to provide the client with an accurate delay estimate. Feature is behind the "--enable-audio-output-resampler" for a/b testing. Will be removed from behind the flag after tuning and functionality can be verified by the Pepper Flash team. BUG=147572 TEST=PepperFlash + 192kHz->44kHz, 48kHz->44kHz, 44kHz->96kHz. Manual testing by various parties. Review URL: https://chromiumcodereview.appspot.com/10918098 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@155968 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
As titled! AudioOutputResampler is a single stream output resampler which uses the existing AudioOutputDispatcherImpl to handle the heavy lifting. It intercepts the AudioSourceCallback provided during OpenStream() and replaces it with a call to itself. An AudioFifo object is used to ensure we interface with the renderer and downstream components using the same buffer size they were configured with. A MultiChannelResampler object interfaces with a provided callback method which pulls data from the AudioFifo if available and otherwise retrieves more data from the client (using the buffer size the client expects). The pending bytes value is scaled according to the input / output sample rate and bits per channel values. Outstanding data is tracked between OnMoreData() calls in order to provide the client with an accurate delay estimate. Feature is behind the "--enable-audio-output-resampler" for a/b testing. Will be removed from behind the flag after tuning and functionality can be verified by the Pepper Flash team. BUG=147572 TEST=PepperFlash + 192kHz->44kHz, 48kHz->44kHz, 44kHz->96kHz. Manual testing by various parties. Review URL: https://chromiumcodereview.appspot.com/10918098 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@155968 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Adjust tsan suppressions for media::Pipeline due to r156011. BUG=137973 TBR=timurrrr Review URL: https://codereview.chromium.org/10907213 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@156540 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Remove VideoDecoder::PrepareForShutdownHack() and friends. As of r156011 the pause/flush/stop shutdown dance is no more. Now that Pipeline immediately calls Stop() during teardown we can remove a pile of hacks that were used to signal that teardown was starting. BUG=110228 Review URL: https://chromiumcodereview.appspot.com/10918172 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@156525 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Add UMA reporting for GpuVideoDecoder::Initialize status. Review URL: https://chromiumcodereview.appspot.com/10582026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@143102 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Rewrite media::Pipeline state transition machinery and simplify shutdown. Shutdown is now a single call to Stop() and is called regardless of the current state of pending operations. BUG=110228 Review URL: https://chromiumcodereview.appspot.com/10837206 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@156011 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Rewrite media::Pipeline state transition machinery and simplify shutdown. Shutdown is now a single call to Stop() and is called regardless of the current state of pending operations. BUG=110228 Review URL: https://chromiumcodereview.appspot.com/10837206 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@156011 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Ensure media's buffered ranges always have a range that includes currentTime. 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 | 13 年前 | |
Cap sourceBuffered() on duration and truncate duration on EoS Adds logic + test to truncate the duration on Media Source streams when EndOfStream is signalled. Also adds some logic to make sure buffered streams never exceed the reported duration. BUG=139899 Review URL: https://chromiumcodereview.appspot.com/10829108 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@149702 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Fix ChunkDemuxer so it properly outputs buffered ranges. BUG=133042 TEST=None. Verified manually by a simple test page that appends some data and then checks the buffered attribute. I will convert this to a LayoutTest soon. Review URL: https://chromiumcodereview.appspot.com/10558011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@143106 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Add MainHook to media unittests. MainHooks are in particular used on iOS to prevent the system from killing the test application at startup. See https://chromiumcodereview.appspot.com/10690161/ for more context. BUG=b/6754065 Review URL: https://chromiumcodereview.appspot.com/10915061 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@154946 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
media::SeekableBuffer should use kNoTimestamp() instead of zero. I noticed this while debugging bug 120396 that the reported time remained zero even after appending the initial audio buffer that has a timestamp of zero. BUG=none TEST=none Review URL: https://chromiumcodereview.appspot.com/10342005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@135050 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Replace size_t with int in a few media classes. This addressed TODOs in DataSource::Read() and AudioRendererAlgorithmBase, which led to converting Buffer and SeekableBuffer as well. Review URL: https://chromiumcodereview.appspot.com/9854031 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@129140 0039d316-1c4b-4281-b951-d872f2087c98 | 14 年前 | |
media::SeekableBuffer should use kNoTimestamp() instead of zero. I noticed this while debugging bug 120396 that the reported time remained zero even after appending the initial audio buffer that has a timestamp of zero. BUG=none TEST=none Review URL: https://chromiumcodereview.appspot.com/10342005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@135050 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Rewrite media::Pipeline state transition machinery and simplify shutdown. Shutdown is now a single call to Stop() and is called regardless of the current state of pending operations. BUG=110228 Review URL: https://chromiumcodereview.appspot.com/10837206 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@156011 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Replace RunInSeries() and RunInParallel() with SerialRunner helper class. The biggest improvement here is that early termination of the callback series is accomplished by deleting the object. BUG=138583 Review URL: https://chromiumcodereview.appspot.com/10830146 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@149951 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Add ARM NEON intrinsic optimizations for SincResampler. On an exynos board these yielded an ~2.3x speedup: Benchmarking 50000000 iterations: Convolve_C took 5682.71ms. Convolve_NEON(unaligned) took 2451.18ms; which is 2.32x faster than Convolve_C. Convolve_NEON (aligned) took 2397.01ms; which is 2.37x faster than Convolve_C and 1.02x faster than Convolve_NEON (unaligned). BUG=none TEST=try bot, fischman. Review URL: https://codereview.chromium.org/10960023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@158870 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Add ARM NEON intrinsic optimizations for SincResampler. On an exynos board these yielded an ~2.3x speedup: Benchmarking 50000000 iterations: Convolve_C took 5682.71ms. Convolve_NEON(unaligned) took 2451.18ms; which is 2.32x faster than Convolve_C. Convolve_NEON (aligned) took 2397.01ms; which is 2.37x faster than Convolve_C and 1.02x faster than Convolve_NEON (unaligned). BUG=none TEST=try bot, fischman. Review URL: https://codereview.chromium.org/10960023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@158870 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Add ARM NEON intrinsic optimizations for SincResampler. On an exynos board these yielded an ~2.3x speedup: Benchmarking 50000000 iterations: Convolve_C took 5682.71ms. Convolve_NEON(unaligned) took 2451.18ms; which is 2.32x faster than Convolve_C. Convolve_NEON (aligned) took 2397.01ms; which is 2.37x faster than Convolve_C and 1.02x faster than Convolve_NEON (unaligned). BUG=none TEST=try bot, fischman. Review URL: https://codereview.chromium.org/10960023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@158870 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Replace StreamParserHost interface with callbacks. BUG=122909 TEST=Existing ChunkDemuxer tests cover this change. Review URL: http://codereview.chromium.org/10134066 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@134020 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Chrome-side implementation of media source timestamp offset Adds functionality to signal an offset to be applied to the buffers in ChunkDemuxer. Is not triggerable from Chrome yet. BUG=139044 TEST=media_unittests Review URL: https://chromiumcodereview.appspot.com/10803019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@148810 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Add config change handling to SourceBufferStream & ChunkDemuxer BUG=122913 TEST=None Review URL: https://chromiumcodereview.appspot.com/10696182 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@148563 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Add config change handling to SourceBufferStream & ChunkDemuxer BUG=122913 TEST=None Review URL: https://chromiumcodereview.appspot.com/10696182 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@148563 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Introducing DecoderBuffer and general Buffer cleanup. FFmpeg expects data to be padded and aligned in a certain way. It's currently possible to do this incorrectly and introduce dangerous issues. I enforce padding and alignment by introducing a new Buffer called DecoderBuffer and forcing DemuxerStream::Read to only accept it for transfer into decoders. DecoderBuffer allocates all memory through av_malloc (which takes care of alignment) with the appropriate padding size (except for Android, which doesn't care about this). Along the way it was necessary to clean up a large smattering of code to replace usage of DataBuffer with DecoderBuffer. I've rolled in several cleanup actions as well: - Moved DecryptConfig from Buffer to DecoderBuffer. - Replaced AVPacketBuffer and av_dup_packet with a DecoderBuffer::CopyFrom. - Fixed a resultant issue with FFmpegBitStreamConverter after removing the av_dup_packet functionality. Removed some unsupported bitstream filters. - Reduce TestDataUtil::ReadTestDataFile() to a single method returning a DecoderBuffer so unit tests will always have safe buffers. - Replace new DataBuffer(0)/new DecoderBuffer(0) w/ DecoderBuffer::CreateEOSBuffer. - Remove extraneous IsEndOfStream check from FFmpegAudioDecoder. BUG=129843 TEST=media_unittests + valgrind, layout tests. Review URL: https://chromiumcodereview.appspot.com/10447035 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@139857 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Introducing DecoderBuffer and general Buffer cleanup. FFmpeg expects data to be padded and aligned in a certain way. It's currently possible to do this incorrectly and introduce dangerous issues. I enforce padding and alignment by introducing a new Buffer called DecoderBuffer and forcing DemuxerStream::Read to only accept it for transfer into decoders. DecoderBuffer allocates all memory through av_malloc (which takes care of alignment) with the appropriate padding size (except for Android, which doesn't care about this). Along the way it was necessary to clean up a large smattering of code to replace usage of DataBuffer with DecoderBuffer. I've rolled in several cleanup actions as well: - Moved DecryptConfig from Buffer to DecoderBuffer. - Replaced AVPacketBuffer and av_dup_packet with a DecoderBuffer::CopyFrom. - Fixed a resultant issue with FFmpegBitStreamConverter after removing the av_dup_packet functionality. Removed some unsupported bitstream filters. - Reduce TestDataUtil::ReadTestDataFile() to a single method returning a DecoderBuffer so unit tests will always have safe buffers. - Replace new DataBuffer(0)/new DecoderBuffer(0) w/ DecoderBuffer::CreateEOSBuffer. - Remove extraneous IsEndOfStream check from FFmpegAudioDecoder. BUG=129843 TEST=media_unittests + valgrind, layout tests. Review URL: https://chromiumcodereview.appspot.com/10447035 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@139857 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Split AudioRendererMixer::VectorFMAC into VectorMath library. Prepare the future home for more optimized vector math routines, specifically FMUL for volume adjustment. Additionally the FMAC operation will be used for browser side mixing as well as channel upmixing and downmixing. BUG=none TEST=unittests. Review URL: https://chromiumcodereview.appspot.com/10868037 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@153122 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Split AudioRendererMixer::VectorFMAC into VectorMath library. Prepare the future home for more optimized vector math routines, specifically FMUL for volume adjustment. Additionally the FMAC operation will be used for browser side mixing as well as channel upmixing and downmixing. BUG=none TEST=unittests. Review URL: https://chromiumcodereview.appspot.com/10868037 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@153122 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Split AudioRendererMixer::VectorFMAC into VectorMath library. Prepare the future home for more optimized vector math routines, specifically FMUL for volume adjustment. Additionally the FMAC operation will be used for browser side mixing as well as channel upmixing and downmixing. BUG=none TEST=unittests. Review URL: https://chromiumcodereview.appspot.com/10868037 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@153122 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Split AudioRendererMixer::VectorFMAC into VectorMath library. Prepare the future home for more optimized vector math routines, specifically FMUL for volume adjustment. Additionally the FMAC operation will be used for browser side mixing as well as channel upmixing and downmixing. BUG=none TEST=unittests. Review URL: https://chromiumcodereview.appspot.com/10868037 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@153122 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Remove VideoDecoder::PrepareForShutdownHack() and friends. As of r156011 the pause/flush/stop shutdown dance is no more. Now that Pipeline immediately calls Stop() during teardown we can remove a pile of hacks that were used to signal that teardown was starting. BUG=110228 Review URL: https://chromiumcodereview.appspot.com/10918172 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@156525 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Remove VideoDecoder::PrepareForShutdownHack() and friends. As of r156011 the pause/flush/stop shutdown dance is no more. Now that Pipeline immediately calls Stop() during teardown we can remove a pile of hacks that were used to signal that teardown was starting. BUG=110228 Review URL: https://chromiumcodereview.appspot.com/10918172 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@156525 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
[Coverity] Fix uninitialized member CID=106121 R=scherkus@chromium.org BUG=none Review URL: https://chromiumcodereview.appspot.com/10948052 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157689 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Add is_encrypted() in VideoDecoderConfig. This is needed so that decoders can check if the video stream is encrypted or not and decide if it can support decrypting and/or decodeing the stream. BUG=141784 TEST=media_unittest, encrypted media demo. Review URL: https://chromiumcodereview.appspot.com/10910293 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157324 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Remove VideoDecoder::natural_size() & added VideoFrame::natural_size(). BUG=122913 Review URL: https://chromiumcodereview.appspot.com/10824141 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@149728 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Remove VideoDecoder::natural_size() & added VideoFrame::natural_size(). BUG=122913 Review URL: https://chromiumcodereview.appspot.com/10824141 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@149728 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Remove VideoDecoder::natural_size() & added VideoFrame::natural_size(). BUG=122913 Review URL: https://chromiumcodereview.appspot.com/10824141 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@149728 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Move VideoRenderer out of Filter heirarchy. As a result the following classes no longer exist: Filter, FilterHost, CompositeFilter. I guess you could say we no longer have filters! BUG=108342,126069 TEST=none Review URL: https://chromiumcodereview.appspot.com/10796074 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@147834 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Remove VideoDecoder::PrepareForShutdownHack() and friends. As of r156011 the pause/flush/stop shutdown dance is no more. Now that Pipeline immediately calls Stop() during teardown we can remove a pile of hacks that were used to signal that teardown was starting. BUG=110228 Review URL: https://chromiumcodereview.appspot.com/10918172 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@156525 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Remove VideoDecoderConfig::aspect_ratio_xxx methods. BUG=122913 Review URL: https://chromiumcodereview.appspot.com/10830110 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@149540 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Remove VideoDecoderConfig::aspect_ratio_xxx methods. BUG=122913 Review URL: https://chromiumcodereview.appspot.com/10830110 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@149540 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Remove VideoDecoder::natural_size() & added VideoFrame::natural_size(). BUG=122913 Review URL: https://chromiumcodereview.appspot.com/10824141 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@149728 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
[MIPS] Add support in media.gyp for building on MIPS architecture. Small change in media.gyp to support building for MIPS arch. BUG=130022 TEST=make chrome Review URL: https://chromiumcodereview.appspot.com/10952006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157697 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
add more color formats NV21 and YV12 in video capture (mainly from Android). Review URL: https://chromiumcodereview.appspot.com/10075001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@132808 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 | |
Remove duplicate CPU detection code; use base::CPU instead. BUG=none TEST=media_unittests. Review URL: https://chromiumcodereview.appspot.com/10537082 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@141627 0039d316-1c4b-4281-b951-d872f2087c98 | 13 年前 |