1 | /* GStreamer |
2 | * Copyright (C) 2004 Benjamin Otte <otte@gnome.org> |
3 | * |
4 | * This library is free software; you can redistribute it and/or |
5 | * modify it under the terms of the GNU Library General Public |
6 | * License as published by the Free Software Foundation; either |
7 | * version 2 of the License, or (at your option) any later version. |
8 | * |
9 | * This library is distributed in the hope that it will be useful, |
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
12 | * Library General Public License for more details. |
13 | * |
14 | * You should have received a copy of the GNU Library General Public |
15 | * License along with this library; if not, write to the |
16 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, |
17 | * Boston, MA 02110-1301, USA. |
18 | */ |
19 | |
20 | #include <gst/gst.h> |
21 | |
22 | #ifndef __GST_ADAPTER_H__ |
23 | #define __GST_ADAPTER_H__ |
24 | |
25 | #include <gst/base/base-prelude.h> |
26 | |
27 | G_BEGIN_DECLS |
28 | |
29 | |
30 | #define GST_TYPE_ADAPTER \ |
31 | (gst_adapter_get_type()) |
32 | #define GST_ADAPTER(obj) \ |
33 | (G_TYPE_CHECK_INSTANCE_CAST((obj), GST_TYPE_ADAPTER, GstAdapter)) |
34 | #define GST_ADAPTER_CLASS(klass) \ |
35 | (G_TYPE_CHECK_CLASS_CAST((klass), GST_TYPE_ADAPTER, GstAdapterClass)) |
36 | #define GST_ADAPTER_GET_CLASS(obj) \ |
37 | (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_ADAPTER, GstAdapterClass)) |
38 | #define GST_IS_ADAPTER(obj) \ |
39 | (G_TYPE_CHECK_INSTANCE_TYPE((obj), GST_TYPE_ADAPTER)) |
40 | #define GST_IS_ADAPTER_CLASS(klass) \ |
41 | (G_TYPE_CHECK_CLASS_TYPE((klass), GST_TYPE_ADAPTER)) |
42 | |
43 | /** |
44 | * GstAdapter: |
45 | * |
46 | * The opaque #GstAdapter data structure. |
47 | */ |
48 | typedef struct _GstAdapter GstAdapter; |
49 | typedef struct _GstAdapterClass GstAdapterClass; |
50 | |
51 | GST_BASE_API |
52 | GType gst_adapter_get_type (void); |
53 | |
54 | GST_BASE_API |
55 | GstAdapter * gst_adapter_new (void) G_GNUC_MALLOC; |
56 | |
57 | GST_BASE_API |
58 | void gst_adapter_clear (GstAdapter *adapter); |
59 | |
60 | GST_BASE_API |
61 | void gst_adapter_push (GstAdapter *adapter, GstBuffer* buf); |
62 | |
63 | GST_BASE_API |
64 | gconstpointer gst_adapter_map (GstAdapter *adapter, gsize size); |
65 | |
66 | GST_BASE_API |
67 | void gst_adapter_unmap (GstAdapter *adapter); |
68 | |
69 | GST_BASE_API |
70 | void gst_adapter_copy (GstAdapter *adapter, gpointer dest, |
71 | gsize offset, gsize size); |
72 | GST_BASE_API |
73 | GBytes * gst_adapter_copy_bytes (GstAdapter *adapter, |
74 | gsize offset, gsize size); |
75 | GST_BASE_API |
76 | void gst_adapter_flush (GstAdapter *adapter, gsize flush); |
77 | |
78 | GST_BASE_API |
79 | gpointer gst_adapter_take (GstAdapter *adapter, gsize nbytes); |
80 | |
81 | GST_BASE_API |
82 | GstBuffer* gst_adapter_take_buffer (GstAdapter *adapter, gsize nbytes); |
83 | |
84 | GST_BASE_API |
85 | GList* gst_adapter_take_list (GstAdapter *adapter, gsize nbytes); |
86 | |
87 | GST_BASE_API |
88 | GstBuffer * gst_adapter_take_buffer_fast (GstAdapter *adapter, gsize nbytes); |
89 | |
90 | GST_BASE_API |
91 | GstBufferList * gst_adapter_take_buffer_list (GstAdapter *adapter, gsize nbytes); |
92 | |
93 | GST_BASE_API |
94 | GstBuffer* gst_adapter_get_buffer (GstAdapter *adapter, gsize nbytes); |
95 | |
96 | GST_BASE_API |
97 | GList* gst_adapter_get_list (GstAdapter *adapter, gsize nbytes); |
98 | |
99 | GST_BASE_API |
100 | GstBuffer * gst_adapter_get_buffer_fast (GstAdapter *adapter, gsize nbytes); |
101 | |
102 | GST_BASE_API |
103 | GstBufferList * gst_adapter_get_buffer_list (GstAdapter *adapter, gsize nbytes); |
104 | |
105 | GST_BASE_API |
106 | gsize gst_adapter_available (GstAdapter *adapter); |
107 | |
108 | GST_BASE_API |
109 | gsize gst_adapter_available_fast (GstAdapter *adapter); |
110 | |
111 | GST_BASE_API |
112 | GstClockTime gst_adapter_prev_pts (GstAdapter *adapter, guint64 *distance); |
113 | |
114 | GST_BASE_API |
115 | GstClockTime gst_adapter_prev_dts (GstAdapter *adapter, guint64 *distance); |
116 | |
117 | GST_BASE_API |
118 | GstClockTime gst_adapter_prev_pts_at_offset (GstAdapter * adapter, gsize offset, guint64 * distance); |
119 | |
120 | GST_BASE_API |
121 | GstClockTime gst_adapter_prev_dts_at_offset (GstAdapter * adapter, gsize offset, guint64 * distance); |
122 | |
123 | GST_BASE_API |
124 | guint64 gst_adapter_prev_offset (GstAdapter *adapter, guint64 *distance); |
125 | |
126 | GST_BASE_API |
127 | GstClockTime gst_adapter_pts_at_discont (GstAdapter *adapter); |
128 | |
129 | GST_BASE_API |
130 | GstClockTime gst_adapter_dts_at_discont (GstAdapter *adapter); |
131 | |
132 | GST_BASE_API |
133 | guint64 gst_adapter_offset_at_discont (GstAdapter *adapter); |
134 | |
135 | GST_BASE_API |
136 | guint64 gst_adapter_distance_from_discont (GstAdapter *adapter); |
137 | |
138 | GST_BASE_API |
139 | gssize gst_adapter_masked_scan_uint32 (GstAdapter * adapter, guint32 mask, |
140 | guint32 pattern, gsize offset, gsize size); |
141 | GST_BASE_API |
142 | gssize gst_adapter_masked_scan_uint32_peek (GstAdapter * adapter, guint32 mask, |
143 | guint32 pattern, gsize offset, gsize size, guint32 * value); |
144 | |
145 | G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstAdapter, gst_object_unref) |
146 | |
147 | G_END_DECLS |
148 | |
149 | #endif /* __GST_ADAPTER_H__ */ |
150 | |