OLD | NEW |
---|---|
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 VaapiWrapper, used by | 5 // This file contains an implementation of VaapiWrapper, used by |
6 // VaapiVideoDecodeAccelerator and VaapiH264Decoder to interface | 6 // VaapiVideoDecodeAccelerator and VaapiH264Decoder to interface |
7 // with libva (VA-API library for hardware video decode). | 7 // with libva (VA-API library for hardware video decode). |
8 | 8 |
9 #ifndef CONTENT_COMMON_GPU_MEDIA_VAAPI_WRAPPER_H_ | 9 #ifndef CONTENT_COMMON_GPU_MEDIA_VAAPI_WRAPPER_H_ |
10 #define CONTENT_COMMON_GPU_MEDIA_VAAPI_WRAPPER_H_ | 10 #define CONTENT_COMMON_GPU_MEDIA_VAAPI_WRAPPER_H_ |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
71 // Execute decode in hardware into |va_surface_id} and destroy pending | 71 // Execute decode in hardware into |va_surface_id} and destroy pending |
72 // buffers. Return false if SubmitDecode() fails. | 72 // buffers. Return false if SubmitDecode() fails. |
73 bool DecodeAndDestroyPendingBuffers(VASurfaceID va_surface_id); | 73 bool DecodeAndDestroyPendingBuffers(VASurfaceID va_surface_id); |
74 | 74 |
75 // Put data from |va_surface_id| into |x_pixmap| of size |size|, | 75 // Put data from |va_surface_id| into |x_pixmap| of size |size|, |
76 // converting/scaling to it. | 76 // converting/scaling to it. |
77 bool PutSurfaceIntoPixmap(VASurfaceID va_surface_id, | 77 bool PutSurfaceIntoPixmap(VASurfaceID va_surface_id, |
78 Pixmap x_pixmap, | 78 Pixmap x_pixmap, |
79 gfx::Size dest_size); | 79 gfx::Size dest_size); |
80 | 80 |
81 // Get the surface data and return it in |buffer|, which has size |size|. | |
82 // The returned buffer contains data in I420 format and needs to be | |
83 // released by calling free(). The function returns true if successful. | |
Pawel Osciak
2013/10/20 23:53:11
Can you instead use VideoFrame class for this?
chihchung
2013/10/21 09:33:05
Done.
| |
84 // Currently it only handles VASurface with NV12 format. | |
85 bool GetI420FromSurface(VASurfaceID va_surface_id, | |
86 void** buffer, | |
87 size_t* size); | |
88 | |
81 // Do any necessary initialization before the sandbox is enabled. | 89 // Do any necessary initialization before the sandbox is enabled. |
82 static void PreSandboxInitialization(); | 90 static void PreSandboxInitialization(); |
83 | 91 |
84 private: | 92 private: |
85 VaapiWrapper(); | 93 VaapiWrapper(); |
86 | 94 |
87 bool Initialize(media::VideoCodecProfile profile, | 95 bool Initialize(media::VideoCodecProfile profile, |
88 Display* x_display, | 96 Display* x_display, |
89 const base::Closure& report_error__to_uma_cb); | 97 const base::Closure& report_error__to_uma_cb); |
90 void Deinitialize(); | 98 void Deinitialize(); |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
124 | 132 |
125 // Has static initialization of pre-sandbox components completed successfully? | 133 // Has static initialization of pre-sandbox components completed successfully? |
126 static bool pre_sandbox_init_done_; | 134 static bool pre_sandbox_init_done_; |
127 | 135 |
128 DISALLOW_COPY_AND_ASSIGN(VaapiWrapper); | 136 DISALLOW_COPY_AND_ASSIGN(VaapiWrapper); |
129 }; | 137 }; |
130 | 138 |
131 } // namespace content | 139 } // namespace content |
132 | 140 |
133 #endif // CONTENT_COMMON_GPU_MEDIA_VAAPI_WRAPPER_H_ | 141 #endif // CONTENT_COMMON_GPU_MEDIA_VAAPI_WRAPPER_H_ |
OLD | NEW |