summaryrefslogtreecommitdiffstats
path: root/media/webm
diff options
context:
space:
mode:
authordalecurtis@google.com <dalecurtis@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-04 20:20:15 +0000
committerdalecurtis@google.com <dalecurtis@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-04 20:20:15 +0000
commitb5eca3cffa0afa077d24d98a1f7d9e4b44e5ad4e (patch)
tree585aaec1a953b456b45a67817b4a933f1a8b04f5 /media/webm
parentcb9a7a1586961248f6acb16aa7c13a6a1bff5afd (diff)
downloadchromium_src-b5eca3cffa0afa077d24d98a1f7d9e4b44e5ad4e.zip
chromium_src-b5eca3cffa0afa077d24d98a1f7d9e4b44e5ad4e.tar.gz
chromium_src-b5eca3cffa0afa077d24d98a1f7d9e4b44e5ad4e.tar.bz2
Roll FFMpeg for M26. Fix ffmpeg float audio decoding.
FFmpeg now outputs float for some audio decoders. Unfortunately our pipeline doesn't support float between the FFmpegAudioDecoder and AudioRenderer at present. As such, we need to convert the data into an integer format first. As a byproduct of this, AMR support for ChromeOS is finally fixed and adding support for PCM float is trivial. In summary this patch adds: - A SampleFormat property to AudioDecoderConfig. - AVSampleFormat <-> SampleFormat converters in FFmpegCommon. - Fixes ChromeOS AMR playback. - Finally plumbs pcm_f32le support (enabled in FFmpeg long ago). - Add decoder support for float planar and float interleaved playback. BUG=109085, 158187, 167069 TEST=unittests, layout tests, and demos all pass under tooling without issue. Review URL: https://codereview.chromium.org/11280301 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@175180 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media/webm')
-rw-r--r--media/webm/webm_stream_parser.cc5
1 files changed, 3 insertions, 2 deletions
diff --git a/media/webm/webm_stream_parser.cc b/media/webm/webm_stream_parser.cc
index 770fee9..bfa44ae 100644
--- a/media/webm/webm_stream_parser.cc
+++ b/media/webm/webm_stream_parser.cc
@@ -352,12 +352,13 @@ int WebMStreamParser::ParseInfoAndTracks(const uint8* data, int size) {
config_helper.audio_config();
audio_config.Initialize(original_audio_config.codec(),
- original_audio_config.bits_per_channel(),
+ original_audio_config.sample_format(),
original_audio_config.channel_layout(),
original_audio_config.samples_per_second(),
original_audio_config.extra_data(),
original_audio_config.extra_data_size(),
- is_audio_encrypted, false);
+ is_audio_encrypted,
+ false);
FireNeedKey(tracks_parser.audio_encryption_key_id());
} else {