diff options
author | scherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-21 18:10:30 +0000 |
---|---|---|
committer | scherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-21 18:10:30 +0000 |
commit | 90d1757fc9ea35251a6989d29763550e68c945b4 (patch) | |
tree | 547b9fd3c548252748c47ab15db36eb37dd2da60 /media/base/decoder_buffer_queue.cc | |
parent | 88336b43e02485cb60ba2db878a5a5e44314bb08 (diff) | |
download | chromium_src-90d1757fc9ea35251a6989d29763550e68c945b4.zip chromium_src-90d1757fc9ea35251a6989d29763550e68c945b4.tar.gz chromium_src-90d1757fc9ea35251a6989d29763550e68c945b4.tar.bz2 |
Revert 169004 - Introduce time-based caching of encoded data to FFmpegDemuxer.
Seeking performance on slow connections regressed too much for my liking:
http://build.chromium.org/f/chromium/perf/linux-release/media_tests_av_perf/report.html?history=50&rev=169043&graph=seek
BUG=160640
Review URL: https://codereview.chromium.org/11316138
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@169076 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media/base/decoder_buffer_queue.cc')
-rw-r--r-- | media/base/decoder_buffer_queue.cc | 78 |
1 files changed, 0 insertions, 78 deletions
diff --git a/media/base/decoder_buffer_queue.cc b/media/base/decoder_buffer_queue.cc deleted file mode 100644 index ad91c37..0000000 --- a/media/base/decoder_buffer_queue.cc +++ /dev/null @@ -1,78 +0,0 @@ -// Copyright (c) 2012 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/decoder_buffer_queue.h" - -#include "base/logging.h" -#include "media/base/decoder_buffer.h" - -namespace media { - -DecoderBufferQueue::DecoderBufferQueue() - : earliest_valid_timestamp_(kNoTimestamp()) { -} - -DecoderBufferQueue::~DecoderBufferQueue() {} - -void DecoderBufferQueue::Push(const scoped_refptr<DecoderBuffer>& buffer) { - CHECK(!buffer->IsEndOfStream()); - - queue_.push_back(buffer); - - // TODO(scherkus): FFmpeg returns some packets with no timestamp after - // seeking. Fix and turn this into CHECK(). See http://crbug.com/162192 - if (buffer->GetTimestamp() == kNoTimestamp()) { - DVLOG(1) << "Buffer has no timestamp"; - return; - } - - if (earliest_valid_timestamp_ == kNoTimestamp()) { - earliest_valid_timestamp_ = buffer->GetTimestamp(); - } - - if (buffer->GetTimestamp() < earliest_valid_timestamp_) { - DVLOG(1) - << "Out of order timestamps: " - << buffer->GetTimestamp().InMicroseconds() - << " vs. " - << earliest_valid_timestamp_.InMicroseconds(); - return; - } - - earliest_valid_timestamp_ = buffer->GetTimestamp(); - in_order_queue_.push_back(buffer); -} - -scoped_refptr<DecoderBuffer> DecoderBufferQueue::Pop() { - scoped_refptr<DecoderBuffer> buffer = queue_.front(); - queue_.pop_front(); - - if (!in_order_queue_.empty() && - in_order_queue_.front() == buffer) { - in_order_queue_.pop_front(); - } - - return buffer; -} - -void DecoderBufferQueue::Clear() { - queue_.clear(); - in_order_queue_.clear(); - earliest_valid_timestamp_ = kNoTimestamp(); -} - -bool DecoderBufferQueue::IsEmpty() { - return queue_.empty(); -} - -base::TimeDelta DecoderBufferQueue::Duration() { - if (in_order_queue_.size() < 2) - return base::TimeDelta(); - - base::TimeDelta start = in_order_queue_.front()->GetTimestamp(); - base::TimeDelta end = in_order_queue_.back()->GetTimestamp(); - return end - start; -} - -} // namespace media |