Merge branch 'move_subdir_editing-services' into tizen_gst_1.19.2_mono
[platform/upstream/gstreamer.git] / subprojects / gstreamer-vaapi / gst-libs / gst / vaapi / gstvaapidecoder_h265.h
1 /*
2  *  gstvaapidecoder_h265.h - H.265 decoder
3  *
4  *  Copyright (C) 2015 Intel Corporation
5  *    Author: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6  *    Author: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
7  *
8  *  This library is free software; you can redistribute it and/or
9  *  modify it under the terms of the GNU Lesser General Public License
10  *  as published by the Free Software Foundation; either version 2.1
11  *  of the License, or (at your option) any later version.
12  *
13  *  This library is distributed in the hope that it will be useful,
14  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16  *  Lesser General Public License for more details.
17  *
18  *  You should have received a copy of the GNU Lesser General Public
19  *  License along with this library; if not, write to the Free
20  *  Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21  *  Boston, MA 02110-1301 USA
22  */
23
24 #ifndef GST_VAAPI_DECODER_H265_H
25 #define GST_VAAPI_DECODER_H265_H
26
27 #include <gst/vaapi/gstvaapidecoder.h>
28
29 G_BEGIN_DECLS
30
31 #define GST_TYPE_VAAPI_DECODER_H265 \
32     (gst_vaapi_decoder_h265_get_type ())
33 #define GST_VAAPI_DECODER_H265(obj) \
34     (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_VAAPI_DECODER_H265, GstVaapiDecoderH265))
35 #define GST_VAAPI_IS_DECODER_H265(obj) \
36     (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_VAAPI_DECODER_H265))
37
38 typedef struct _GstVaapiDecoderH265             GstVaapiDecoderH265;
39
40 /**
41  * GstVaapiStreamAlignH265:
42  * @GST_VAAPI_STREAM_ALIGN_H265_NONE: Generic H.265 stream buffers
43  * @GST_VAAPI_STREAM_ALIGN_H265_NALU: H.265 stream buffers aligned NAL
44  *   unit boundaries
45  * @GST_VAAPI_STREAM_ALIGN_H265_AU: H.265 stream buffers aligned on
46  *   access unit boundaries
47  *
48  * Set of possible buffer alignments for H.265 streams.
49  */
50 typedef enum {
51     GST_VAAPI_STREAM_ALIGN_H265_NONE,
52     GST_VAAPI_STREAM_ALIGN_H265_NALU,
53     GST_VAAPI_STREAM_ALIGN_H265_AU
54 } GstVaapiStreamAlignH265;
55
56 GType
57 gst_vaapi_decoder_h265_get_type (void) G_GNUC_CONST;
58
59 GstVaapiDecoder *
60 gst_vaapi_decoder_h265_new (GstVaapiDisplay *display, GstCaps *caps);
61
62 void
63 gst_vaapi_decoder_h265_set_alignment (GstVaapiDecoderH265 *decoder,
64     GstVaapiStreamAlignH265 alignment);
65
66 G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstVaapiDecoderH265, gst_object_unref)
67
68 G_END_DECLS
69
70 #endif /* GST_VAAPI_DECODER_H265_H */