| Index: media/base/seekable_buffer.h
|
| ===================================================================
|
| --- media/base/seekable_buffer.h (revision 17048)
|
| +++ media/base/seekable_buffer.h (working copy)
|
| @@ -43,36 +43,36 @@
|
|
|
| class SeekableBuffer {
|
| public:
|
| - // Construct an instance with forward capacity of |forward_capacity|
|
| - // and backward capacity of |backward_capacity|. The values are in bytes.
|
| + // Constructs an instance with |forward_capacity| and |backward_capacity|.
|
| + // The values are in bytes.
|
| SeekableBuffer(size_t backward_capacity, size_t forward_capacity);
|
|
|
| ~SeekableBuffer();
|
|
|
| - // Read a maximum of |size| bytes into |buffer| from the current read
|
| - // position. Return the number of bytes read.
|
| - // The current read position will advances by the amount of bytes read. If
|
| - // reading caused backward bytes to exceed backward_capacity(), an eviction
|
| - // of backward buffer will be done internally.
|
| + // Reads a maximum of |size| bytes into |buffer| from the current read
|
| + // position. Returns the number of bytes read.
|
| + // The current read position will advance by the amount of bytes read. If
|
| + // reading caused backward_bytes() to exceed backward_capacity(), an eviction
|
| + // of the backward buffer will be done internally.
|
| size_t Read(size_t size, uint8* buffer);
|
|
|
| - // Append |data| with |size| bytes to this buffer. If this buffer becomes full
|
| - // or is already full then return false, otherwise true.
|
| - // Append operations are always successful, a return value of false only means
|
| - // that there's more forward bytes than the capacity, data is still in this
|
| - // buffer, but user is advised not to write any more.
|
| + // Appends |data| with |size| bytes to this buffer. If this buffer becomes
|
| + // full or is already full then returns false, otherwise returns true.
|
| + // Append operations are always successful. A return value of false only means
|
| + // that forward_bytes() is greater than or equals to forward_capacity(). Data
|
| + // appended is still in this buffer but user is advised not to write any more.
|
| bool Append(size_t size, const uint8* data);
|
|
|
| - // Move the read position by an offset of |offset| bytes. If |offset| is
|
| - // positive, the current read position is moved forward. If negative, the
|
| - // current read position is moved backward. A zero |offset| value will keep
|
| - // the current read position stationary.
|
| + // Moves the read position by |offset| bytes. If |offset| is positive, the
|
| + // current read position is moved forward. If negative, the current read
|
| + // position is moved backward. A zero |offset| value will keep the current
|
| + // read position stationary.
|
| // If |offset| exceeds bytes buffered in either direction, reported by
|
| // forward_bytes() when seeking forward and backward_bytes() when seeking
|
| // backward, the seek operation will fail and return value will be false.
|
| // If the seek operation fails, the current read position will not be updated.
|
| - // If a forward seeking caused backward bytes to exceed backward_capacity(),
|
| - // this method call will cause an eviction of backward buffer.
|
| + // If a forward seeking caused backward_bytes() to exceed backward_capacity(),
|
| + // this method call will cause an eviction of the backward buffer.
|
| bool Seek(int32 offset);
|
|
|
| // Returns the number of bytes buffered beyond the current read position.
|
| @@ -91,6 +91,18 @@
|
| size_t backward_capacity() const { return backward_capacity_; }
|
|
|
| private:
|
| + // A structure that contains a block of data.
|
| + struct Buffer {
|
| + explicit Buffer(size_t len) : data(new uint8[len]), size(len) {}
|
| + // Pointer to data.
|
| + scoped_array<uint8> data;
|
| + // Size of this block.
|
| + size_t size;
|
| + };
|
| +
|
| + // Definition of the buffer queue.
|
| + typedef std::list<Buffer*> BufferQueue;
|
| +
|
| // A helper method to evict buffers in the backward direction until backward
|
| // bytes is within the backward capacity.
|
| void EvictBackwardBuffers();
|
| @@ -102,20 +114,20 @@
|
| // will advance but no data will be copied.
|
| size_t InternalRead(size_t size, uint8* data);
|
|
|
| + // A helper method that moves the current read position forward by |size|
|
| + // bytes.
|
| + // If the return value is true, the operation completed successfully.
|
| + // If the return value is false, |size| is greater than forward_bytes() and
|
| + // the seek operation failed. The current read position is not updated.
|
| bool SeekForward(size_t size);
|
|
|
| + // A helper method that moves the current read position backward by |size|
|
| + // bytes.
|
| + // If the return value is true, the operation completed successfully.
|
| + // If the return value is false, |size| is greater than backward_bytes() and
|
| + // the seek operation failed. The current read position is not updated.
|
| bool SeekBackward(size_t size);
|
|
|
| - // A structure that contains a block of data.
|
| - struct Buffer {
|
| - explicit Buffer(size_t len) : data(new uint8[len]), size(len) {}
|
| - // Pointer to data.
|
| - scoped_array<uint8> data;
|
| - // Size of this block.
|
| - size_t size;
|
| - };
|
| -
|
| - typedef std::list<Buffer*> BufferQueue;
|
| BufferQueue::iterator current_buffer_;
|
| BufferQueue buffers_;
|
| size_t current_buffer_offset_;
|
|
|