encoder: vaapicontext support rate-control
[vaapi:windyuan-gstreamer-vaapi.git] / gst-libs / gst / vaapi / gstvaapivalue.h
1 /*
2  *  gstvaapivalue.h - GValue implementations specific to VA-API
3  *
4  *  Copyright (C) 2010-2011 Splitted-Desktop Systems
5  *
6  *  This library is free software; you can redistribute it and/or
7  *  modify it under the terms of the GNU Lesser General Public License
8  *  as published by the Free Software Foundation; either version 2.1
9  *  of the License, or (at your option) any later version.
10  *
11  *  This library is distributed in the hope that it will be useful,
12  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  *  Lesser General Public License for more details.
15  *
16  *  You should have received a copy of the GNU Lesser General Public
17  *  License along with this library; if not, write to the Free
18  *  Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
19  *  Boston, MA 02110-1301 USA
20  */
21
22 #ifndef GST_VAAPI_VALUE_H
23 #define GST_VAAPI_VALUE_H
24
25 #include <glib-object.h>
26 #include <gst/vaapi/gstvaapitypes.h>
27
28 G_BEGIN_DECLS
29
30 /**
31  * GST_VAAPI_TYPE_ID:
32  *
33  * A #GValue type that represents a VA identifier.
34  *
35  * Return value: the #GType of GstVaapiID
36  */
37 #define GST_VAAPI_TYPE_ID gst_vaapi_id_get_type()
38
39 /**
40  * GST_VAAPI_VALUE_HOLDS_ID:
41  * @x: the #GValue to check
42  *
43  * Checks if the given #GValue contains a #GstVaapiID value.
44  */
45 #define GST_VAAPI_VALUE_HOLDS_ID(x) (G_VALUE_HOLDS((x), GST_VAAPI_TYPE_ID))
46
47 /**
48  * GST_VAAPI_TYPE_RENDER_MODE:
49  *
50  * A #GstVaapiRenderMode type that represents the VA display backend
51  * rendering mode: overlay (2D engine) or textured-blit (3D engine).
52  *
53  * Return value: the #GType of GstVaapiRenderMode
54  */
55 #define GST_VAAPI_TYPE_RENDER_MODE gst_vaapi_render_mode_get_type()
56
57 /**
58  * GST_VAAPI_TYPE_ROTATION:
59  *
60  * A type that represents the VA display rotation.
61  *
62  * Return value: the #GType of GstVaapiRotation
63  */
64 #define GST_VAAPI_TYPE_ROTATION gst_vaapi_rotation_get_type()
65
66 /**
67  * GST_VAAPI_TYPE_RATE_CONTROL:
68  *
69  * A type that represents the VA rate control.
70  *
71  * Return value: the #GType of GstVaapiRateControl
72  */
73 #define GST_VAAPI_TYPE_RATE_CONTROL gst_vaapi_rate_control_get_type()
74
75 GType
76 gst_vaapi_id_get_type(void) G_GNUC_CONST;
77
78 GstVaapiID
79 gst_vaapi_value_get_id(const GValue *value);
80
81 void
82 gst_vaapi_value_set_id(GValue *value, GstVaapiID id);
83
84 GType
85 gst_vaapi_render_mode_get_type(void) G_GNUC_CONST;
86
87 GType
88 gst_vaapi_rotation_get_type(void) G_GNUC_CONST;
89
90 GType
91 gst_vaapi_rate_control_get_type(void) G_GNUC_CONST;
92
93 G_END_DECLS
94
95 #endif /* GST_VAAPI_VALUE_H */