summaryrefslogtreecommitdiffstats
path: root/media/base/decoder_buffer.cc
diff options
context:
space:
mode:
authorscherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-18 00:44:33 +0000
committerscherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-18 00:44:33 +0000
commit70fa3a4c64429c867d837c4a31d8d11aafeb5a4f (patch)
treea625864e0314009bfa60cedb49b784c7f4ce690f /media/base/decoder_buffer.cc
parent0dbd75db25284d8dfa87f97c0dc9f3f2351317e1 (diff)
downloadchromium_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.cc22
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