Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(843)

Unified Diff: media/base/audio_decoder_config.cc

Issue 11280301: Roll FFMpeg for M26. Fix ffmpeg float audio decoding. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix AFR. Created 8 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: media/base/audio_decoder_config.cc
diff --git a/media/base/audio_decoder_config.cc b/media/base/audio_decoder_config.cc
index bd0e6a7e75f84ea5ee4bf76c33e6a01e95597a69..e6901e9df9015b4c1246e7edede004f7161bdd03 100644
--- a/media/base/audio_decoder_config.cc
+++ b/media/base/audio_decoder_config.cc
@@ -17,7 +17,8 @@ AudioDecoderConfig::AudioDecoderConfig()
channel_layout_(CHANNEL_LAYOUT_UNSUPPORTED),
samples_per_second_(0),
extra_data_size_(0),
- is_encrypted_(false) {
+ is_encrypted_(false),
+ sample_format_(kUnknownSampleFormat) {
}
AudioDecoderConfig::AudioDecoderConfig(AudioCodec codec,
@@ -26,9 +27,10 @@ AudioDecoderConfig::AudioDecoderConfig(AudioCodec codec,
int samples_per_second,
const uint8* extra_data,
size_t extra_data_size,
+ SampleFormat sample_format,
bool is_encrypted) {
Initialize(codec, bits_per_channel, channel_layout, samples_per_second,
- extra_data, extra_data_size, is_encrypted, true);
+ extra_data, extra_data_size, sample_format, is_encrypted, true);
}
void AudioDecoderConfig::Initialize(AudioCodec codec,
@@ -37,6 +39,7 @@ void AudioDecoderConfig::Initialize(AudioCodec codec,
int samples_per_second,
const uint8* extra_data,
size_t extra_data_size,
+ SampleFormat sample_format,
bool is_encrypted,
bool record_stats) {
CHECK((extra_data_size != 0) == (extra_data != NULL));
@@ -57,6 +60,9 @@ void AudioDecoderConfig::Initialize(AudioCodec codec,
UMA_HISTOGRAM_COUNTS(
"Media.AudioSamplesPerSecondUnexpected", samples_per_second);
}
+
+ // TODO(dalecurtis): Is it worth recording SampleFormat here? All aac and
+ // vorbis are going to be kFormatFLTP. Float PCM and AMR will be kFormatFLT.
scherkus (not reviewing) 2012/12/06 17:25:32 is there any way to get the pre-conversion-to-floa
scherkus (not reviewing) 2012/12/06 17:25:32 s/kFormat/kSampleFormat/g
DaleCurtis 2012/12/06 22:15:41 The data isn't converted to float, it's decoded in
DaleCurtis 2012/12/11 03:03:44 Also I don't intend to check this message in, I wa
scherkus (not reviewing) 2012/12/11 21:18:47 What about deprecating AudioBitsPerChannel in favo
DaleCurtis 2012/12/12 01:02:57 Done.
}
codec_ = codec;
@@ -64,6 +70,7 @@ void AudioDecoderConfig::Initialize(AudioCodec codec,
channel_layout_ = channel_layout;
samples_per_second_ = samples_per_second;
extra_data_size_ = extra_data_size;
+ sample_format_ = sample_format;
if (extra_data_size_ > 0) {
extra_data_.reset(new uint8[extra_data_size_]);
@@ -79,11 +86,12 @@ AudioDecoderConfig::~AudioDecoderConfig() {}
bool AudioDecoderConfig::IsValidConfig() const {
return codec_ != kUnknownAudioCodec &&
- channel_layout_ != CHANNEL_LAYOUT_UNSUPPORTED &&
- bits_per_channel_ > 0 &&
- bits_per_channel_ <= limits::kMaxBitsPerSample &&
- samples_per_second_ > 0 &&
- samples_per_second_ <= limits::kMaxSampleRate;
+ channel_layout_ != CHANNEL_LAYOUT_UNSUPPORTED &&
+ bits_per_channel_ > 0 &&
+ bits_per_channel_ <= limits::kMaxBitsPerSample &&
+ samples_per_second_ > 0 &&
+ samples_per_second_ <= limits::kMaxSampleRate &&
+ sample_format_ != kUnknownSampleFormat;
}
bool AudioDecoderConfig::Matches(const AudioDecoderConfig& config) const {
@@ -94,7 +102,8 @@ bool AudioDecoderConfig::Matches(const AudioDecoderConfig& config) const {
(extra_data_size() == config.extra_data_size()) &&
(!extra_data() || !memcmp(extra_data(), config.extra_data(),
extra_data_size())) &&
- (is_encrypted() == config.is_encrypted()));
+ (is_encrypted() == config.is_encrypted()) &&
+ (sample_format() == config.sample_format()));
}
void AudioDecoderConfig::CopyFrom(const AudioDecoderConfig& audio_config) {
@@ -104,36 +113,9 @@ void AudioDecoderConfig::CopyFrom(const AudioDecoderConfig& audio_config) {
audio_config.samples_per_second(),
audio_config.extra_data(),
audio_config.extra_data_size(),
+ audio_config.sample_format(),
audio_config.is_encrypted(),
false);
}
-AudioCodec AudioDecoderConfig::codec() const {
- return codec_;
-}
-
-int AudioDecoderConfig::bits_per_channel() const {
- return bits_per_channel_;
-}
-
-ChannelLayout AudioDecoderConfig::channel_layout() const {
- return channel_layout_;
-}
-
-int AudioDecoderConfig::samples_per_second() const {
- return samples_per_second_;
-}
-
-uint8* AudioDecoderConfig::extra_data() const {
- return extra_data_.get();
-}
-
-size_t AudioDecoderConfig::extra_data_size() const {
- return extra_data_size_;
-}
-
-bool AudioDecoderConfig::is_encrypted() const {
- return is_encrypted_;
-}
-
} // namespace media

Powered by Google App Engine
This is Rietveld 408576698