OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef MEDIA_FILTERS_SOURCE_BUFFER_RANGE_H_ | 5 #ifndef MEDIA_FILTERS_SOURCE_BUFFER_RANGE_H_ |
6 #define MEDIA_FILTERS_SOURCE_BUFFER_RANGE_H_ | 6 #define MEDIA_FILTERS_SOURCE_BUFFER_RANGE_H_ |
7 | 7 |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 | 9 |
10 #include <map> | 10 #include <map> |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
107 // Returns true if everything in the range was deleted. Otherwise | 107 // Returns true if everything in the range was deleted. Otherwise |
108 // returns false. | 108 // returns false. |
109 bool TruncateAt(DecodeTimestamp timestamp, | 109 bool TruncateAt(DecodeTimestamp timestamp, |
110 BufferQueue* deleted_buffers, bool is_exclusive); | 110 BufferQueue* deleted_buffers, bool is_exclusive); |
111 // Deletes all buffers in range. | 111 // Deletes all buffers in range. |
112 void DeleteAll(BufferQueue* deleted_buffers); | 112 void DeleteAll(BufferQueue* deleted_buffers); |
113 | 113 |
114 // Deletes a GOP from the front or back of the range and moves these | 114 // Deletes a GOP from the front or back of the range and moves these |
115 // buffers into |deleted_buffers|. Returns the number of bytes deleted from | 115 // buffers into |deleted_buffers|. Returns the number of bytes deleted from |
116 // the range (i.e. the size in bytes of |deleted_buffers|). | 116 // the range (i.e. the size in bytes of |deleted_buffers|). |
| 117 // This range must NOT be empty when these methods are called. |
| 118 // The GOP being deleted must NOT contain the next buffer position. |
117 size_t DeleteGOPFromFront(BufferQueue* deleted_buffers); | 119 size_t DeleteGOPFromFront(BufferQueue* deleted_buffers); |
118 size_t DeleteGOPFromBack(BufferQueue* deleted_buffers); | 120 size_t DeleteGOPFromBack(BufferQueue* deleted_buffers); |
119 | 121 |
120 // Gets the range of GOP to secure at least |bytes_to_free| from | 122 // Gets the range of GOP to secure at least |bytes_to_free| from |
121 // [|start_timestamp|, |end_timestamp|). | 123 // [|start_timestamp|, |end_timestamp|). |
122 // Returns the size of the buffers to secure if the buffers of | 124 // Returns the size of the buffers to secure if the buffers of |
123 // [|start_timestamp|, |end_removal_timestamp|) is removed. | 125 // [|start_timestamp|, |end_removal_timestamp|) is removed. |
124 // Will not update |end_removal_timestamp| if the returned size is 0. | 126 // Will not update |end_removal_timestamp| if the returned size is 0. |
125 size_t GetRemovalGOP( | 127 size_t GetRemovalGOP( |
126 DecodeTimestamp start_timestamp, DecodeTimestamp end_timestamp, | 128 DecodeTimestamp start_timestamp, DecodeTimestamp end_timestamp, |
127 size_t bytes_to_free, DecodeTimestamp* end_removal_timestamp); | 129 size_t bytes_to_free, DecodeTimestamp* end_removal_timestamp); |
128 | 130 |
| 131 // Returns true iff the buffered end time of the first GOP in this range is |
| 132 // at or before |media_time|. |
129 bool FirstGOPEarlierThanMediaTime(DecodeTimestamp media_time) const; | 133 bool FirstGOPEarlierThanMediaTime(DecodeTimestamp media_time) const; |
130 | 134 |
131 // Indicates whether the GOP at the beginning or end of the range contains the | 135 // Indicates whether the GOP at the beginning or end of the range contains the |
132 // next buffer position. | 136 // next buffer position. |
133 bool FirstGOPContainsNextBufferPosition() const; | 137 bool FirstGOPContainsNextBufferPosition() const; |
134 bool LastGOPContainsNextBufferPosition() const; | 138 bool LastGOPContainsNextBufferPosition() const; |
135 | 139 |
136 // Updates |out_buffer| with the next buffer in presentation order. Seek() | 140 // Updates |out_buffer| with the next buffer in presentation order. Seek() |
137 // must be called before calls to GetNextBuffer(), and buffers are returned | 141 // must be called before calls to GetNextBuffer(), and buffers are returned |
138 // in order from the last call to Seek(). Returns true if |out_buffer| is | 142 // in order from the last call to Seek(). Returns true if |out_buffer| is |
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
290 | 294 |
291 // Stores the amount of memory taken up by the data in |buffers_|. | 295 // Stores the amount of memory taken up by the data in |buffers_|. |
292 size_t size_in_bytes_; | 296 size_t size_in_bytes_; |
293 | 297 |
294 DISALLOW_COPY_AND_ASSIGN(SourceBufferRange); | 298 DISALLOW_COPY_AND_ASSIGN(SourceBufferRange); |
295 }; | 299 }; |
296 | 300 |
297 } // namespace media | 301 } // namespace media |
298 | 302 |
299 #endif // MEDIA_FILTERS_SOURCE_BUFFER_RANGE_H_ | 303 #endif // MEDIA_FILTERS_SOURCE_BUFFER_RANGE_H_ |
OLD | NEW |