2 * gstvaapidecode.h - VA-API video decoder
4 * Copyright (C) 2010-2011 Splitted-Desktop Systems
5 * Author: Gwenole Beauchesne <gwenole.beauchesne@splitted-desktop.com>
6 * Copyright (C) 2011-2013 Intel Corporation
7 * Author: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
9 * This library 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 library 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 library; if not, write to the Free
21 * Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
22 * Boston, MA 02110-1301 USA
25 #ifndef GST_VAAPIDECODE_H
26 #define GST_VAAPIDECODE_H
28 #include "gstvaapipluginbase.h"
29 #include <gst/vaapi/gstvaapidecoder.h>
33 #define GST_VAAPIDECODE(obj) ((GstVaapiDecode *)(obj))
35 typedef struct _GstVaapiDecode GstVaapiDecode;
36 typedef struct _GstVaapiDecodeClass GstVaapiDecodeClass;
38 struct _GstVaapiDecode {
40 GstVaapiPluginBase parent_instance;
42 GstCaps *sinkpad_caps;
44 GstVideoInfo decoded_info;
45 GstVaapiDecoder *decoder;
46 GstCaps *allowed_sinkpad_caps;
47 GstCaps *allowed_srcpad_caps;
48 guint current_frame_size;
49 guint has_texture_upload_meta : 1;
54 GstVideoCodecState *input_state;
59 struct _GstVaapiDecodeClass {
61 GstVaapiPluginBaseClass parent_class;
64 gboolean gst_vaapidecode_register (GstPlugin * plugin, GArray * decoders);
68 #endif /* GST_VAAPIDECODE_H */