diff options
author | scherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-03 00:28:29 +0000 |
---|---|---|
committer | scherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-03 00:28:29 +0000 |
commit | f7b0633c3475362a1e6933277304df5b7e8af4c7 (patch) | |
tree | 051b41ac59e52b9e2f61a7dd7b870304e011a516 /media | |
parent | 4d5cbc3650a335b8bccb6fce4f4dd06360033066 (diff) | |
download | chromium_src-f7b0633c3475362a1e6933277304df5b7e8af4c7.zip chromium_src-f7b0633c3475362a1e6933277304df5b7e8af4c7.tar.gz chromium_src-f7b0633c3475362a1e6933277304df5b7e8af4c7.tar.bz2 |
media::SeekableBuffer should use kNoTimestamp() instead of zero.
I noticed this while debugging bug 120396 that the reported time remained zero even after appending the initial audio buffer that has a timestamp of zero.
BUG=none
TEST=none
Review URL: https://chromiumcodereview.appspot.com/10342005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@135050 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media')
-rw-r--r-- | media/base/seekable_buffer.cc | 5 | ||||
-rw-r--r-- | media/base/seekable_buffer_unittest.cc | 31 | ||||
-rw-r--r-- | media/filters/audio_renderer_impl_unittest.cc | 5 |
3 files changed, 26 insertions, 15 deletions
diff --git a/media/base/seekable_buffer.cc b/media/base/seekable_buffer.cc index b88153a..8cfcf98 100644 --- a/media/base/seekable_buffer.cc +++ b/media/base/seekable_buffer.cc @@ -61,7 +61,7 @@ bool SeekableBuffer::GetCurrentChunk(const uint8** data, int* size) const { } bool SeekableBuffer::Append(Buffer* buffer_in) { - if (buffers_.empty() && buffer_in->GetTimestamp().InMicroseconds() > 0) { + if (buffers_.empty() && buffer_in->GetTimestamp() != kNoTimestamp()) { current_time_ = buffer_in->GetTimestamp(); } @@ -267,8 +267,7 @@ int SeekableBuffer::InternalRead(uint8* data, int size, void SeekableBuffer::UpdateCurrentTime(BufferQueue::iterator buffer, int offset) { // Garbage values are unavoidable, so this check will remain. - if (buffer != buffers_.end() && - (*buffer)->GetTimestamp().InMicroseconds() > 0) { + if (buffer != buffers_.end() && (*buffer)->GetTimestamp() != kNoTimestamp()) { int64 time_offset = ((*buffer)->GetDuration().InMicroseconds() * offset) / (*buffer)->GetDataSize(); diff --git a/media/base/seekable_buffer_unittest.cc b/media/base/seekable_buffer_unittest.cc index 8d2e1dc..cc8cd09 100644 --- a/media/base/seekable_buffer_unittest.cc +++ b/media/base/seekable_buffer_unittest.cc @@ -291,22 +291,31 @@ TEST_F(SeekableBufferTest, AllMethods) { TEST_F(SeekableBufferTest, GetTime) { + const int64 kNoTS = kNoTimestamp().ToInternalValue(); const struct { int64 first_time_useconds; int64 duration_useconds; int consume_bytes; int64 expected_time; } tests[] = { - // Timestamps of 0 are treated as garbage. - { 0, 1000000, 0, kNoTimestamp().ToInternalValue() }, - { 0, 4000000, 0, kNoTimestamp().ToInternalValue() }, - { 0, 8000000, 0, kNoTimestamp().ToInternalValue() }, - { 0, 1000000, 4, kNoTimestamp().ToInternalValue() }, - { 0, 4000000, 4, kNoTimestamp().ToInternalValue() }, - { 0, 8000000, 4, kNoTimestamp().ToInternalValue() }, - { 0, 1000000, kWriteSize, kNoTimestamp().ToInternalValue() }, - { 0, 4000000, kWriteSize, kNoTimestamp().ToInternalValue() }, - { 0, 8000000, kWriteSize, kNoTimestamp().ToInternalValue() }, + { kNoTS, 1000000, 0, kNoTS }, + { kNoTS, 4000000, 0, kNoTS }, + { kNoTS, 8000000, 0, kNoTS }, + { kNoTS, 1000000, kWriteSize / 2, kNoTS }, + { kNoTS, 4000000, kWriteSize / 2, kNoTS }, + { kNoTS, 8000000, kWriteSize / 2, kNoTS }, + { kNoTS, 1000000, kWriteSize, kNoTS }, + { kNoTS, 4000000, kWriteSize, kNoTS }, + { kNoTS, 8000000, kWriteSize, kNoTS }, + { 0, 1000000, 0, 0 }, + { 0, 4000000, 0, 0 }, + { 0, 8000000, 0, 0 }, + { 0, 1000000, kWriteSize / 2, 500000 }, + { 0, 4000000, kWriteSize / 2, 2000000 }, + { 0, 8000000, kWriteSize / 2, 4000000 }, + { 0, 1000000, kWriteSize, 1000000 }, + { 0, 4000000, kWriteSize, 4000000 }, + { 0, 8000000, kWriteSize, 8000000 }, { 5, 1000000, 0, 5 }, { 5, 4000000, 0, 5 }, { 5, 8000000, 0, 5 }, @@ -339,7 +348,7 @@ TEST_F(SeekableBufferTest, GetTime) { EXPECT_EQ(tests[i].expected_time, actual) << "With test = { start:" << tests[i].first_time_useconds << ", duration:" << tests[i].duration_useconds << ", consumed:" - << tests[i].consume_bytes << "}\n"; + << tests[i].consume_bytes << " }\n"; buffer_.Clear(); } diff --git a/media/filters/audio_renderer_impl_unittest.cc b/media/filters/audio_renderer_impl_unittest.cc index 862b734..7dfd5db 100644 --- a/media/filters/audio_renderer_impl_unittest.cc +++ b/media/filters/audio_renderer_impl_unittest.cc @@ -63,6 +63,10 @@ class AudioRendererImplTest : public ::testing::Test { .Times(AnyNumber()); EXPECT_CALL(*decoder_, samples_per_second()) .Times(AnyNumber()); + + // We'll pretend time never advances. + EXPECT_CALL(host_, GetTime()) + .WillRepeatedly(Return(base::TimeDelta())); } virtual ~AudioRendererImplTest() { @@ -370,7 +374,6 @@ TEST_F(AudioRendererImplTest, Underflow_EndOfStream) { DeliverEndOfStream(); EXPECT_CALL(host_, NotifyEnded()); - EXPECT_CALL(host_, GetTime()).WillOnce(Return(base::TimeDelta())); EXPECT_FALSE(ConsumeBufferedData(kDataSize, &muted)); EXPECT_FALSE(muted); } |