Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(259)

Side by Side Diff: media/base/buffers.h

Issue 46015: Buffer interface is not uint8*. Slight change to way data buffers are create... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | media/base/data_buffer.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2008-2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2008-2009 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 // Defines various types of timestamped media buffers used for transporting 5 // Defines various types of timestamped media buffers used for transporting
6 // data between filters. Every buffer contains a timestamp in microseconds 6 // data between filters. Every buffer contains a timestamp in microseconds
7 // describing the relative position of the buffer within the media stream, and 7 // describing the relative position of the buffer within the media stream, and
8 // the duration in microseconds for the length of time the buffer will be 8 // the duration in microseconds for the length of time the buffer will be
9 // rendered. 9 // rendered.
10 // 10 //
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
90 bool discontinuous_; 90 bool discontinuous_;
91 91
92 private: 92 private:
93 DISALLOW_COPY_AND_ASSIGN(StreamSample); 93 DISALLOW_COPY_AND_ASSIGN(StreamSample);
94 }; 94 };
95 95
96 96
97 class Buffer : public StreamSample { 97 class Buffer : public StreamSample {
98 public: 98 public:
99 // Returns a read only pointer to the buffer data. 99 // Returns a read only pointer to the buffer data.
100 virtual const char* GetData() const = 0; 100 virtual const uint8* GetData() const = 0;
101 101
102 // Returns the size of valid data in bytes. 102 // Returns the size of valid data in bytes.
103 virtual size_t GetDataSize() const = 0; 103 virtual size_t GetDataSize() const = 0;
104 }; 104 };
105 105
106 106
107 class WritableBuffer : public Buffer { 107 class WritableBuffer : public Buffer {
108 public: 108 public:
109 // Returns a read-write pointer to the buffer data. 109 // Returns a read-write pointer to the buffer data. When this method is
110 virtual char* GetWritableData() = 0; 110 // called, any pointers previously returned from this method are invalid, and
111 // any data previously written to the buffer is invalid. The buffer size
112 // is guaranteed to be at least the size of |buffer_size|. The size
113 // that the GetDataSize() method will return is set to |buffer_size|.
114 // If, after filling the buffer, the caller wants to set the size to a smaller
115 // value then they can call the SetDataSize() method.
116 virtual uint8* GetWritableData(size_t buffer_size) = 0;
111 117
112 // Updates the size of valid data in bytes, which must be less than or equal 118 // Updates the size of valid data in bytes, which must be less than or equal
113 // to GetBufferSize. 119 // to the |buffer_size| passed to GetWritableData().
114 virtual void SetDataSize(size_t data_size) = 0; 120 virtual void SetDataSize(size_t data_size) = 0;
115
116 // Returns the maximum allocated size for this buffer.
117 virtual size_t GetBufferSize() const = 0;
118 }; 121 };
119 122
120 123
121 struct VideoSurface { 124 struct VideoSurface {
122 static const size_t kMaxPlanes = 3; 125 static const size_t kMaxPlanes = 3;
123 126
124 static const size_t kNumRGBPlanes = 1; 127 static const size_t kNumRGBPlanes = 1;
125 static const size_t kRGBPlane = 0; 128 static const size_t kRGBPlane = 0;
126 129
127 static const size_t kNumYUVPlanes = 3; 130 static const size_t kNumYUVPlanes = 3;
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
224 private: 227 private:
225 OwnerType* owner_; 228 OwnerType* owner_;
226 scoped_refptr<BufferType> buffer_; 229 scoped_refptr<BufferType> buffer_;
227 230
228 DISALLOW_COPY_AND_ASSIGN(AssignableBuffer); 231 DISALLOW_COPY_AND_ASSIGN(AssignableBuffer);
229 }; 232 };
230 233
231 } // namespace media 234 } // namespace media
232 235
233 #endif // MEDIA_BASE_BUFFERS_H_ 236 #endif // MEDIA_BASE_BUFFERS_H_
OLDNEW
« no previous file with comments | « no previous file | media/base/data_buffer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698