summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorfischman@chromium.org <fischman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-25 20:25:03 +0000
committerfischman@chromium.org <fischman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-25 20:25:03 +0000
commitee2a19b11962637b36171fef40eb85ab93958036 (patch)
treed934cc904a4515b9358efff92eae33bd0b29cef1 /media
parent76420799ecf0dae804bd267d8336e96c031752ce (diff)
downloadchromium_src-ee2a19b11962637b36171fef40eb85ab93958036.zip
chromium_src-ee2a19b11962637b36171fef40eb85ab93958036.tar.gz
chromium_src-ee2a19b11962637b36171fef40eb85ab93958036.tar.bz2
Revert 86681 - Updated OMX decoder for recent PPAPI changes, and added to the build.
Had to move from content/gpu to content/common/gpu to allow gpu_video_service.cc to depend on the decoder. Removed some dead code and did some random cleanup while I was in there. BUG=none TEST=chrome compiles on cros/arm! Review URL: http://codereview.chromium.org/7057027 TBR=fischman@chromium.org Review URL: http://codereview.chromium.org/6979017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@86687 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media')
-rw-r--r--media/video/picture.cc13
-rw-r--r--media/video/picture.h29
-rw-r--r--media/video/video_decode_accelerator.h2
3 files changed, 29 insertions, 15 deletions
diff --git a/media/video/picture.cc b/media/video/picture.cc
index f2d6632..581e3c9 100644
--- a/media/video/picture.cc
+++ b/media/video/picture.cc
@@ -6,22 +6,25 @@
namespace media {
-BaseBuffer::~BaseBuffer() {}
-
// Implementations for the other constructors are found in
// webkit/plugins/ppapi/ppb_video_decoder_impl.cc.
// They are not included in this file because it would require
// media/ to depend on files in ppapi/.
-BaseBuffer::BaseBuffer(int32 id, gfx::Size size) : id_(id), size_(size) {
+BufferInfo::BufferInfo(int32 id, gfx::Size size)
+ : id_(id),
+ size_(size) {
}
GLESBuffer::GLESBuffer(
int32 id, gfx::Size size, uint32 texture_id, uint32 context_id)
- : BaseBuffer(id, size), texture_id_(texture_id), context_id_(context_id) {
+ : texture_id_(texture_id),
+ context_id_(context_id),
+ info_(id, size) {
}
SysmemBuffer::SysmemBuffer(int32 id, gfx::Size size, void* data)
- : BaseBuffer(id, size), data_(data) {
+ : data_(data),
+ info_(id, size) {
}
Picture::Picture(int32 picture_buffer_id, int32 bitstream_buffer_id,
diff --git a/media/video/picture.h b/media/video/picture.h
index 860a4ee..f9611bd 100644
--- a/media/video/picture.h
+++ b/media/video/picture.h
@@ -15,13 +15,12 @@ struct PP_SysmemBuffer_Dev;
namespace media {
-// Common information about GLES & Sysmem picture buffers.
+// Information about the picture buffer.
// This is the media-namespace equivalent of PP_BufferInfo_Dev.
-class BaseBuffer {
+class BufferInfo {
public:
- BaseBuffer(int32 id, gfx::Size size);
- BaseBuffer(const PP_BufferInfo_Dev& info);
- virtual ~BaseBuffer();
+ BufferInfo(int32 id, gfx::Size size);
+ BufferInfo(const PP_BufferInfo_Dev& info);
// Returns the client-specified id of the buffer.
int32 id() const {
@@ -40,7 +39,7 @@ class BaseBuffer {
// A picture buffer that is composed of a GLES2 texture and context.
// This is the media-namespace equivalent of PP_GLESBuffer_Dev.
-class GLESBuffer : public BaseBuffer {
+class GLESBuffer {
public:
GLESBuffer(int32 id, gfx::Size size, uint32 texture_id, uint32 context_id);
GLESBuffer(const PP_GLESBuffer_Dev& buffer);
@@ -57,14 +56,20 @@ class GLESBuffer : public BaseBuffer {
return context_id_;
}
+ // Returns information regarding the buffer.
+ const BufferInfo& buffer_info() const {
+ return info_;
+ }
+
private:
uint32 texture_id_;
uint32 context_id_;
+ BufferInfo info_;
};
// A picture buffer that lives in system memory.
// This is the media-namespace equivalent of PP_SysmemBuffer_Dev.
-class SysmemBuffer : public BaseBuffer {
+class SysmemBuffer {
public:
SysmemBuffer(int32 id, gfx::Size size, void* data);
SysmemBuffer(const PP_SysmemBuffer_Dev&);
@@ -74,8 +79,14 @@ class SysmemBuffer : public BaseBuffer {
return data_;
}
+ // Returns information regarding the buffer.
+ const BufferInfo& buffer_info() const {
+ return info_;
+ }
+
private:
void* data_;
+ BufferInfo info_;
};
// A decoded picture frame.
@@ -92,9 +103,7 @@ class Picture {
}
// Returns the id of the bitstream buffer from which this frame was decoded.
- // TODO(fischman,vrk): Remove this field; pictures can span arbitrarily many
- // BitstreamBuffers, and it's not clear what clients would do with this
- // information, anyway.
+ // TODO(vrk): Handle the case where a picture can span multiple buffers.
int32 bitstream_buffer_id() const {
return bitstream_buffer_id_;
}
diff --git a/media/video/video_decode_accelerator.h b/media/video/video_decode_accelerator.h
index 115315a..807f923 100644
--- a/media/video/video_decode_accelerator.h
+++ b/media/video/video_decode_accelerator.h
@@ -15,6 +15,8 @@
namespace media {
+typedef Callback0::Type VideoDecodeAcceleratorCallback;
+
// Enumeration defining global dictionary ranges for various purposes that are
// used to handle the configurations of the video decoder.
enum VideoAttributeKey {