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

Side by Side Diff: third_party/libva/va/va_tpi.h

Issue 62273006: Update libva headers to the latest release (1.2.1). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@lkgr
Patch Set: Created 7 years, 1 month 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
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2007-2009 Intel Corporation. All Rights Reserved. 2 * Copyright (c) 2007-2009 Intel Corporation. All Rights Reserved.
3 * 3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a 4 * Permission is hereby granted, free of charge, to any person obtaining a
5 * copy of this software and associated documentation files (the 5 * copy of this software and associated documentation files (the
6 * "Software"), to deal in the Software without restriction, including 6 * "Software"), to deal in the Software without restriction, including
7 * without limitation the rights to use, copy, modify, merge, publish, 7 * without limitation the rights to use, copy, modify, merge, publish,
8 * distribute, sub license, and/or sell copies of the Software, and to 8 * distribute, sub license, and/or sell copies of the Software, and to
9 * permit persons to whom the Software is furnished to do so, subject to 9 * permit persons to whom the Software is furnished to do so, subject to
10 * the following conditions: 10 * the following conditions:
11 * 11 *
12 * The above copyright notice and this permission notice (including the 12 * The above copyright notice and this permission notice (including the
13 * next paragraph) shall be included in all copies or substantial portions 13 * next paragraph) shall be included in all copies or substantial portions
14 * of the Software. 14 * of the Software.
15 * 15 *
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
17 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 17 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 18 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
19 * IN NO EVENT SHALL INTEL AND/OR ITS SUPPLIERS BE LIABLE FOR 19 * IN NO EVENT SHALL INTEL AND/OR ITS SUPPLIERS BE LIABLE FOR
20 * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 20 * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
21 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 21 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
22 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 22 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23 */ 23 */
24 #ifndef _VA_TPI_H_
25 #define _VA_TPI_H_
24 26
25 /* Wrap a CI (camera imaging) frame as a VA surface to share captured video betw een camear
26 * and VA encode. With frame_id, VA driver need to call CI interfaces to get the information
27 * of the frame, and to determine if the frame can be wrapped as a VA surface
28 *
29 * Application should make sure the frame is idle before the frame is passed int o VA stack
30 * and also a vaSyncSurface should be called before application tries to access the frame
31 * from CI stack
32 */
33 #include <va/va.h> 27 #include <va/va.h>
34 28
35 #ifdef __cplusplus 29 #ifdef __cplusplus
36 extern "C" { 30 extern "C" {
37 #endif 31 #endif
38 32
39 VAStatus vaCreateSurfaceFromCIFrame (
40 VADisplay dpy,
41 unsigned long frame_id,
42 VASurfaceID *surface /* out */
43 );
44 33
45 VAStatus vaCreateSurfaceFromV4L2Buf( 34 typedef enum {
46 VADisplay dpy, 35 VAExternalMemoryNULL, /* it is not external buffer, but requires the impleme ntation allocates
47 int v4l2_fd, /* file descriptor of V4L2 device */ 36 * the surface with the input attribute
48 struct v4l2_format *v4l2_fmt, /* format of V4L2 */ 37 */
49 struct v4l2_buffer *v4l2_buf, /* V4L2 buffer */ 38 VAExternalMemoryV4L2Buffer,
50 VASurfaceID *surface» /* out */ 39 VAExternalMemoryCIFrame, /* the memory is from camera frames and buffers poi nts the frame ID list */
51 ); 40 VAExternalMemoryUserPointer, /* the memory is malloc-ed and buffers points t o the buffers */
41 VAExternalMemoryKernelDRMBufffer, /* the memory is from kernel DRM buffers a nd buffers points the
42 * DRM buffer handle list
43 */
44 VAExternalMemoryAndroidGrallocBuffer, /* the memory is from Android Gralloc memory, and buffers points
45 * the gralloc native_handle_t list
46 */
47 } VASurfaceMemoryType;
48
49 typedef struct _VASurfaceAttributeTPI {
50 VASurfaceMemoryType type;
51 unsigned int width;
52 unsigned int height;
53 unsigned int size;
54 unsigned int pixel_format; /* buffer format */
55 unsigned int tiling; /* the memory is tiling or not */
56 unsigned int luma_stride; /* luma stride, could be width aligned with a spec ial value */
57 unsigned int chroma_u_stride; /* chroma stride */
58 unsigned int chroma_v_stride;
59 unsigned int luma_offset; /* could be 0 */
60 unsigned int chroma_u_offset; /* U offset from the beginning of the memory * /
61 unsigned int chroma_v_offset; /* V offset from the beginning of the memory * /
62 unsigned int count; /* buffer count for surface creation */
63 unsigned int *buffers; /* buffer handles or user pointers */
64 unsigned int reserved[4]; /* used to pass additional information, like
65 * Android native window pointer
66 */
67 } VASurfaceAttributeTPI;
68
52 69
53 VAStatus vaPutSurfaceBuf ( 70 VAStatus vaPutSurfaceBuf (
54 VADisplay dpy, 71 VADisplay dpy,
55 VASurfaceID surface, 72 VASurfaceID surface,
56 unsigned char* data, 73 unsigned char* data,
57 int* data_len, 74 int* data_len,
58 short srcx, 75 short srcx,
59 short srcy, 76 short srcy,
60 unsigned short srcw, 77 unsigned short srcw,
61 unsigned short srch, 78 unsigned short srch,
62 short destx, 79 short destx,
63 short desty, 80 short desty,
64 unsigned short destw, 81 unsigned short destw,
65 unsigned short desth, 82 unsigned short desth,
66 VARectangle *cliprects, /* client supplied clip list */ 83 VARectangle *cliprects, /* client supplied clip list */
67 unsigned int number_cliprects, /* number of clip rects in the clip list */ 84 unsigned int number_cliprects, /* number of clip rects in the clip list */
68 unsigned int flags /* de-interlacing flags */ 85 unsigned int flags /* de-interlacing flags */
69 ); 86 );
70 87
71 88
72 /* 89 VAStatus vaCreateSurfacesWithAttribute (
73 * The surfaces could be shared and accessed with extern devices
74 * which has special requirements, e.g. stride alignment
75 * This API is used to force libVA video surfaces are allocated
76 * according to these external requirements
77 * Special API for V4L2 user pointer support
78 */
79 VAStatus vaCreateSurfacesForUserPtr(
80 VADisplay dpy, 90 VADisplay dpy,
81 int width, 91 int width,
82 int height, 92 int height,
83 int format, 93 int format,
84 int num_surfaces, 94 int num_surfaces,
85 VASurfaceID *surfaces, /* out */ 95 VASurfaceID *surfaces, /* out */
86 unsigned size, /* total buffer size need to be allocated */ 96 VASurfaceAttributeTPI *attribute_tpi
87 unsigned int fourcc, /* expected fourcc */
88 unsigned int luma_stride, /* luma stride, could be width aligned with a spec ial value */
89 unsigned int chroma_u_stride, /* chroma stride */
90 unsigned int chroma_v_stride,
91 unsigned int luma_offset, /* could be 0 */
92 unsigned int chroma_u_offset, /* UV offset from the beginning of the memory */
93 unsigned int chroma_v_offset
94 ); 97 );
95 98
96 /*
97 * Create surface from the Kernel buffer
98 */
99 VAStatus vaCreateSurfaceFromKBuf(
100 VADisplay dpy,
101 int width,
102 int height,
103 int format,
104 VASurfaceID *surface, /* out */
105 unsigned int kbuf_handle, /* kernel buffer handle*/
106 unsigned size, /* kernel buffer size */
107 unsigned int kBuf_fourcc, /* expected fourcc */
108 unsigned int luma_stride, /* luma stride, could be width aligned with a spec ial value */
109 unsigned int chroma_u_stride, /* chroma stride */
110 unsigned int chroma_v_stride,
111 unsigned int luma_offset, /* could be 0 */
112 unsigned int chroma_u_offset, /* UV offset from the beginning of the memory */
113 unsigned int chroma_v_offset
114 );
115
116
117 #ifdef __cplusplus 99 #ifdef __cplusplus
118 } 100 }
119 #endif 101 #endif
102
103 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698