OLD | NEW |
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 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
150 | 150 |
151 // Width and height of surface. | 151 // Width and height of surface. |
152 size_t width; | 152 size_t width; |
153 size_t height; | 153 size_t height; |
154 | 154 |
155 // Number of planes, typically 1 for packed RGB formats and 3 for planar | 155 // Number of planes, typically 1 for packed RGB formats and 3 for planar |
156 // YUV formats. | 156 // YUV formats. |
157 size_t planes; | 157 size_t planes; |
158 | 158 |
159 // Array of strides for each plane, typically greater or equal to the width | 159 // Array of strides for each plane, typically greater or equal to the width |
160 // of the surface divided by the horizontal sampling period. | 160 // of the surface divided by the horizontal sampling period. Note that |
161 size_t strides[kMaxPlanes]; | 161 // strides can be negative. |
| 162 int32 strides[kMaxPlanes]; |
162 | 163 |
163 // Array of data pointers to each plane. | 164 // Array of data pointers to each plane. |
164 uint8* data[kMaxPlanes]; | 165 uint8* data[kMaxPlanes]; |
165 }; | 166 }; |
166 | 167 |
167 | 168 |
168 class VideoFrame : public StreamSample { | 169 class VideoFrame : public StreamSample { |
169 public: | 170 public: |
170 // Locks the underlying surface and fills out the given VideoSurface and | 171 // Locks the underlying surface and fills out the given VideoSurface and |
171 // returns true if successful, false otherwise. Any additional calls to Lock | 172 // returns true if successful, false otherwise. Any additional calls to Lock |
172 // will fail. | 173 // will fail. |
173 virtual bool Lock(VideoSurface* surface) = 0; | 174 virtual bool Lock(VideoSurface* surface) = 0; |
174 | 175 |
175 // Unlocks the underlying surface, the VideoSurface acquired from Lock is no | 176 // Unlocks the underlying surface, the VideoSurface acquired from Lock is no |
176 // longer guaranteed to be valid. | 177 // longer guaranteed to be valid. |
177 virtual void Unlock() = 0; | 178 virtual void Unlock() = 0; |
178 }; | 179 }; |
179 | 180 |
180 } // namespace media | 181 } // namespace media |
181 | 182 |
182 #endif // MEDIA_BASE_BUFFERS_H_ | 183 #endif // MEDIA_BASE_BUFFERS_H_ |
OLD | NEW |