1 /* GStreamer DVB source
2 * Copyright (C) 2006 Zaheer Abbas Merali <zaheerabbas at merali
4 * Copyright (C) 2014 Samsung Electronics. All rights reserved.
5 * @Author: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Library General Public
9 * License as published by the Free Software Foundation; either
10 * version 2 of the License, or (at your option) any later version.
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Library General Public License for more details.
17 * You should have received a copy of the GNU Library General Public
18 * License along with this library; if not, write to the
19 * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
20 * Boston, MA 02110-1301, USA.
23 #ifndef __GST_DVBSRC_H__
24 #define __GST_DVBSRC_H__
27 #include <gst/base/gstpushsrc.h>
41 #define IN_SIZE TS_SIZE*10
43 #define MAX_FILTERS 32
45 #define GST_TYPE_DVBSRC \
46 (gst_dvbsrc_get_type())
47 #define GST_DVBSRC(obj) \
48 (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_DVBSRC,GstDvbSrc))
49 #define GST_DVBSRC_CLASS(klass) \
50 (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_DVBSRC,GstDvbSrcClass))
51 #define GST_IS_DVBSRC(obj) \
52 (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_DVBSRC))
53 #define GST_IS_DVBSRC_CLASS(klass) \
54 (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_DVBSRC))
56 typedef struct _GstDvbSrc GstDvbSrc;
57 typedef struct _GstDvbSrcClass GstDvbSrcClass;
58 typedef struct _GstDvbSrcParam GstDvbSrcParam;
67 GList * supported_delsys;
75 int fd_filters[MAX_FILTERS];
77 GstPollFD poll_fd_dvr;
79 guint16 pids[MAX_FILTERS];
81 unsigned int sym_rate;
91 int transmission_mode;
92 int hierarchy_information;
98 guint64 tuning_timeout;
101 guint stats_interval;
103 gboolean need_unlock;
105 guint dvb_buffer_size;
107 unsigned int isdbt_layer_enabled;
108 int isdbt_partial_reception;
109 int isdbt_sound_broadcasting;
110 int isdbt_sb_subchannel_id;
111 int isdbt_sb_segment_idx;
112 unsigned int isdbt_sb_segment_count;
113 int isdbt_layera_fec;
114 int isdbt_layera_modulation;
115 int isdbt_layera_segment_count;
116 int isdbt_layera_time_interleaving;
117 int isdbt_layerb_fec;
118 int isdbt_layerb_modulation;
119 int isdbt_layerb_segment_count;
120 int isdbt_layerb_time_interleaving;
121 int isdbt_layerc_fec;
122 int isdbt_layerc_modulation;
123 int isdbt_layerc_segment_count;
124 int isdbt_layerc_time_interleaving;
127 unsigned int lnb_slof;
128 unsigned int lnb_lof1;
129 unsigned int lnb_lof2;
131 /* Only used for DTMB if available */
135 struct _GstDvbSrcClass
137 GstPushSrcClass parent_class;
139 void (*adapter_type) (GstElement * element, gint type);
140 void (*signal_quality) (GstElement * element, gint strength, gint snr);
142 void (*do_tune) (GstDvbSrc * self);
146 GType gst_dvbsrc_get_type (void);
149 #endif /* __GST_DVBSRC_H__ */