2 * gstvaapiuploader.h - VA-API video upload helper
4 * Copyright (C) 2010-2011 Splitted-Desktop Systems
5 * Author: Gwenole Beauchesne <gwenole.beauchesne@splitted-desktop.com>
6 * Copyright (C) 2011-2012 Intel Corporation
7 * Author: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
9 * This program is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Lesser General Public License
11 * as published by the Free Software Foundation; either version 2.1
12 * of the License, or (at your option) any later version.
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * Lesser General Public License for more details.
19 * You should have received a copy of the GNU Lesser General Public
20 * License along with this program; if not, write to the Free
21 * Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
22 * Boston, MA 02110-1301 USA
25 #ifndef GST_VAAPIUPLOADER_H
26 #define GST_VAAPIUPLOADER_H
28 #include <gst/vaapi/gstvaapidisplay.h>
32 #define GST_VAAPI_TYPE_UPLOADER \
33 (gst_vaapi_uploader_get_type ())
34 #define GST_VAAPI_UPLOADER(obj) \
35 (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_VAAPI_TYPE_UPLOADER, \
37 #define GST_VAAPI_UPLOADER_CLASS(klass) \
38 (G_TYPE_CHECK_CLASS_CAST ((klass), GST_VAAPI_TYPE_UPLOADER, \
39 GstVaapiUploaderClass))
40 #define GST_VAAPI_IS_UPLOADER(obj) \
41 (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_VAAPI_TYPE_UPLOADER))
42 #define GST_VAAPI_IS_UPLOADER_CLASS(klass) \
43 (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_VAAPI_TYPE_UPLOADER))
44 #define GST_VAAPI_UPLOADER_GET_CLASS(obj) \
45 (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_VAAPI_TYPE_UPLOADER, \
46 GstVaapiUploaderClass))
48 typedef struct _GstVaapiUploader GstVaapiUploader;
49 typedef struct _GstVaapiUploaderPrivate GstVaapiUploaderPrivate;
50 typedef struct _GstVaapiUploaderClass GstVaapiUploaderClass;
52 struct _GstVaapiUploader
55 GObject parent_instance;
57 GstVaapiUploaderPrivate *priv;
60 struct _GstVaapiUploaderClass
63 GObjectClass parent_class;
68 gst_vaapi_uploader_get_type (void) G_GNUC_CONST;
72 gst_vaapi_uploader_new (GstVaapiDisplay * display);
76 gst_vaapi_uploader_ensure_display (GstVaapiUploader * uploader,
77 GstVaapiDisplay * display);
81 gst_vaapi_uploader_ensure_caps (GstVaapiUploader * uploader,
82 GstCaps * src_caps, GstCaps * out_caps);
86 gst_vaapi_uploader_process (GstVaapiUploader * uploader,
87 GstBuffer * src_buffer, GstBuffer * out_buffer);
91 gst_vaapi_uploader_get_caps (GstVaapiUploader * uploader);
95 gst_vaapi_uploader_get_buffer (GstVaapiUploader * uploader);
99 gst_vaapi_uploader_has_direct_rendering (GstVaapiUploader * uploader);
103 #endif /* GST_VAAPI_UPLOADER_H */