Initialize Tizen 2.3
[framework/multimedia/gst-plugins-ext0.10.git] / mobile / pdpushsrc / src / gstpdpushsrc.h
1 /*
2  * pdpushsrc
3  *
4  * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
5  *
6  * Contact: Seungbae Shin <seungbae.shin@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_PD_PUSHSRC_H__
25 #define __GST_PD_PUSHSRC_H__
26
27 #include <sys/types.h>
28 #include <gst/gst.h>
29 #include <gst/base/gstbasesrc.h>
30
31 G_BEGIN_DECLS
32
33 #define GST_TYPE_PD_PUSHSRC                (gst_pd_pushsrc_get_type())
34 #define GST_PD_PUSHSRC(obj)                  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_PD_PUSHSRC,GstPDPushSrc))
35 #define GST_PD_PUSHSRC_CLASS(klass)   (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_PD_PUSHSRC,GstPDPushSrcClass))
36 #define GST_IS_PD_PUSHSRC(obj)                  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_PD_PUSHSRC))
37 #define GST_IS_PD_PUSHSRC_CLASS(klass) \
38   (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_PD_PUSHSRC))
39 #define GST_PD_PUSHSRC_CAST(obj) ((GstPDPushSrc*) obj)
40
41 typedef struct _GstPDPushSrc GstPDPushSrc;
42 typedef struct _GstPDPushSrcClass GstPDPushSrcClass;
43
44 /**
45  * GstFileSrc:
46  *
47  * Opaque #GstPDPushSrc structure.
48  */
49 struct _GstPDPushSrc {
50   GstBaseSrc element;
51   GstPad *srcpad;
52
53   gchar *filename;                      /* filename */
54   gchar *uri;                           /* caching the URI */
55   gint fd;                              /* open file descriptor */
56   guint64 read_position;                /* position of fd */
57
58   gboolean seekable;                    /* whether the file is seekable */
59   gboolean is_regular;                  /* whether it's a (symlink to a)                                          regular file */
60
61   gboolean is_eos;
62
63 };
64
65 struct _GstPDPushSrcClass {
66   GstBaseSrcClass parent_class;
67 };
68
69 GType gst_pd_pushsrc_get_type (void);
70
71 G_END_DECLS
72
73 #endif /* __GST_FILE_SRC_H__ */