Index: media/base/buffers.h |
=================================================================== |
--- media/base/buffers.h (revision 10301) |
+++ media/base/buffers.h (working copy) |
@@ -1,4 +1,4 @@ |
-// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. |
+// Copyright (c) 2008-2009 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. |
@@ -36,20 +36,61 @@ |
class StreamSample : public base::RefCountedThreadSafe<StreamSample> { |
public: |
// Returns the timestamp of this buffer in microseconds. |
- virtual base::TimeDelta GetTimestamp() const = 0; |
+ base::TimeDelta GetTimestamp() const { |
+ return timestamp_; |
+ } |
// Returns the duration of this buffer in microseconds. |
- virtual base::TimeDelta GetDuration() const = 0; |
+ base::TimeDelta GetDuration() const { |
+ return duration_; |
+ } |
+ // Indicates that the sample is the last one in the stream. |
+ bool IsEndOfStream() const { |
+ return end_of_stream_; |
+ } |
+ |
+ // Indicates that this sample is discontinuous from the previous one, for |
+ // example, following a seek. |
+ bool IsDiscontinuous() const { |
+ return discontinuous_; |
+ } |
+ |
// Sets the timestamp of this buffer in microseconds. |
- virtual void SetTimestamp(const base::TimeDelta& timestamp) = 0; |
+ void SetTimestamp(const base::TimeDelta& timestamp) { |
+ timestamp_ = timestamp; |
+ } |
// Sets the duration of this buffer in microseconds. |
- virtual void SetDuration(const base::TimeDelta& duration) = 0; |
+ void SetDuration(const base::TimeDelta& duration) { |
+ duration_ = duration; |
+ } |
+ // Sets the value returned by IsEndOfStream(). |
+ void SetEndOfStream(bool end_of_stream) { |
+ end_of_stream_ = end_of_stream; |
+ } |
+ |
+ // Sets the value returned by IsDiscontinuous(). |
+ void SetDiscontinuous(bool discontinuous) { |
+ discontinuous_ = discontinuous; |
+ } |
+ |
protected: |
friend class base::RefCountedThreadSafe<StreamSample>; |
+ StreamSample() |
+ : end_of_stream_(false), |
+ discontinuous_(false) { |
+ } |
virtual ~StreamSample() {} |
+ |
+ base::TimeDelta timestamp_; |
+ base::TimeDelta duration_; |
+ bool end_of_stream_; |
+ bool discontinuous_; |
+ |
+ private: |
+ DISALLOW_COPY_AND_ASSIGN(StreamSample); |
}; |
@@ -134,8 +175,8 @@ |
// |
// TODO(scherkus): rethink the Assignable interface -- it's a bit kludgy. |
template <class BufferType> |
-class Assignable : |
- public base::RefCountedThreadSafe< Assignable<BufferType> > { |
+class Assignable |
+ : public base::RefCountedThreadSafe< Assignable<BufferType> > { |
public: |
// Assigns a buffer to the owner. |
virtual void SetBuffer(BufferType* buffer) = 0; |
@@ -146,7 +187,7 @@ |
// TODO(scherkus): figure out a solution to friending a template. |
// See http://www.comeaucomputing.com/techtalk/templates/#friendclassT for |
// an explanation. |
- //protected: |
+ // protected: |
// friend class base::RefCountedThreadSafe< Assignable<class T> >; |
virtual ~Assignable() {} |
}; |