Index: media/base/audio_decoder_config.cc |
diff --git a/media/base/audio_decoder_config.cc b/media/base/audio_decoder_config.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..06ebaa63c6fe4ada16dc9e8524fd3650e1dafeec |
--- /dev/null |
+++ b/media/base/audio_decoder_config.cc |
@@ -0,0 +1,87 @@ |
+// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "media/base/audio_decoder_config.h" |
+ |
+#include "base/logging.h" |
+#include "media/base/limits.h" |
+ |
+namespace media { |
+ |
+AudioDecoderConfig::AudioDecoderConfig() |
+ : codec_(kUnknownAudioCodec), |
Ami GONE FROM CHROMIUM
2011/09/20 20:34:50
Could also impl. as Initialize() call?
I don't thi
scherkus (not reviewing)
2011/09/21 18:19:16
I'll leave as is -- I think it reads a bit easier
|
+ bits_per_channel_(0), |
+ channel_layout_(CHANNEL_LAYOUT_UNSUPPORTED), |
+ sample_rate_(0), |
+ extra_data_size_(0) { |
+} |
+ |
+AudioDecoderConfig::AudioDecoderConfig(AudioCodec codec, |
+ int bits_per_channel, |
+ ChannelLayout channel_layout, |
+ int sample_rate, |
+ const uint8* extra_data, |
+ size_t extra_data_size) { |
+ Initialize(codec, bits_per_channel, channel_layout, sample_rate, |
+ extra_data, extra_data_size); |
+} |
+ |
+void AudioDecoderConfig::Initialize(AudioCodec codec, |
+ int bits_per_channel, |
+ ChannelLayout channel_layout, |
+ int sample_rate, |
+ const uint8* extra_data, |
+ size_t extra_data_size) { |
+ CHECK((extra_data_size != 0) == (extra_data != NULL)); |
+ |
+ codec_ = codec; |
+ bits_per_channel_ = bits_per_channel; |
+ channel_layout_ = channel_layout; |
+ sample_rate_ = sample_rate; |
+ extra_data_size_ = extra_data_size; |
+ |
+ if (extra_data_size_ > 0) { |
+ extra_data_.reset(new uint8[extra_data_size_]); |
+ memcpy(extra_data_.get(), extra_data, extra_data_size_); |
+ } else { |
+ extra_data_.reset(); |
+ } |
+} |
+ |
+AudioDecoderConfig::~AudioDecoderConfig() {} |
+ |
+bool AudioDecoderConfig::IsValidConfig() const { |
+ return codec_ != kUnknownAudioCodec && |
+ channel_layout_ != CHANNEL_LAYOUT_UNSUPPORTED && |
+ bits_per_channel_ > 0 && |
+ bits_per_channel_ <= Limits::kMaxBitsPerSample && |
+ sample_rate_ > 0 && |
+ sample_rate_ <= Limits::kMaxSampleRate; |
+} |
+ |
+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::sample_rate() const { |
+ return sample_rate_; |
+} |
+ |
+uint8* AudioDecoderConfig::extra_data() const { |
+ return extra_data_.get(); |
+} |
+ |
+size_t AudioDecoderConfig::extra_data_size() const { |
+ return extra_data_size_; |
+} |
+ |
+} // namespace media |