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

Side by Side Diff: media/video/picture.h

Issue 7057027: Updated OMX decoder for recent PPAPI changes, and added to the build. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: TODOd the removal of Picture::bitstream_buffer_id_. Created 9 years, 7 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
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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_VIDEO_PICTURE_H_ 5 #ifndef MEDIA_VIDEO_PICTURE_H_
6 #define MEDIA_VIDEO_PICTURE_H_ 6 #define MEDIA_VIDEO_PICTURE_H_
7 7
8 #include "base/basictypes.h" 8 #include "base/basictypes.h"
9 #include "ui/gfx/size.h" 9 #include "ui/gfx/size.h"
10 10
11 struct PP_BufferInfo_Dev; 11 struct PP_BufferInfo_Dev;
12 struct PP_GLESBuffer_Dev; 12 struct PP_GLESBuffer_Dev;
13 struct PP_Picture_Dev; 13 struct PP_Picture_Dev;
14 struct PP_SysmemBuffer_Dev; 14 struct PP_SysmemBuffer_Dev;
15 15
16 namespace media { 16 namespace media {
17 17
18 // Information about the picture buffer. 18 // Common information about GLES & Sysmem picture buffers.
19 // This is the media-namespace equivalent of PP_BufferInfo_Dev. 19 // This is the media-namespace equivalent of PP_BufferInfo_Dev.
20 class BufferInfo { 20 class BaseBuffer {
21 public: 21 public:
22 BufferInfo(int32 id, gfx::Size size); 22 BaseBuffer(int32 id, gfx::Size size);
23 BufferInfo(const PP_BufferInfo_Dev& info); 23 BaseBuffer(const PP_BufferInfo_Dev& info);
24 virtual ~BaseBuffer();
24 25
25 // Returns the client-specified id of the buffer. 26 // Returns the client-specified id of the buffer.
26 int32 id() const { 27 int32 id() const {
27 return id_; 28 return id_;
28 } 29 }
29 30
30 // Returns the size of the buffer. 31 // Returns the size of the buffer.
31 gfx::Size size() const { 32 gfx::Size size() const {
32 return size_; 33 return size_;
33 } 34 }
34 35
35 private: 36 private:
36 int32 id_; 37 int32 id_;
37 gfx::Size size_; 38 gfx::Size size_;
38 }; 39 };
39 40
40 // A picture buffer that is composed of a GLES2 texture and context. 41 // A picture buffer that is composed of a GLES2 texture and context.
41 // This is the media-namespace equivalent of PP_GLESBuffer_Dev. 42 // This is the media-namespace equivalent of PP_GLESBuffer_Dev.
42 class GLESBuffer { 43 class GLESBuffer : public BaseBuffer {
43 public: 44 public:
44 GLESBuffer(int32 id, gfx::Size size, uint32 texture_id, uint32 context_id); 45 GLESBuffer(int32 id, gfx::Size size, uint32 texture_id, uint32 context_id);
45 GLESBuffer(const PP_GLESBuffer_Dev& buffer); 46 GLESBuffer(const PP_GLESBuffer_Dev& buffer);
46 47
47 // Returns the id of the texture. 48 // Returns the id of the texture.
48 uint32 texture_id() const { 49 uint32 texture_id() const {
49 return texture_id_; 50 return texture_id_;
50 } 51 }
51 52
52 // Returns the id of the context in which this texture lives. 53 // Returns the id of the context in which this texture lives.
53 // TODO(vrk): I'm not sure if "id" is what we want, or some reference to the 54 // TODO(vrk): I'm not sure if "id" is what we want, or some reference to the
54 // PPB_Context3D_Dev. Not sure how this eventually gets used. 55 // PPB_Context3D_Dev. Not sure how this eventually gets used.
55 uint32 context_id() const { 56 uint32 context_id() const {
56 return context_id_; 57 return context_id_;
57 } 58 }
58 59
59 // Returns information regarding the buffer.
60 const BufferInfo& buffer_info() const {
61 return info_;
62 }
63
64 private: 60 private:
65 uint32 texture_id_; 61 uint32 texture_id_;
66 uint32 context_id_; 62 uint32 context_id_;
67 BufferInfo info_;
68 }; 63 };
69 64
70 // A picture buffer that lives in system memory. 65 // A picture buffer that lives in system memory.
71 // This is the media-namespace equivalent of PP_SysmemBuffer_Dev. 66 // This is the media-namespace equivalent of PP_SysmemBuffer_Dev.
72 class SysmemBuffer { 67 class SysmemBuffer : public BaseBuffer {
73 public: 68 public:
74 SysmemBuffer(int32 id, gfx::Size size, void* data); 69 SysmemBuffer(int32 id, gfx::Size size, void* data);
75 SysmemBuffer(const PP_SysmemBuffer_Dev&); 70 SysmemBuffer(const PP_SysmemBuffer_Dev&);
76 71
77 // Returns a pointer to the buffer data. 72 // Returns a pointer to the buffer data.
78 void* data() const { 73 void* data() const {
79 return data_; 74 return data_;
80 } 75 }
81 76
82 // Returns information regarding the buffer.
83 const BufferInfo& buffer_info() const {
84 return info_;
85 }
86
87 private: 77 private:
88 void* data_; 78 void* data_;
89 BufferInfo info_;
90 }; 79 };
91 80
92 // A decoded picture frame. 81 // A decoded picture frame.
93 // This is the media-namespace equivalent of PP_Picture_Dev. 82 // This is the media-namespace equivalent of PP_Picture_Dev.
94 class Picture { 83 class Picture {
95 public: 84 public:
96 Picture(int32 picture_buffer_id, int32 bitstream_buffer_id, 85 Picture(int32 picture_buffer_id, int32 bitstream_buffer_id,
97 gfx::Size visible_size, gfx::Size decoded_size); 86 gfx::Size visible_size, gfx::Size decoded_size);
98 Picture(const PP_Picture_Dev& picture); 87 Picture(const PP_Picture_Dev& picture);
99 88
100 // Returns the id of the picture buffer where this picture is contained. 89 // Returns the id of the picture buffer where this picture is contained.
101 int32 picture_buffer_id() const { 90 int32 picture_buffer_id() const {
102 return picture_buffer_id_; 91 return picture_buffer_id_;
103 } 92 }
104 93
105 // Returns the id of the bitstream buffer from which this frame was decoded. 94 // Returns the id of the bitstream buffer from which this frame was decoded.
106 // TODO(vrk): Handle the case where a picture can span multiple buffers. 95 // TODO(fischman,vrk): Remove this field; pictures can span arbitrarily many
96 // BitstreamBuffers, and it's not clear what clients would do with this
97 // information, anyway.
107 int32 bitstream_buffer_id() const { 98 int32 bitstream_buffer_id() const {
108 return bitstream_buffer_id_; 99 return bitstream_buffer_id_;
109 } 100 }
110 101
111 // Returns the visible size of the decoded picture in pixels. 102 // Returns the visible size of the decoded picture in pixels.
112 gfx::Size visible_size() const { 103 gfx::Size visible_size() const {
113 return visible_size_; 104 return visible_size_;
114 } 105 }
115 106
116 // Returns the decoded size of the decoded picture in pixels. 107 // Returns the decoded size of the decoded picture in pixels.
117 gfx::Size decoded_size() const { 108 gfx::Size decoded_size() const {
118 return decoded_size_; 109 return decoded_size_;
119 } 110 }
120 111
121 private: 112 private:
122 int32 picture_buffer_id_; 113 int32 picture_buffer_id_;
123 int32 bitstream_buffer_id_; 114 int32 bitstream_buffer_id_;
124 gfx::Size visible_size_; 115 gfx::Size visible_size_;
125 gfx::Size decoded_size_; 116 gfx::Size decoded_size_;
126 }; 117 };
127 118
128 } // namespace media 119 } // namespace media
129 120
130 #endif // MEDIA_VIDEO_PICTURE_H_ 121 #endif // MEDIA_VIDEO_PICTURE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698