| Index: media/base/download_rate_monitor.h
|
| diff --git a/media/base/download_rate_monitor.h b/media/base/download_rate_monitor.h
|
| deleted file mode 100644
|
| index 4fca328858e1f8c187e53728ed1aed0338b332be..0000000000000000000000000000000000000000
|
| --- a/media/base/download_rate_monitor.h
|
| +++ /dev/null
|
| @@ -1,157 +0,0 @@
|
| -// Copyright (c) 2011 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.
|
| -
|
| -#ifndef MEDIA_BASE_DOWNLOAD_RATE_MONITOR_H_
|
| -#define MEDIA_BASE_DOWNLOAD_RATE_MONITOR_H_
|
| -
|
| -#include <deque>
|
| -
|
| -#include "base/callback.h"
|
| -#include "base/time.h"
|
| -#include "media/base/media_export.h"
|
| -
|
| -namespace media {
|
| -
|
| -// Measures download speed based on the rate at which a media file is buffering.
|
| -// Signals when it believes the media file can be played back without needing to
|
| -// pause to buffer.
|
| -class MEDIA_EXPORT DownloadRateMonitor {
|
| - public:
|
| - DownloadRateMonitor();
|
| - ~DownloadRateMonitor();
|
| -
|
| - // Begin measuring download rate. The monitor will run |canplaythrough_cb|
|
| - // when it believes the media can be played back without needing to pause to
|
| - // buffer. |media_bitrate| is the bitrate of the video.
|
| - void Start(const base::Closure& canplaythrough_cb, int media_bitrate,
|
| - bool streaming, bool local_source);
|
| -
|
| - // Notifies the monitor of the current number of bytes buffered by the media
|
| - // file at what timestamp. The monitor expects subsequent calls to
|
| - // SetBufferedBytes to have monotonically nondecreasing timestamps.
|
| - // Calls to the method are ignored if monitor has not been started or is
|
| - // stopped.
|
| - void SetBufferedBytes(int64 buffered_bytes, const base::Time& timestamp);
|
| -
|
| - // Notifies the monitor when the media file has paused or continued
|
| - // downloading data.
|
| - void SetNetworkActivity(bool is_downloading_data);
|
| -
|
| - void set_total_bytes(int64 total_bytes) { total_bytes_ = total_bytes; }
|
| -
|
| - // Stop monitoring download rate. This does not discard previously learned
|
| - // information, but it will no longer factor incoming information into its
|
| - // canplaythrough estimation.
|
| - void Stop();
|
| -
|
| - // Resets monitor to uninitialized state.
|
| - void Reset();
|
| -
|
| - private:
|
| - // Represents a point in time in which the media was buffering data.
|
| - struct BufferingPoint {
|
| - // The number of bytes buffered by the media player at |timestamp|.
|
| - int64 buffered_bytes;
|
| - // Time at which buffering measurement was taken.
|
| - base::Time timestamp;
|
| - };
|
| -
|
| - // Represents a span of time in which the media was buffering data.
|
| - class Sample {
|
| - public:
|
| - Sample();
|
| - Sample(const BufferingPoint& start, const BufferingPoint& end);
|
| - ~Sample();
|
| -
|
| - // Set the end point of the data sample.
|
| - void set_end(const BufferingPoint& new_end);
|
| -
|
| - const BufferingPoint& start() const { return start_; }
|
| - const BufferingPoint& end() const { return end_; }
|
| -
|
| - // Returns the bytes downloaded per second in this sample. Returns -1.0 if
|
| - // sample is invalid.
|
| - float bytes_per_second() const;
|
| -
|
| - // Returns the seconds elapsed in this sample. Returns -1.0 if the sample
|
| - // has not begun yet.
|
| - float seconds_elapsed() const;
|
| -
|
| - // Returns bytes downloaded in this sample. Returns -1.0 if the sample has
|
| - // not begun yet.
|
| - int64 bytes_downloaded() const;
|
| -
|
| - // Returns true if Sample has not been initialized.
|
| - bool is_null() const;
|
| -
|
| - // Resets the sample to an uninitialized state.
|
| - void Reset();
|
| -
|
| - // Restarts the sample to begin its measurement at what was previously its
|
| - // end point.
|
| - void RestartAtEndBufferingPoint();
|
| -
|
| - private:
|
| - BufferingPoint start_;
|
| - BufferingPoint end_;
|
| - };
|
| -
|
| - int64 bytes_downloaded_in_window() const;
|
| - float seconds_elapsed_in_window() const;
|
| -
|
| - // Updates window with latest sample if it is ready.
|
| - void UpdateSampleWindow();
|
| -
|
| - // Returns an approximation of the current download rate in bytes per second.
|
| - // Returns -1.0 if unknown.
|
| - float ApproximateDownloadByteRate() const;
|
| -
|
| - // Helper method that returns true if the monitor believes it should fire the
|
| - // |canplaythrough_cb_|.
|
| - bool ShouldNotifyCanPlayThrough();
|
| -
|
| - // Examines the download rate and fires the |canplaythrough_cb_| callback if
|
| - // the monitor deems it the right time.
|
| - void NotifyCanPlayThroughIfNeeded();
|
| -
|
| - // Callback to run when the monitor believes the media can play through
|
| - // without needing to pause to buffer.
|
| - base::Closure canplaythrough_cb_;
|
| -
|
| - // Indicates whether the monitor has run the |canplaythrough_cb_|.
|
| - bool has_notified_can_play_through_;
|
| -
|
| - // Measurements used to approximate download speed.
|
| - Sample current_sample_;
|
| - std::deque<Sample> sample_window_;
|
| -
|
| - // True if actively downloading bytes, false otherwise.
|
| - bool is_downloading_data_;
|
| -
|
| - // Total number of bytes in the media file, 0 if unknown or undefined.
|
| - int64 total_bytes_;
|
| -
|
| - // Amount of bytes buffered.
|
| - int64 buffered_bytes_;
|
| -
|
| - // True if the media file is from a local source, e.g. file:// protocol or a
|
| - // webcam stream.
|
| - bool local_source_;
|
| -
|
| - // Bitrate of the media file, 0 if unknown.
|
| - int bitrate_;
|
| -
|
| - // True if the monitor has not yet started or has been stopped, false
|
| - // otherwise.
|
| - bool stopped_;
|
| -
|
| - // True if the data source is a streaming source, false otherwise.
|
| - bool streaming_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(DownloadRateMonitor);
|
| -};
|
| -
|
| -} // namespace media
|
| -
|
| -#endif // MEDIA_BASE_DOWNLOAD_RATE_MONITOR_H_
|
|
|