tizen 2.3 release
[framework/multimedia/gst-plugins-ext0.10.git] / audiotp / src / gstaudiotp.h
1 /*
2  * audiotp
3  *
4  * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
5  *
6  * Contact: JongHyuk Choi <jhchoi.choi@samsung.com>
7  *
8  * This library is free software; you can redistribute it and/or modify it under
9  * the terms of the GNU Lesser General Public License as published by the
10  * Free Software Foundation; either version 2.1 of the License, or (at your option)
11  * any later version.
12  *
13  * This library is distributed in the hope that it will be useful, but WITHOUT ANY
14  * WARRANTY; without even the implied warranty of MERCHANTABILITY or
15  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
16  * License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public License
19  * along with this library; if not, write to the Free Software Foundation, Inc., 51
20  * Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21  *
22  */
23
24 #ifndef __GST_AUDIOTP_H__
25 #define __GST_AUDIOTP_H__
26
27 #include <gst/gst.h>
28 #include <stdlib.h>
29 #include <string.h>
30
31 G_BEGIN_DECLS
32
33 #define GST_TYPE_AUDIOTP             (gst_audiotp_get_type())
34 #define GST_AUDIOTP(obj)             (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_AUDIOTP,Gstaudiotp))
35 #define GST_AUDIOTP_CLASS(klass)     (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_AUDIOTP,GstaudiotpClass))
36 #define GST_AUDIOTP_GET_CLASS(klass) (G_TYPE_INSTANCE_GET_CLASS((klass),GST_TYPE_AUDIOTP,GstaudiotpClass))
37 #define GST_IS_AUDIOTP(obj)          (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_AUDIOTP))
38 #define GST_IS_AUDIOTP_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_AUDIOTP))
39 #define GST_AUDIOTP_CAST(obj)        ((Gstaudiotp *)(obj))
40
41 typedef struct _Gstaudiotp Gstaudiotp;
42 typedef struct _GstaudiotpClass GstaudiotpClass;
43
44 struct _Gstaudiotp
45 {
46   GstElement element;
47   GstPad *sinkpad;
48   GstPad *srcpad;
49   GQueue *reverse; /* used in reverse trickplay */
50   GstSegment segment;
51
52   /* Flag to indicate the new buffer recieved is discountinued in
53   its time-stamp */
54   gboolean discont;
55   gboolean is_reversed;
56   GstClockTime head_prev;
57   GstClockTime tail_prev;
58 };
59
60 struct _GstaudiotpClass
61 {
62   GstElementClass parent_class;
63 };
64
65 GType gst_audiotp_get_type (void);
66
67 G_END_DECLS
68
69 #endif /* __GST_AUDIOTP_H__ */