OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 CONTENT_COMMON_GPU_MEDIA_GPU_VIDEO_DECODE_ACCELERATOR_H_ | 5 #ifndef CONTENT_COMMON_GPU_MEDIA_GPU_VIDEO_DECODE_ACCELERATOR_H_ |
6 #define CONTENT_COMMON_GPU_MEDIA_GPU_VIDEO_DECODE_ACCELERATOR_H_ | 6 #define CONTENT_COMMON_GPU_MEDIA_GPU_VIDEO_DECODE_ACCELERATOR_H_ |
7 | 7 |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/memory/scoped_ptr.h" | 10 #include "base/compiler_specific.h" |
| 11 #include "base/memory/ref_counted.h" |
11 #include "base/shared_memory.h" | 12 #include "base/shared_memory.h" |
12 #include "ipc/ipc_channel.h" | 13 #include "ipc/ipc_channel.h" |
13 #include "ipc/ipc_message.h" | 14 #include "ipc/ipc_message.h" |
14 #include "media/video/video_decode_accelerator.h" | 15 #include "media/video/video_decode_accelerator.h" |
15 | 16 |
16 class GpuCommandBufferStub; | 17 class GpuCommandBufferStub; |
17 | 18 |
18 class GpuVideoDecodeAccelerator | 19 class GpuVideoDecodeAccelerator |
19 : public IPC::Channel::Listener, | 20 : public IPC::Channel::Listener, |
20 public IPC::Message::Sender, | 21 public IPC::Message::Sender, |
(...skipping 22 matching lines...) Expand all Loading... |
43 virtual bool Send(IPC::Message* message) OVERRIDE; | 44 virtual bool Send(IPC::Message* message) OVERRIDE; |
44 | 45 |
45 // Initialize the accelerator with the given profile and send the | 46 // Initialize the accelerator with the given profile and send the |
46 // |init_done_msg| when done. | 47 // |init_done_msg| when done. |
47 // The renderer process handle is valid as long as we have a channel between | 48 // The renderer process handle is valid as long as we have a channel between |
48 // GPU process and the renderer. | 49 // GPU process and the renderer. |
49 void Initialize(const media::VideoCodecProfile profile, | 50 void Initialize(const media::VideoCodecProfile profile, |
50 IPC::Message* init_done_msg); | 51 IPC::Message* init_done_msg); |
51 | 52 |
52 private: | 53 private: |
53 | |
54 // Handlers for IPC messages. | 54 // Handlers for IPC messages. |
55 void OnDecode(base::SharedMemoryHandle handle, int32 id, int32 size); | 55 void OnDecode(base::SharedMemoryHandle handle, int32 id, int32 size); |
56 void OnAssignPictureBuffers( | 56 void OnAssignPictureBuffers( |
57 const std::vector<int32>& buffer_ids, | 57 const std::vector<int32>& buffer_ids, |
58 const std::vector<uint32>& texture_ids, | 58 const std::vector<uint32>& texture_ids, |
59 const std::vector<gfx::Size>& sizes); | 59 const std::vector<gfx::Size>& sizes); |
60 void OnReusePictureBuffer( | 60 void OnReusePictureBuffer( |
61 int32 picture_buffer_id); | 61 int32 picture_buffer_id); |
62 void OnFlush(); | 62 void OnFlush(); |
63 void OnReset(); | 63 void OnReset(); |
(...skipping 13 matching lines...) Expand all Loading... |
77 // Unowned pointer to the underlying GpuCommandBufferStub. | 77 // Unowned pointer to the underlying GpuCommandBufferStub. |
78 GpuCommandBufferStub* stub_; | 78 GpuCommandBufferStub* stub_; |
79 | 79 |
80 // Pointer to the underlying VideoDecodeAccelerator. | 80 // Pointer to the underlying VideoDecodeAccelerator. |
81 scoped_refptr<media::VideoDecodeAccelerator> video_decode_accelerator_; | 81 scoped_refptr<media::VideoDecodeAccelerator> video_decode_accelerator_; |
82 | 82 |
83 DISALLOW_IMPLICIT_CONSTRUCTORS(GpuVideoDecodeAccelerator); | 83 DISALLOW_IMPLICIT_CONSTRUCTORS(GpuVideoDecodeAccelerator); |
84 }; | 84 }; |
85 | 85 |
86 #endif // CONTENT_COMMON_GPU_MEDIA_GPU_VIDEO_DECODE_ACCELERATOR_H_ | 86 #endif // CONTENT_COMMON_GPU_MEDIA_GPU_VIDEO_DECODE_ACCELERATOR_H_ |
OLD | NEW |