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

Side by Side Diff: content/common/gpu/media/gpu_video_service.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: . 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 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
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_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698