utils: add string_of_VADisplayAttributeType() helper.
[vaapi:gstreamer-vaapi.git] / gst-libs / gst / vaapi / gstvaapiutils.h
1 /*
2  *  gstvaapiutils.h - VA-API utilities
3  *
4  *  Copyright (C) 2010-2011 Splitted-Desktop Systems
5  *  Copyright (C) 2011-2012 Intel Corporation
6  *
7  *  This library is free software; you can redistribute it and/or
8  *  modify it under the terms of the GNU Lesser General Public License
9  *  as published by the Free Software Foundation; either version 2.1
10  *  of the License, or (at your option) any later version.
11  *
12  *  This library is distributed in the hope that it will be useful,
13  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15  *  Lesser General Public License for more details.
16  *
17  *  You should have received a copy of the GNU Lesser General Public
18  *  License along with this library; if not, write to the Free
19  *  Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20  *  Boston, MA 02110-1301 USA
21  */
22
23 #ifndef GST_VAAPI_UTILS_H
24 #define GST_VAAPI_UTILS_H
25
26 #include "config.h"
27 #include <glib.h>
28
29 #ifdef GST_VAAPI_USE_OLD_VAAPI_0_29
30 # include <va.h>
31 #else
32 # include <va/va.h>
33 #endif
34
35 /** Check VA status for success or print out an error */
36 G_GNUC_INTERNAL
37 gboolean
38 vaapi_check_status(VAStatus status, const char *msg);
39
40 /** Maps VA buffer */
41 G_GNUC_INTERNAL
42 void *
43 vaapi_map_buffer(VADisplay dpy, VABufferID buf_id);
44
45 /** Unmaps VA buffer */
46 G_GNUC_INTERNAL
47 void
48 vaapi_unmap_buffer(VADisplay dpy, VABufferID buf_id, void **pbuf);
49
50 /** Creates and maps VA buffer */
51 G_GNUC_INTERNAL
52 gboolean
53 vaapi_create_buffer(
54     VADisplay     dpy,
55     VAContextID   ctx,
56     int           type,
57     unsigned int  size,
58     gconstpointer data,
59     VABufferID   *buf_id,
60     gpointer     *mapped_data
61 );
62
63 /** Destroy VA buffer */
64 G_GNUC_INTERNAL
65 void
66 vaapi_destroy_buffer(VADisplay dpy, VABufferID *buf_id);
67
68 /** Return a string representation of a VAProfile */
69 G_GNUC_INTERNAL
70 const char *string_of_VAProfile(VAProfile profile);
71
72 /** Return a string representation of a VAEntrypoint */
73 G_GNUC_INTERNAL
74 const char *string_of_VAEntrypoint(VAEntrypoint entrypoint);
75
76 /* Return a string representation of a VADisplayAttributeType */
77 G_GNUC_INTERNAL
78 const char *
79 string_of_VADisplayAttributeType(VADisplayAttribType attribute_type);
80
81 G_GNUC_INTERNAL
82 guint
83 from_GstVaapiSurfaceRenderFlags(guint flags);
84
85 G_GNUC_INTERNAL
86 guint
87 to_GstVaapiSurfaceStatus(guint va_flags);
88
89 #endif /* GST_VAAPI_UTILS_H */