3
* Copyright (C) 2009 Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>
5
* This library is free software; you can redistribute it and/or
6
* modify it under the terms of the GNU Library General Public
7
* License as published by the Free Software Foundation; either
8
* version 2 of the License, or (at your option) any later version.
10
* This library is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13
* Library General Public License for more details.
15
* You should have received a copy of the GNU Library General Public
16
* License along with this library; if not, write to the
17
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18
* Boston, MA 02111-1307, USA.
21
#ifndef _GST_VDP_DEVICE_H_
22
#define _GST_VDP_DEVICE_H_
25
#include <vdpau/vdpau.h>
26
#include <vdpau/vdpau_x11.h>
28
#include <glib-object.h>
32
#define GST_TYPE_VDP_DEVICE (gst_vdp_device_get_type ())
33
#define GST_VDP_DEVICE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_VDP_DEVICE, GstVdpDevice))
34
#define GST_VDP_DEVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_VDP_DEVICE, GstVdpDeviceClass))
35
#define GST_IS_VDP_DEVICE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_VDP_DEVICE))
36
#define GST_IS_VDP_DEVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_VDP_DEVICE))
37
#define GST_VDP_DEVICE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_VDP_DEVICE, GstVdpDeviceClass))
39
typedef struct _GstVdpDeviceClass GstVdpDeviceClass;
40
typedef struct _GstVdpDevice GstVdpDevice;
42
struct _GstVdpDeviceClass
44
GObjectClass parent_class;
57
VdpDeviceDestroy *vdp_device_destroy;
58
VdpGetProcAddress *vdp_get_proc_address;
59
VdpGetErrorString *vdp_get_error_string;
61
VdpVideoSurfaceCreate *vdp_video_surface_create;
62
VdpVideoSurfaceDestroy *vdp_video_surface_destroy;
63
VdpVideoSurfaceQueryCapabilities *vdp_video_surface_query_capabilities;
64
VdpVideoSurfaceQueryGetPutBitsYCbCrCapabilities *vdp_video_surface_query_ycbcr_capabilities;
65
VdpVideoSurfaceGetParameters *vdp_video_surface_get_parameters;
66
VdpVideoSurfaceGetBitsYCbCr *vdp_video_surface_get_bits_ycbcr;
67
VdpVideoSurfacePutBitsYCbCr *vdp_video_surface_put_bits_ycbcr;
69
VdpDecoderCreate *vdp_decoder_create;
70
VdpDecoderDestroy *vdp_decoder_destroy;
71
VdpDecoderRender *vdp_decoder_render;
72
VdpDecoderQueryCapabilities *vdp_decoder_query_capabilities;
73
VdpDecoderGetParameters *vdp_decoder_get_parameters;
75
VdpVideoMixerCreate *vdp_video_mixer_create;
76
VdpVideoMixerDestroy *vdp_video_mixer_destroy;
77
VdpVideoMixerRender *vdp_video_mixer_render;
78
VdpVideoMixerSetFeatureEnables *vdp_video_mixer_set_feature_enables;
79
VdpVideoMixerSetAttributeValues *vdp_video_mixer_set_attribute_values;
81
VdpOutputSurfaceCreate *vdp_output_surface_create;
82
VdpOutputSurfaceDestroy *vdp_output_surface_destroy;
83
VdpOutputSurfaceQueryCapabilities *vdp_output_surface_query_capabilities;
85
VdpPresentationQueueTargetCreateX11 *vdp_presentation_queue_target_create_x11;
86
VdpPresentationQueueCreate *vdp_presentation_queue_create;
87
VdpPresentationQueueDestroy *vdp_presentation_queue_destroy;
88
VdpPresentationQueueDisplay *vdp_presentation_queue_display;
89
VdpPresentationQueueBlockUntilSurfaceIdle *vdp_presentation_queue_block_until_surface_idle;
90
VdpPresentationQueueSetBackgroundColor *vdp_presentation_queue_set_background_color;
93
GType gst_vdp_device_get_type (void) G_GNUC_CONST;
95
GstVdpDevice *gst_vdp_get_device (const gchar *display_name);
99
#endif /* _GST_VDP_DEVICE_H_ */