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 // This file contains an implementation of VideoDecoderAccelerator | 5 // This file contains an implementation of VideoDecoderAccelerator |
6 // that utilizes hardware video decoder present on Intel CPUs. | 6 // that utilizes hardware video decoder present on Intel CPUs. |
7 | 7 |
8 #ifndef CONTENT_COMMON_GPU_MEDIA_VAAPI_VIDEO_DECODE_ACCELERATOR_H_ | 8 #ifndef CONTENT_COMMON_GPU_MEDIA_VAAPI_VIDEO_DECODE_ACCELERATOR_H_ |
9 #define CONTENT_COMMON_GPU_MEDIA_VAAPI_VIDEO_DECODE_ACCELERATOR_H_ | 9 #define CONTENT_COMMON_GPU_MEDIA_VAAPI_VIDEO_DECODE_ACCELERATOR_H_ |
10 | 10 |
(...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
227 base::MessageLoop* message_loop_; | 227 base::MessageLoop* message_loop_; |
228 | 228 |
229 // WeakPtr<> pointing to |this| for use in posting tasks from the decoder | 229 // WeakPtr<> pointing to |this| for use in posting tasks from the decoder |
230 // thread back to the ChildThread. Because the decoder thread is a member of | 230 // thread back to the ChildThread. Because the decoder thread is a member of |
231 // this class, any task running on the decoder thread is guaranteed that this | 231 // this class, any task running on the decoder thread is guaranteed that this |
232 // object is still alive. As a result, tasks posted from ChildThread to | 232 // object is still alive. As a result, tasks posted from ChildThread to |
233 // decoder thread should use base::Unretained(this), and tasks posted from the | 233 // decoder thread should use base::Unretained(this), and tasks posted from the |
234 // decoder thread to the ChildThread should use |weak_this_|. | 234 // decoder thread to the ChildThread should use |weak_this_|. |
235 base::WeakPtr<VaapiVideoDecodeAccelerator> weak_this_; | 235 base::WeakPtr<VaapiVideoDecodeAccelerator> weak_this_; |
236 | 236 |
| 237 // Callback used when creating VASurface objects. |
| 238 VASurface::ReleaseCB va_surface_release_cb_; |
| 239 |
237 // To expose client callbacks from VideoDecodeAccelerator. | 240 // To expose client callbacks from VideoDecodeAccelerator. |
238 // NOTE: all calls to these objects *MUST* be executed on message_loop_. | 241 // NOTE: all calls to these objects *MUST* be executed on message_loop_. |
239 base::WeakPtrFactory<Client> client_ptr_factory_; | 242 base::WeakPtrFactory<Client> client_ptr_factory_; |
240 base::WeakPtr<Client> client_; | 243 base::WeakPtr<Client> client_; |
241 | 244 |
242 scoped_ptr<VaapiWrapper> vaapi_wrapper_; | 245 scoped_ptr<VaapiWrapper> vaapi_wrapper_; |
243 | 246 |
244 // Comes after vaapi_wrapper_ to ensure its destructor is executed before | 247 // Comes after vaapi_wrapper_ to ensure its destructor is executed before |
245 // vaapi_wrapper_ is destroyed. | 248 // vaapi_wrapper_ is destroyed. |
246 scoped_ptr<VaapiH264Decoder> decoder_; | 249 scoped_ptr<VaapiH264Decoder> decoder_; |
(...skipping 13 matching lines...) Expand all Loading... |
260 // Last requested number/resolution of output picture buffers. | 263 // Last requested number/resolution of output picture buffers. |
261 size_t requested_num_pics_; | 264 size_t requested_num_pics_; |
262 gfx::Size requested_pic_size_; | 265 gfx::Size requested_pic_size_; |
263 | 266 |
264 DISALLOW_COPY_AND_ASSIGN(VaapiVideoDecodeAccelerator); | 267 DISALLOW_COPY_AND_ASSIGN(VaapiVideoDecodeAccelerator); |
265 }; | 268 }; |
266 | 269 |
267 } // namespace content | 270 } // namespace content |
268 | 271 |
269 #endif // CONTENT_COMMON_GPU_MEDIA_VAAPI_VIDEO_DECODE_ACCELERATOR_H_ | 272 #endif // CONTENT_COMMON_GPU_MEDIA_VAAPI_VIDEO_DECODE_ACCELERATOR_H_ |
OLD | NEW |