diff options
author | xhwang@chromium.org <xhwang@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-10-12 01:04:33 +0000 |
---|---|---|
committer | xhwang@chromium.org <xhwang@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-10-12 01:04:33 +0000 |
commit | 37141711d11b09cef8405c4c2384549dad316fe9 (patch) | |
tree | 82c6e743cb9b011d5e600069ebb42e4098b1ec81 /media/base | |
parent | 8f92ac14a5a83d336f97317a7292394f187d5c16 (diff) | |
download | chromium_src-37141711d11b09cef8405c4c2384549dad316fe9.zip chromium_src-37141711d11b09cef8405c4c2384549dad316fe9.tar.gz chromium_src-37141711d11b09cef8405c4c2384549dad316fe9.tar.bz2 |
Support encrypted audio stream in demuxer.
BUG=123421
TEST=updated media_unittest
Review URL: https://chromiumcodereview.appspot.com/11088047
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@161465 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media/base')
-rw-r--r-- | media/base/audio_decoder_config.cc | 19 | ||||
-rw-r--r-- | media/base/audio_decoder_config.h | 11 |
2 files changed, 25 insertions, 5 deletions
diff --git a/media/base/audio_decoder_config.cc b/media/base/audio_decoder_config.cc index 1f259f3..bd0e6a7 100644 --- a/media/base/audio_decoder_config.cc +++ b/media/base/audio_decoder_config.cc @@ -16,7 +16,8 @@ AudioDecoderConfig::AudioDecoderConfig() bits_per_channel_(0), channel_layout_(CHANNEL_LAYOUT_UNSUPPORTED), samples_per_second_(0), - extra_data_size_(0) { + extra_data_size_(0), + is_encrypted_(false) { } AudioDecoderConfig::AudioDecoderConfig(AudioCodec codec, @@ -24,9 +25,10 @@ AudioDecoderConfig::AudioDecoderConfig(AudioCodec codec, ChannelLayout channel_layout, int samples_per_second, const uint8* extra_data, - size_t extra_data_size) { + size_t extra_data_size, + bool is_encrypted) { Initialize(codec, bits_per_channel, channel_layout, samples_per_second, - extra_data, extra_data_size, true); + extra_data, extra_data_size, is_encrypted, true); } void AudioDecoderConfig::Initialize(AudioCodec codec, @@ -35,6 +37,7 @@ void AudioDecoderConfig::Initialize(AudioCodec codec, int samples_per_second, const uint8* extra_data, size_t extra_data_size, + bool is_encrypted, bool record_stats) { CHECK((extra_data_size != 0) == (extra_data != NULL)); @@ -68,6 +71,8 @@ void AudioDecoderConfig::Initialize(AudioCodec codec, } else { extra_data_.reset(); } + + is_encrypted_ = is_encrypted; } AudioDecoderConfig::~AudioDecoderConfig() {} @@ -88,7 +93,8 @@ bool AudioDecoderConfig::Matches(const AudioDecoderConfig& config) const { (samples_per_second() == config.samples_per_second()) && (extra_data_size() == config.extra_data_size()) && (!extra_data() || !memcmp(extra_data(), config.extra_data(), - extra_data_size()))); + extra_data_size())) && + (is_encrypted() == config.is_encrypted())); } void AudioDecoderConfig::CopyFrom(const AudioDecoderConfig& audio_config) { @@ -98,6 +104,7 @@ void AudioDecoderConfig::CopyFrom(const AudioDecoderConfig& audio_config) { audio_config.samples_per_second(), audio_config.extra_data(), audio_config.extra_data_size(), + audio_config.is_encrypted(), false); } @@ -125,4 +132,8 @@ size_t AudioDecoderConfig::extra_data_size() const { return extra_data_size_; } +bool AudioDecoderConfig::is_encrypted() const { + return is_encrypted_; +} + } // namespace media diff --git a/media/base/audio_decoder_config.h b/media/base/audio_decoder_config.h index 5ab06c5..2bc2487 100644 --- a/media/base/audio_decoder_config.h +++ b/media/base/audio_decoder_config.h @@ -51,7 +51,8 @@ class MEDIA_EXPORT AudioDecoderConfig { // |extra_data|, otherwise the memory is copied. AudioDecoderConfig(AudioCodec codec, int bits_per_channel, ChannelLayout channel_layout, int samples_per_second, - const uint8* extra_data, size_t extra_data_size); + const uint8* extra_data, size_t extra_data_size, + bool is_encrypted); ~AudioDecoderConfig(); @@ -59,6 +60,7 @@ class MEDIA_EXPORT AudioDecoderConfig { void Initialize(AudioCodec codec, int bits_per_channel, ChannelLayout channel_layout, int samples_per_second, const uint8* extra_data, size_t extra_data_size, + bool is_encrypted, bool record_stats); // Deep copies |audio_config|. @@ -82,6 +84,11 @@ class MEDIA_EXPORT AudioDecoderConfig { uint8* extra_data() const; size_t extra_data_size() const; + // Whether the audio stream is potentially encrypted. + // Note that in a potentially encrypted audio stream, individual buffers + // can be encrypted or not encrypted. + bool is_encrypted() const; + private: AudioCodec codec_; int bits_per_channel_; @@ -91,6 +98,8 @@ class MEDIA_EXPORT AudioDecoderConfig { scoped_array<uint8> extra_data_; size_t extra_data_size_; + bool is_encrypted_; + DISALLOW_COPY_AND_ASSIGN(AudioDecoderConfig); }; |