| 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 264 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 275 // Accelerators come after vaapi_wrapper_ to ensure they are destroyed first. | 275 // Accelerators come after vaapi_wrapper_ to ensure they are destroyed first. |
| 276 scoped_ptr<VaapiH264Accelerator> h264_accelerator_; | 276 scoped_ptr<VaapiH264Accelerator> h264_accelerator_; |
| 277 scoped_ptr<VaapiVP8Accelerator> vp8_accelerator_; | 277 scoped_ptr<VaapiVP8Accelerator> vp8_accelerator_; |
| 278 // After *_accelerator_ to ensure correct destruction order. | 278 // After *_accelerator_ to ensure correct destruction order. |
| 279 scoped_ptr<AcceleratedVideoDecoder> decoder_; | 279 scoped_ptr<AcceleratedVideoDecoder> decoder_; |
| 280 | 280 |
| 281 base::Thread decoder_thread_; | 281 base::Thread decoder_thread_; |
| 282 // Use this to post tasks to |decoder_thread_| instead of | 282 // Use this to post tasks to |decoder_thread_| instead of |
| 283 // |decoder_thread_.message_loop()| because the latter will be NULL once | 283 // |decoder_thread_.message_loop()| because the latter will be NULL once |
| 284 // |decoder_thread_.Stop()| returns. | 284 // |decoder_thread_.Stop()| returns. |
| 285 scoped_refptr<base::SingleThreadTaskRunner> decoder_thread_task_runner_; | 285 scoped_refptr<base::MessageLoopProxy> decoder_thread_proxy_; |
| 286 | 286 |
| 287 int num_frames_at_client_; | 287 int num_frames_at_client_; |
| 288 int num_stream_bufs_at_decoder_; | 288 int num_stream_bufs_at_decoder_; |
| 289 | 289 |
| 290 // Whether we are waiting for any pending_output_cbs_ to be run before | 290 // Whether we are waiting for any pending_output_cbs_ to be run before |
| 291 // NotifyingFlushDone. | 291 // NotifyingFlushDone. |
| 292 bool finish_flush_pending_; | 292 bool finish_flush_pending_; |
| 293 | 293 |
| 294 // Decoder requested a new surface set and we are waiting for all the surfaces | 294 // Decoder requested a new surface set and we are waiting for all the surfaces |
| 295 // to be returned before we can free them. | 295 // to be returned before we can free them. |
| 296 bool awaiting_va_surfaces_recycle_; | 296 bool awaiting_va_surfaces_recycle_; |
| 297 | 297 |
| 298 // Last requested number/resolution of output picture buffers. | 298 // Last requested number/resolution of output picture buffers. |
| 299 size_t requested_num_pics_; | 299 size_t requested_num_pics_; |
| 300 gfx::Size requested_pic_size_; | 300 gfx::Size requested_pic_size_; |
| 301 | 301 |
| 302 // Binds the provided GLImage to a givenr client texture ID & texture target | 302 // Binds the provided GLImage to a givenr client texture ID & texture target |
| 303 // combination in GLES. | 303 // combination in GLES. |
| 304 base::Callback<void(uint32, uint32, scoped_refptr<gfx::GLImage>)> bind_image_; | 304 base::Callback<void(uint32, uint32, scoped_refptr<gfx::GLImage>)> bind_image_; |
| 305 | 305 |
| 306 // The WeakPtrFactory for |weak_this_|. | 306 // The WeakPtrFactory for |weak_this_|. |
| 307 base::WeakPtrFactory<VaapiVideoDecodeAccelerator> weak_this_factory_; | 307 base::WeakPtrFactory<VaapiVideoDecodeAccelerator> weak_this_factory_; |
| 308 | 308 |
| 309 DISALLOW_COPY_AND_ASSIGN(VaapiVideoDecodeAccelerator); | 309 DISALLOW_COPY_AND_ASSIGN(VaapiVideoDecodeAccelerator); |
| 310 }; | 310 }; |
| 311 | 311 |
| 312 } // namespace content | 312 } // namespace content |
| 313 | 313 |
| 314 #endif // CONTENT_COMMON_GPU_MEDIA_VAAPI_VIDEO_DECODE_ACCELERATOR_H_ | 314 #endif // CONTENT_COMMON_GPU_MEDIA_VAAPI_VIDEO_DECODE_ACCELERATOR_H_ |
| OLD | NEW |