Update for g_type_class_add_private() deprecation in recent GLib
[platform/upstream/gstreamer.git] / libs / gst / base / gsttypefindhelper.h
1 /* GStreamer
2  * Copyright (C) 1999,2000 Erik Walthinsen <omega@cse.ogi.edu>
3  * Copyright (C) 2000,2005 Wim Taymans <wim@fluendo.com>
4  * Copyright (C) 2006      Tim-Philipp Müller <tim centricular net>
5  *
6  * gsttypefindhelper.h:
7  *
8  * This library is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Library General Public
10  * License as published by the Free Software Foundation; either
11  * version 2 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  * Library General Public License for more details.
17  *
18  * You should have received a copy of the GNU Library General Public
19  * License along with this library; if not, write to the
20  * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
21  * Boston, MA 02110-1301, USA.
22  */
23
24 #ifndef __GST_TYPEFINDHELPER_H__
25 #define __GST_TYPEFINDHELPER_H__
26
27 #include <gst/gst.h>
28 #include <gst/base/base-prelude.h>
29
30 G_BEGIN_DECLS
31
32 GST_BASE_API
33 GstCaps * gst_type_find_helper (GstPad *src, guint64 size);
34
35 GST_BASE_API
36 GstCaps * gst_type_find_helper_for_data   (GstObject              *obj,
37                                            const guint8           *data,
38                                            gsize                   size,
39                                            GstTypeFindProbability *prob);
40 GST_BASE_API
41 GstCaps * gst_type_find_helper_for_buffer (GstObject              *obj,
42                                            GstBuffer              *buf,
43                                            GstTypeFindProbability *prob);
44 GST_BASE_API
45 GstCaps * gst_type_find_helper_for_extension (GstObject * obj,
46                                               const gchar * extension);
47
48 /**
49  * GstTypeFindHelperGetRangeFunction:
50  * @obj: a #GstObject that will handle the getrange request
51  * @parent: (allow-none): the parent of @obj or %NULL
52  * @offset: the offset of the range
53  * @length: the length of the range
54  * @buffer: (out): a memory location to hold the result buffer
55  *
56  * This function will be called by gst_type_find_helper_get_range() when
57  * typefinding functions request to peek at the data of a stream at certain
58  * offsets. If this function returns GST_FLOW_OK, the result buffer will be
59  * stored in @buffer. The  contents of @buffer is invalid for any other
60  * return value.
61  *
62  * This function is supposed to behave exactly like a #GstPadGetRangeFunction.
63  *
64  * Returns: GST_FLOW_OK for success
65  */
66 typedef GstFlowReturn (*GstTypeFindHelperGetRangeFunction) (GstObject  *obj,
67                                                             GstObject  *parent,
68                                                             guint64     offset,
69                                                             guint       length,
70                                                             GstBuffer **buffer);
71 GST_BASE_API
72 GstCaps * gst_type_find_helper_get_range (GstObject                         *obj,
73                                           GstObject                         *parent,
74                                           GstTypeFindHelperGetRangeFunction  func,
75                                           guint64                            size,
76                                           const gchar                       *extension,
77                                           GstTypeFindProbability            *prob);
78
79 G_END_DECLS
80
81 #endif /* __GST_TYPEFINDHELPER_H__ */