diff options
author | scherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-18 00:44:33 +0000 |
---|---|---|
committer | scherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-18 00:44:33 +0000 |
commit | 70fa3a4c64429c867d837c4a31d8d11aafeb5a4f (patch) | |
tree | a625864e0314009bfa60cedb49b784c7f4ce690f /media/base/decoder_buffer.cc | |
parent | 0dbd75db25284d8dfa87f97c0dc9f3f2351317e1 (diff) | |
download | chromium_src-70fa3a4c64429c867d837c4a31d8d11aafeb5a4f.zip chromium_src-70fa3a4c64429c867d837c4a31d8d11aafeb5a4f.tar.gz chromium_src-70fa3a4c64429c867d837c4a31d8d11aafeb5a4f.tar.bz2 |
Tighten up media::DecoderBuffer API contract for end of stream buffers.
Folks shouldn't be calling methods on end of stream buffers since the definition is undefined.
Review URL: https://codereview.chromium.org/11993002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@177550 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media/base/decoder_buffer.cc')
-rw-r--r-- | media/base/decoder_buffer.cc | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/media/base/decoder_buffer.cc b/media/base/decoder_buffer.cc index a07ffac..03f9bbb 100644 --- a/media/base/decoder_buffer.cc +++ b/media/base/decoder_buffer.cc @@ -48,38 +48,47 @@ scoped_refptr<DecoderBuffer> DecoderBuffer::CreateEOSBuffer() { } base::TimeDelta DecoderBuffer::GetTimestamp() const { + DCHECK(!IsEndOfStream()); return timestamp_; } void DecoderBuffer::SetTimestamp(const base::TimeDelta& timestamp) { + DCHECK(!IsEndOfStream()); timestamp_ = timestamp; } base::TimeDelta DecoderBuffer::GetDuration() const { + DCHECK(!IsEndOfStream()); return duration_; } void DecoderBuffer::SetDuration(const base::TimeDelta& duration) { + DCHECK(!IsEndOfStream()); duration_ = duration; } const uint8* DecoderBuffer::GetData() const { + DCHECK(!IsEndOfStream()); return data_.get(); } uint8* DecoderBuffer::GetWritableData() const { + DCHECK(!IsEndOfStream()); return data_.get(); } int DecoderBuffer::GetDataSize() const { + DCHECK(!IsEndOfStream()); return size_; } const DecryptConfig* DecoderBuffer::GetDecryptConfig() const { + DCHECK(!IsEndOfStream()); return decrypt_config_.get(); } void DecoderBuffer::SetDecryptConfig(scoped_ptr<DecryptConfig> decrypt_config) { + DCHECK(!IsEndOfStream()); decrypt_config_ = decrypt_config.Pass(); } @@ -87,4 +96,17 @@ bool DecoderBuffer::IsEndOfStream() const { return data_ == NULL; } +std::string DecoderBuffer::AsHumanReadableString() { + if (IsEndOfStream()) { + return "end of stream"; + } + + std::ostringstream s; + s << "timestamp: " << timestamp_.InMicroseconds() + << " duration: " << duration_.InMicroseconds() + << " size: " << size_ + << " encrypted: " << (decrypt_config_ != NULL); + return s.str(); +} + } // namespace media |