OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 VideoDecodeAccelerator | 5 // This file contains an implementation of VideoDecodeAccelerator |
6 // that utilizes hardware video decoders, which expose Video4Linux 2 API | 6 // that utilizes hardware video decoders, which expose Video4Linux 2 API |
7 // (http://linuxtv.org/downloads/v4l-dvb-apis/). | 7 // (http://linuxtv.org/downloads/v4l-dvb-apis/). |
8 | 8 |
9 #ifndef CONTENT_COMMON_GPU_MEDIA_V4L2_VIDEO_DECODE_ACCELERATOR_H_ | 9 #ifndef CONTENT_COMMON_GPU_MEDIA_V4L2_VIDEO_DECODE_ACCELERATOR_H_ |
10 #define CONTENT_COMMON_GPU_MEDIA_V4L2_VIDEO_DECODE_ACCELERATOR_H_ | 10 #define CONTENT_COMMON_GPU_MEDIA_V4L2_VIDEO_DECODE_ACCELERATOR_H_ |
(...skipping 257 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
268 // | 268 // |
269 // Other utility functions. Called on decoder_thread_, unless | 269 // Other utility functions. Called on decoder_thread_, unless |
270 // decoder_thread_ is not yet started, in which case the child thread can call | 270 // decoder_thread_ is not yet started, in which case the child thread can call |
271 // these (e.g. in Initialize() or Destroy()). | 271 // these (e.g. in Initialize() or Destroy()). |
272 // | 272 // |
273 | 273 |
274 // Create the buffers we need. | 274 // Create the buffers we need. |
275 bool CreateInputBuffers(); | 275 bool CreateInputBuffers(); |
276 bool CreateOutputBuffers(); | 276 bool CreateOutputBuffers(); |
277 | 277 |
278 // Query the hardware for a suitable format that we can use for | 278 // Set input and output formats before starting decode. |
279 // importing into EGLImages for output, and set it. | 279 bool SetupFormats(); |
280 bool SetupOutputFormat(); | |
281 | 280 |
282 // | 281 // |
283 // Methods run on child thread. | 282 // Methods run on child thread. |
284 // | 283 // |
285 | 284 |
286 // Destroy buffers. | 285 // Destroy buffers. |
287 void DestroyInputBuffers(); | 286 void DestroyInputBuffers(); |
288 // In contrast to DestroyInputBuffers, which is called only from destructor, | 287 // In contrast to DestroyInputBuffers, which is called only from destructor, |
289 // we call DestroyOutputBuffers also during playback, on resolution change. | 288 // we call DestroyOutputBuffers also during playback, on resolution change. |
290 // Even if anything fails along the way, we still want to go on and clean | 289 // Even if anything fails along the way, we still want to go on and clean |
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
444 | 443 |
445 // The WeakPtrFactory for |weak_this_|. | 444 // The WeakPtrFactory for |weak_this_|. |
446 base::WeakPtrFactory<V4L2VideoDecodeAccelerator> weak_this_factory_; | 445 base::WeakPtrFactory<V4L2VideoDecodeAccelerator> weak_this_factory_; |
447 | 446 |
448 DISALLOW_COPY_AND_ASSIGN(V4L2VideoDecodeAccelerator); | 447 DISALLOW_COPY_AND_ASSIGN(V4L2VideoDecodeAccelerator); |
449 }; | 448 }; |
450 | 449 |
451 } // namespace content | 450 } // namespace content |
452 | 451 |
453 #endif // CONTENT_COMMON_GPU_MEDIA_V4L2_VIDEO_DECODE_ACCELERATOR_H_ | 452 #endif // CONTENT_COMMON_GPU_MEDIA_V4L2_VIDEO_DECODE_ACCELERATOR_H_ |
OLD | NEW |