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

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

Issue 7260008: Implement proper synchronization between HW video decode IPC and CommandBuffer. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fixing compilation errors from bots. Created 9 years, 5 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/gl/gl_context.h" 9 #include "ui/gfx/gl/gl_context.h"
10 #include "ui/gfx/size.h" 10 #include "ui/gfx/size.h"
11 11
12 struct PP_BufferInfo_Dev;
13 struct PP_GLESBuffer_Dev;
14 struct PP_Picture_Dev;
15 struct PP_SysmemBuffer_Dev;
16
17 namespace media { 12 namespace media {
18 13
19 // Common information about GLES & Sysmem picture buffers. 14 // Common information about GLES & Sysmem picture buffers.
20 // This is the media-namespace equivalent of PP_BufferInfo_Dev. 15 // This is the media-namespace equivalent of PP_BufferInfo_Dev.
21 class BaseBuffer { 16 class BaseBuffer {
22 public: 17 public:
23 BaseBuffer(int32 id, gfx::Size size); 18 BaseBuffer(int32 id, gfx::Size size);
24 BaseBuffer(const PP_BufferInfo_Dev& info);
25 virtual ~BaseBuffer(); 19 virtual ~BaseBuffer();
26 20
27 // Returns the client-specified id of the buffer. 21 // Returns the client-specified id of the buffer.
28 int32 id() const { 22 int32 id() const {
29 return id_; 23 return id_;
30 } 24 }
31 25
32 // Returns the size of the buffer. 26 // Returns the size of the buffer.
33 gfx::Size size() const { 27 gfx::Size size() const {
34 return size_; 28 return size_;
35 } 29 }
36 30
37 private: 31 private:
38 int32 id_; 32 int32 id_;
39 gfx::Size size_; 33 gfx::Size size_;
40 }; 34 };
41 35
42 // A picture buffer that is composed of a GLES2 texture and context. 36 // A picture buffer that is composed of a GLES2 texture and context.
43 // This is the media-namespace equivalent of PP_GLESBuffer_Dev. 37 // This is the media-namespace equivalent of PP_GLESBuffer_Dev.
44 class GLESBuffer : public BaseBuffer { 38 class GLESBuffer : public BaseBuffer {
45 public: 39 public:
46 GLESBuffer(int32 id, gfx::Size size, uint32 texture_id); 40 GLESBuffer(int32 id, gfx::Size size, uint32 texture_id);
47 GLESBuffer(const PP_GLESBuffer_Dev& buffer);
48 41
49 // Returns the id of the texture. 42 // Returns the id of the texture.
50 // NOTE: The texture id in the renderer process corresponds to a different 43 // NOTE: The texture id in the renderer process corresponds to a different
51 // texture id in the GPU process. 44 // texture id in the GPU process.
52 uint32 texture_id() const { 45 uint32 texture_id() const {
53 return texture_id_; 46 return texture_id_;
54 } 47 }
55 48
56 private: 49 private:
57 uint32 texture_id_; 50 uint32 texture_id_;
58 }; 51 };
59 52
60 // A picture buffer that lives in system memory. 53 // A picture buffer that lives in system memory.
61 // This is the media-namespace equivalent of PP_SysmemBuffer_Dev. 54 // This is the media-namespace equivalent of PP_SysmemBuffer_Dev.
62 class SysmemBuffer : public BaseBuffer { 55 class SysmemBuffer : public BaseBuffer {
63 public: 56 public:
64 SysmemBuffer(int32 id, gfx::Size size, void* data); 57 SysmemBuffer(int32 id, gfx::Size size, void* data);
65 SysmemBuffer(const PP_SysmemBuffer_Dev&);
66 58
67 // Returns a pointer to the buffer data. 59 // Returns a pointer to the buffer data.
68 void* data() const { 60 void* data() const {
69 return data_; 61 return data_;
70 } 62 }
71 63
72 private: 64 private:
73 void* data_; 65 void* data_;
74 }; 66 };
75 67
76 // A decoded picture frame. 68 // A decoded picture frame.
77 // This is the media-namespace equivalent of PP_Picture_Dev. 69 // This is the media-namespace equivalent of PP_Picture_Dev.
78 class Picture { 70 class Picture {
79 public: 71 public:
80 Picture(int32 picture_buffer_id, int32 bitstream_buffer_id, 72 Picture(int32 picture_buffer_id, int32 bitstream_buffer_id,
81 gfx::Size visible_size, gfx::Size decoded_size); 73 gfx::Size visible_size, gfx::Size decoded_size);
82 Picture(const PP_Picture_Dev& picture);
83 74
84 // Returns the id of the picture buffer where this picture is contained. 75 // Returns the id of the picture buffer where this picture is contained.
85 int32 picture_buffer_id() const { 76 int32 picture_buffer_id() const {
86 return picture_buffer_id_; 77 return picture_buffer_id_;
87 } 78 }
88 79
89 // Returns the id of the bitstream buffer from which this frame was decoded. 80 // Returns the id of the bitstream buffer from which this frame was decoded.
90 int32 bitstream_buffer_id() const { 81 int32 bitstream_buffer_id() const {
91 return bitstream_buffer_id_; 82 return bitstream_buffer_id_;
92 } 83 }
(...skipping 15 matching lines...) Expand all
108 private: 99 private:
109 int32 picture_buffer_id_; 100 int32 picture_buffer_id_;
110 int32 bitstream_buffer_id_; 101 int32 bitstream_buffer_id_;
111 gfx::Size visible_size_; 102 gfx::Size visible_size_;
112 gfx::Size decoded_size_; 103 gfx::Size decoded_size_;
113 }; 104 };
114 105
115 } // namespace media 106 } // namespace media
116 107
117 #endif // MEDIA_VIDEO_PICTURE_H_ 108 #endif // MEDIA_VIDEO_PICTURE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698