diff options
author | dalecurtis@google.com <dalecurtis@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-05-31 22:27:23 +0000 |
---|---|---|
committer | dalecurtis@google.com <dalecurtis@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-05-31 22:27:23 +0000 |
commit | f8ca7bbc1873a7b25ce31700dd4edd13481851b0 (patch) | |
tree | 87bb6ad2576b78eb807ae89b05dc0dd30204f48b /components/metrics.gypi | |
parent | 02e62b2f5610b2ca965d21593748ba6045c895d3 (diff) | |
download | chromium_src-f8ca7bbc1873a7b25ce31700dd4edd13481851b0.zip chromium_src-f8ca7bbc1873a7b25ce31700dd4edd13481851b0.tar.gz chromium_src-f8ca7bbc1873a7b25ce31700dd4edd13481851b0.tar.bz2 |
Add gapless playback support for AAC playback.
Gapless support for AAC is similar to MP3 but unlike
MP3 which only has padding in the first frame, AAC may
require discarding data across multiple frames.
Unfortunately this means we can't just discard the padding
frames wholesale without changing what's decoded from the
first non-padding frame.
Testing reveals we need to decode the padding frame prior to
the first non-padding frame in order to correctly decode the
non-padding frame.
We accomplish this by introducing the concept of a preroll
buffer which is to be played out prior to the current buffer
but must be entirely discarded. Luckily this is easily done
with the infrastructure in place for the gapless MP3 playback!
While we need to support post splice buffers with preroll for
gapless playback, for simplicity, pre-splice buffers are not
allowed to have preroll.
In sum, this change:
- Adds SetPrerollBuffer() and preroll_buffer() to the
StreamParserBuffer.
- Refactors splice frame handling into a new
HandleNextBufferWithSpliceFrame() method, introduces
HandleNextBufferWithPreroll()
- Modifies the frame processor to use the frame prior to the
partial append window discard as the preroll.
BUG=371633
TEST=new unittests!
R=wolenetz@chromium.org
Review URL: https://codereview.chromium.org/276573002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@274073 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'components/metrics.gypi')
0 files changed, 0 insertions, 0 deletions