summaryrefslogtreecommitdiffstats
path: root/media/base/decoder_buffer_queue.cc
diff options
context:
space:
mode:
authorscherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-21 18:10:30 +0000
committerscherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-21 18:10:30 +0000
commit90d1757fc9ea35251a6989d29763550e68c945b4 (patch)
tree547b9fd3c548252748c47ab15db36eb37dd2da60 /media/base/decoder_buffer_queue.cc
parent88336b43e02485cb60ba2db878a5a5e44314bb08 (diff)
downloadchromium_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.cc78
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