summaryrefslogtreecommitdiffstats
path: root/media/base/buffers.h
diff options
context:
space:
mode:
authorscherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2008-12-04 02:04:16 +0000
committerscherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2008-12-04 02:04:16 +0000
commit35496ce00c46c40baac183e083057b4f2a6da76f (patch)
tree957246f518c26dd6f7bb435209491479557670d7 /media/base/buffers.h
parentf2521bc0273d047f2b4c27167dacf9752640c045 (diff)
downloadchromium_src-35496ce00c46c40baac183e083057b4f2a6da76f.zip
chromium_src-35496ce00c46c40baac183e083057b4f2a6da76f.tar.gz
chromium_src-35496ce00c46c40baac183e083057b4f2a6da76f.tar.bz2
Set svn:eol-style LF for .h, .cc and .scons files.
Set svn:eol-style native for .vcproj files. Set svn:eol-style CRLF for .sln files. Review URL: http://codereview.chromium.org/12931 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@6346 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media/base/buffers.h')
-rw-r--r--media/base/buffers.h300
1 files changed, 150 insertions, 150 deletions
diff --git a/media/base/buffers.h b/media/base/buffers.h
index 68ed66f..4e08437 100644
--- a/media/base/buffers.h
+++ b/media/base/buffers.h
@@ -1,152 +1,152 @@
// Copyright (c) 2006-2008 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.
-
-#ifndef MEDIA_BASE_BUFFERS_H_
-#define MEDIA_BASE_BUFFERS_H_
-
-#include "base/basictypes.h"
-#include "base/ref_counted.h"
-
-namespace media {
-
-// NOTE: this isn't a true interface since RefCountedThreadSafe has non-virtual
-// members, therefore implementors should NOT subclass RefCountedThreadSafe.
-//
-// If you do, AddRef/Release will have different outcomes depending on the
-// current type of the pointer (StreamSampleInterface vs. SomeImplementation).
-class StreamSampleInterface :
- public base::RefCountedThreadSafe<StreamSampleInterface> {
- public:
- virtual ~StreamSampleInterface() {}
-
- virtual int64 GetTimestamp() = 0;
- virtual int64 GetDuration() = 0;
- virtual void SetTimestamp(int64 timestamp) = 0;
- virtual void SetDuration(int64 duration) = 0;
-};
-
-
-class BufferInterface : public StreamSampleInterface {
- public:
- virtual ~BufferInterface() {}
-
- // Returns a read only pointer to the buffer data.
- virtual const char* GetData() = 0;
-
- // Returns the size of valid data in bytes.
- virtual size_t GetDataSize() = 0;
-};
-
-
-class WritableBufferInterface : public BufferInterface {
- public:
- virtual ~WritableBufferInterface() {}
-
- // Returns a read-write pointer to the buffer data.
- virtual char* GetWritableData() = 0;
-
- // Updates the size of valid data in bytes, which must be less than or equal
- // to GetBufferSize.
- virtual void SetDataSize(size_t data_size) = 0;
-
- // Returns the maximum allocated size for this buffer.
- virtual size_t GetBufferSize() = 0;
-};
-
-
-struct VideoSurface {
- static const size_t kMaxPlanes = 3;
-
- // Surface formats roughly based on FOURCC labels, see:
- // http://www.fourcc.org/rgb.php
- // http://www.fourcc.org/yuv.php
- enum Format {
- RGB555, // 16bpp RGB packed 5:5:5
- RGB565, // 16bpp RGB packed 5:6:5
- RGB24, // 24bpp RGB packed 8:8:8
- RGB32, // 32bpp RGB packed with extra byte 8:8:8
- RGBA, // 32bpp RGBA packed 8:8:8:8
- YV12, // 12bpp YVU planar 1x1 Y, 2x2 VU samples
- YV16, // 16bpp YVU planar 1x1 Y, 2x1 VU samples
- };
-
- // Surface format.
- Format format;
-
- // Width and height of surface.
- size_t width;
- size_t height;
-
- // Number of planes, typically 1 for packed RGB formats and 3 for planar
- // YUV formats.
- size_t planes;
-
- // Array of strides for each plane, typically greater or equal to the width
- // of the surface divided by the horizontal sampling period.
- size_t strides[kMaxPlanes];
-
- // Array of data pointers to each plane.
- char* data[kMaxPlanes];
-};
-
-
-class VideoFrameInterface : public StreamSampleInterface {
- public:
- virtual ~VideoFrameInterface() {}
-
- // Locks the underlying surface and fills out the given VideoSurface and
- // returns true if successful, false otherwise.
- virtual bool Lock(VideoSurface* surface) = 0;
-
- // Unlocks the underlying surface, any previous VideoSurfaces are no longer
- // guaranteed to be valid.
- virtual void Unlock() = 0;
-};
-
-
-template <class BufferType>
-class AssignableInterface {
- public:
- virtual ~AssignableInterface() {}
-
- // Assigns a buffer to the owner.
- virtual void SetBuffer(BufferType* buffer) = 0;
-
- // Notifies the owner that an assignment has been completed.
- virtual void OnAssignment() = 0;
-};
-
-
-// Template for easily creating AssignableInterface buffers. Pass in the
-// pointer of the object to receive the OnAssignment callback.
-template <class OwnerType, class BufferType>
-class AssignableBuffer : public AssignableInterface<BufferType>,
- public base::RefCountedThreadSafe<AssignableBuffer<OwnerType, BufferType> > {
- public:
- explicit AssignableBuffer(OwnerType* owner)
- : owner_(owner),
- buffer_(NULL) {
- DCHECK(owner_);
- }
- virtual ~AssignableBuffer() {}
-
- // AssignableBufferInterface<BufferType>
- virtual void SetBuffer(BufferType* buffer) {
- buffer_ = buffer;
- }
-
- virtual void OnAssignment() {
- owner_->OnAssignment(buffer_.get());
- }
-
- private:
- OwnerType* owner_;
- scoped_refptr<BufferType> buffer_;
-
- DISALLOW_COPY_AND_ASSIGN(AssignableBuffer);
-};
-
-} // namespace media
-
-#endif // MEDIA_BASE_BUFFERS_H_
+// found in the LICENSE file.
+
+#ifndef MEDIA_BASE_BUFFERS_H_
+#define MEDIA_BASE_BUFFERS_H_
+
+#include "base/basictypes.h"
+#include "base/ref_counted.h"
+
+namespace media {
+
+// NOTE: this isn't a true interface since RefCountedThreadSafe has non-virtual
+// members, therefore implementors should NOT subclass RefCountedThreadSafe.
+//
+// If you do, AddRef/Release will have different outcomes depending on the
+// current type of the pointer (StreamSampleInterface vs. SomeImplementation).
+class StreamSampleInterface :
+ public base::RefCountedThreadSafe<StreamSampleInterface> {
+ public:
+ virtual ~StreamSampleInterface() {}
+
+ virtual int64 GetTimestamp() = 0;
+ virtual int64 GetDuration() = 0;
+ virtual void SetTimestamp(int64 timestamp) = 0;
+ virtual void SetDuration(int64 duration) = 0;
+};
+
+
+class BufferInterface : public StreamSampleInterface {
+ public:
+ virtual ~BufferInterface() {}
+
+ // Returns a read only pointer to the buffer data.
+ virtual const char* GetData() = 0;
+
+ // Returns the size of valid data in bytes.
+ virtual size_t GetDataSize() = 0;
+};
+
+
+class WritableBufferInterface : public BufferInterface {
+ public:
+ virtual ~WritableBufferInterface() {}
+
+ // Returns a read-write pointer to the buffer data.
+ virtual char* GetWritableData() = 0;
+
+ // Updates the size of valid data in bytes, which must be less than or equal
+ // to GetBufferSize.
+ virtual void SetDataSize(size_t data_size) = 0;
+
+ // Returns the maximum allocated size for this buffer.
+ virtual size_t GetBufferSize() = 0;
+};
+
+
+struct VideoSurface {
+ static const size_t kMaxPlanes = 3;
+
+ // Surface formats roughly based on FOURCC labels, see:
+ // http://www.fourcc.org/rgb.php
+ // http://www.fourcc.org/yuv.php
+ enum Format {
+ RGB555, // 16bpp RGB packed 5:5:5
+ RGB565, // 16bpp RGB packed 5:6:5
+ RGB24, // 24bpp RGB packed 8:8:8
+ RGB32, // 32bpp RGB packed with extra byte 8:8:8
+ RGBA, // 32bpp RGBA packed 8:8:8:8
+ YV12, // 12bpp YVU planar 1x1 Y, 2x2 VU samples
+ YV16, // 16bpp YVU planar 1x1 Y, 2x1 VU samples
+ };
+
+ // Surface format.
+ Format format;
+
+ // Width and height of surface.
+ size_t width;
+ size_t height;
+
+ // Number of planes, typically 1 for packed RGB formats and 3 for planar
+ // YUV formats.
+ size_t planes;
+
+ // Array of strides for each plane, typically greater or equal to the width
+ // of the surface divided by the horizontal sampling period.
+ size_t strides[kMaxPlanes];
+
+ // Array of data pointers to each plane.
+ char* data[kMaxPlanes];
+};
+
+
+class VideoFrameInterface : public StreamSampleInterface {
+ public:
+ virtual ~VideoFrameInterface() {}
+
+ // Locks the underlying surface and fills out the given VideoSurface and
+ // returns true if successful, false otherwise.
+ virtual bool Lock(VideoSurface* surface) = 0;
+
+ // Unlocks the underlying surface, any previous VideoSurfaces are no longer
+ // guaranteed to be valid.
+ virtual void Unlock() = 0;
+};
+
+
+template <class BufferType>
+class AssignableInterface {
+ public:
+ virtual ~AssignableInterface() {}
+
+ // Assigns a buffer to the owner.
+ virtual void SetBuffer(BufferType* buffer) = 0;
+
+ // Notifies the owner that an assignment has been completed.
+ virtual void OnAssignment() = 0;
+};
+
+
+// Template for easily creating AssignableInterface buffers. Pass in the
+// pointer of the object to receive the OnAssignment callback.
+template <class OwnerType, class BufferType>
+class AssignableBuffer : public AssignableInterface<BufferType>,
+ public base::RefCountedThreadSafe<AssignableBuffer<OwnerType, BufferType> > {
+ public:
+ explicit AssignableBuffer(OwnerType* owner)
+ : owner_(owner),
+ buffer_(NULL) {
+ DCHECK(owner_);
+ }
+ virtual ~AssignableBuffer() {}
+
+ // AssignableBufferInterface<BufferType>
+ virtual void SetBuffer(BufferType* buffer) {
+ buffer_ = buffer;
+ }
+
+ virtual void OnAssignment() {
+ owner_->OnAssignment(buffer_.get());
+ }
+
+ private:
+ OwnerType* owner_;
+ scoped_refptr<BufferType> buffer_;
+
+ DISALLOW_COPY_AND_ASSIGN(AssignableBuffer);
+};
+
+} // namespace media
+
+#endif // MEDIA_BASE_BUFFERS_H_