summaryrefslogtreecommitdiff
path: root/gst-libs/gst/vaapi/gstvaapiutils.h
blob: cf19fb30ec79f29d4176531c661d682668dd63a5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
/*
 *  gstvaapiutils.h - VA-API utilities
 *
 *  Copyright (C) 2010-2011 Splitted-Desktop Systems
 *    Author: Gwenole Beauchesne <gwenole.beauchesne@splitted-desktop.com>
 *  Copyright (C) 2011-2013 Intel Corporation
 *    Author: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
 *
 *  This library is free software; you can redistribute it and/or
 *  modify it under the terms of the GNU Lesser General Public License
 *  as published by the Free Software Foundation; either version 2.1
 *  of the License, or (at your option) any later version.
 *
 *  This library is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *  Lesser General Public License for more details.
 *
 *  You should have received a copy of the GNU Lesser General Public
 *  License along with this library; if not, write to the Free
 *  Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
 *  Boston, MA 02110-1301 USA
 */

#ifndef GST_VAAPI_UTILS_H
#define GST_VAAPI_UTILS_H

#include <glib.h>
#include <va/va.h>

/** calls vaInitialize() redirecting the logging mechanism */
G_GNUC_INTERNAL
gboolean
vaapi_initialize (VADisplay dpy);

/** Check VA status for success or print out an error */
G_GNUC_INTERNAL
gboolean
vaapi_check_status (VAStatus status, const gchar *msg);

/** Maps VA buffer */
G_GNUC_INTERNAL
gpointer
vaapi_map_buffer (VADisplay dpy, VABufferID buf_id);

/** Unmaps VA buffer */
G_GNUC_INTERNAL
void
vaapi_unmap_buffer (VADisplay dpy, VABufferID buf_id, void **pbuf);

/** Creates and maps VA buffer */
G_GNUC_INTERNAL
gboolean
vaapi_create_buffer (VADisplay dpy, VAContextID ctx, int type, guint size,
    gconstpointer data, VABufferID * buf_id, gpointer * mapped_data);

G_GNUC_INTERNAL
gboolean
vaapi_create_n_elements_buffer (VADisplay dpy, VAContextID ctx, int type,
    guint size, gconstpointer data, VABufferID * buf_id, gpointer * mapped_data,
    int num_elements);

/** Destroy VA buffer */
G_GNUC_INTERNAL
void
vaapi_destroy_buffer (VADisplay dpy, VABufferID * buf_id);

/** Return a string representation of a VAProfile */
G_GNUC_INTERNAL
const gchar *
string_of_VAProfile (VAProfile profile);

/** Return a string representation of a VAEntrypoint */
G_GNUC_INTERNAL
const gchar *
string_of_VAEntrypoint (VAEntrypoint entrypoint);

/* Return a string representation of a VADisplayAttributeType */
G_GNUC_INTERNAL
const gchar *
string_of_VADisplayAttributeType (VADisplayAttribType attribute_type);

/* Return a string representation of a VA chroma format */
G_GNUC_INTERNAL
const gchar *
string_of_va_chroma_format (guint chroma_format);

G_GNUC_INTERNAL
const gchar *
string_of_VARateControl (guint rate_control);

G_GNUC_INTERNAL
guint
to_GstVaapiChromaType (guint va_rt_format);

G_GNUC_INTERNAL
guint
from_GstVaapiChromaType (guint chroma_type);

G_GNUC_INTERNAL
guint
from_GstVaapiSubpictureFlags (guint flags);

G_GNUC_INTERNAL
guint
to_GstVaapiSubpictureFlags (guint va_flags);

G_GNUC_INTERNAL
guint
from_GstVideoOverlayFormatFlags (guint ovl_flags);

G_GNUC_INTERNAL
guint
to_GstVideoOverlayFormatFlags (guint flags);

G_GNUC_INTERNAL
guint
from_GstVaapiSurfaceRenderFlags (guint flags);

G_GNUC_INTERNAL
guint
to_GstVaapiSurfaceStatus (guint va_flags);

G_GNUC_INTERNAL
guint
from_GstVaapiRotation (guint value);

G_GNUC_INTERNAL
guint
to_GstVaapiRotation (guint value);

G_GNUC_INTERNAL
guint
from_GstVaapiRateControl (guint value);

G_GNUC_INTERNAL
guint
to_GstVaapiRateControl (guint value);

G_GNUC_INTERNAL
guint
from_GstVaapiDeinterlaceMethod (guint value);

G_GNUC_INTERNAL
guint
from_GstVaapiDeinterlaceFlags (guint flags);

G_GNUC_INTERNAL
guint
from_GstVaapiScaleMethod (guint value);

G_GNUC_INTERNAL
guint
to_GstVaapiScaleMethod (guint flags);

G_GNUC_INTERNAL
void
from_GstVideoOrientationMethod (guint value, guint * va_mirror,
    guint * va_rotation);

G_GNUC_INTERNAL
guint
from_GstVaapiBufferMemoryType (guint type);

G_GNUC_INTERNAL
guint
to_GstVaapiBufferMemoryType (guint va_type);

#endif /* GST_VAAPI_UTILS_H */