OLD | NEW |
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 CONTENT_COMMON_GPU_MEDIA_GPU_VIDEO_SERVICE_H_ | 5 #ifndef CONTENT_COMMON_GPU_MEDIA_GPU_VIDEO_SERVICE_H_ |
6 #define CONTENT_COMMON_GPU_MEDIA_GPU_VIDEO_SERVICE_H_ | 6 #define CONTENT_COMMON_GPU_MEDIA_GPU_VIDEO_SERVICE_H_ |
7 | 7 |
8 #include <map> | 8 #include <map> |
9 | 9 |
10 #include "base/memory/ref_counted.h" | 10 #include "base/memory/ref_counted.h" |
(...skipping 17 matching lines...) Expand all Loading... |
28 // IPC::Channel::Listener. | 28 // IPC::Channel::Listener. |
29 virtual void OnChannelConnected(int32 peer_pid); | 29 virtual void OnChannelConnected(int32 peer_pid); |
30 virtual void OnChannelError(); | 30 virtual void OnChannelError(); |
31 virtual bool OnMessageReceived(const IPC::Message& message); | 31 virtual bool OnMessageReceived(const IPC::Message& message); |
32 | 32 |
33 // TODO(hclam): Remove return value. | 33 // TODO(hclam): Remove return value. |
34 bool CreateVideoDecoder(GpuChannel* channel, | 34 bool CreateVideoDecoder(GpuChannel* channel, |
35 MessageRouter* router, | 35 MessageRouter* router, |
36 int32 decoder_host_id, | 36 int32 decoder_host_id, |
37 int32 decoder_id, | 37 int32 decoder_id, |
38 gpu::gles2::GLES2Decoder* command_decoder, | 38 GpuCommandBufferStub* stub, |
39 const std::vector<uint32>& configs); | 39 const std::vector<uint32>& configs); |
| 40 void InitializeVideoDecoder(int32 decoder_id); |
40 void DestroyVideoDecoder(MessageRouter* router, | 41 void DestroyVideoDecoder(MessageRouter* router, |
41 int32 decoder_id); | 42 int32 decoder_id); |
42 | 43 |
43 // Passes given GLES textures to the decoder indicated by id. | 44 // Passes given GLES textures to the decoder indicated by id. |
44 void AssignTexturesToDecoder(int32 decoder_id, | 45 void AssignTexturesToDecoder(int32 decoder_id, |
45 const std::vector<int32>& buffer_ids, | 46 const std::vector<int32>& buffer_ids, |
46 const std::vector<uint32>& texture_ids, | 47 const std::vector<uint32>& texture_ids, |
47 const std::vector<gfx::Size>& sizes); | 48 const std::vector<gfx::Size>& sizes); |
48 | 49 |
49 private: | 50 private: |
50 struct VideoDecoderInfo { | 51 struct VideoDecoderInfo { |
51 VideoDecoderInfo(scoped_refptr<GpuVideoDecodeAccelerator> g_v_d_a, | 52 VideoDecoderInfo(scoped_refptr<GpuVideoDecodeAccelerator> g_v_d_a, |
52 gpu::gles2::GLES2Decoder* g_d) | 53 GpuCommandBufferStub* s) |
53 : video_decoder(g_v_d_a), | 54 : video_decoder(g_v_d_a), |
54 command_decoder(g_d) {} | 55 stub(s) {} |
55 ~VideoDecoderInfo() {} | 56 ~VideoDecoderInfo() {} |
56 scoped_refptr<GpuVideoDecodeAccelerator> video_decoder; | 57 scoped_refptr<GpuVideoDecodeAccelerator> video_decoder; |
57 gpu::gles2::GLES2Decoder* command_decoder; | 58 GpuCommandBufferStub* stub; |
58 }; | 59 }; |
59 // Map of video and command buffer decoders, indexed by video decoder id. | 60 // Map of video and command buffer decoders, indexed by video decoder id. |
60 typedef std::map<int32, VideoDecoderInfo> DecoderMap; | 61 typedef std::map<int32, VideoDecoderInfo> DecoderMap; |
61 | 62 |
62 GpuVideoService(); | 63 GpuVideoService(); |
63 virtual ~GpuVideoService(); | 64 virtual ~GpuVideoService(); |
64 | 65 |
65 // Specialize video service on different platform will override. | 66 // Specialize video service on different platform will override. |
66 virtual bool IntializeGpuVideoService(); | 67 virtual bool IntializeGpuVideoService(); |
67 virtual bool UnintializeGpuVideoService(); | 68 virtual bool UnintializeGpuVideoService(); |
68 | 69 |
69 DecoderMap decoder_map_; | 70 DecoderMap decoder_map_; |
70 | 71 |
71 friend struct DefaultSingletonTraits<GpuVideoService>; | 72 friend struct DefaultSingletonTraits<GpuVideoService>; |
72 DISALLOW_COPY_AND_ASSIGN(GpuVideoService); | 73 DISALLOW_COPY_AND_ASSIGN(GpuVideoService); |
73 }; | 74 }; |
74 | 75 |
75 #endif // CONTENT_COMMON_GPU_MEDIA_GPU_VIDEO_SERVICE_H_ | 76 #endif // CONTENT_COMMON_GPU_MEDIA_GPU_VIDEO_SERVICE_H_ |
OLD | NEW |