diff stream/dvbin.h @ 19271:64d82a45a05d

introduce new 'stream' directory for all stream layer related components and split them from libmpdemux
author ben
date Mon, 31 Jul 2006 17:39:17 +0000
parents libmpdemux/dvbin.h@c51f44c008fc
children 31b525f90395
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/stream/dvbin.h	Mon Jul 31 17:39:17 2006 +0000
@@ -0,0 +1,118 @@
+/* Imported from the dvbstream project
+ *
+ * Modified for use with MPlayer, for details see the changelog at
+ * http://svn.mplayerhq.hu/mplayer/trunk/
+ * $Id$
+ */
+
+#ifndef DVBIN_H
+#define DVBIN_H
+
+#include "stream.h"
+
+#define SLOF (11700*1000UL)
+#define LOF1 (9750*1000UL)
+#define LOF2 (10600*1000UL)
+
+#ifdef HAVE_DVB_HEAD
+	#include <linux/dvb/dmx.h>
+	#include <linux/dvb/frontend.h>
+	#include <linux/dvb/version.h>
+#else
+	#include <ost/dmx.h>
+	#include <ost/sec.h>
+	#include <ost/frontend.h>
+	#define fe_status_t FrontendStatus
+	#define fe_spectral_inversion_t SpectralInversion
+	#define fe_modulation_t Modulation
+	#define fe_code_rate_t CodeRate
+	#define fe_transmit_mode_t TransmitMode
+	#define fe_guard_interval_t GuardInterval
+	#define fe_bandwidth_t BandWidth
+	#define fe_hierarchy_t Hierarchy
+	#define fe_sec_voltage_t SecVoltage
+	#define dmx_pes_filter_params dmxPesFilterParams
+	#define dmx_sct_filter_params dmxSctFilterParams
+	#define dmx_pes_type_t dmxPesType_t
+#endif
+
+#undef DVB_ATSC
+#if defined(DVB_API_VERSION_MINOR)
+#if DVB_API_VERSION == 3 && DVB_API_VERSION_MINOR >= 1
+#define DVB_ATSC 1
+#endif
+#endif
+
+
+#define DVB_CHANNEL_LOWER -1
+#define DVB_CHANNEL_HIGHER 1
+
+#include "inttypes.h"
+
+#ifndef DMX_FILTER_SIZE
+#define DMX_FILTER_SIZE 16
+#endif
+
+typedef struct {
+	char 				*name;
+	int 				freq, srate, diseqc, tone;
+	char 				pol;
+	int 				tpid, dpid1, dpid2, progid, ca, pids[DMX_FILTER_SIZE], pids_cnt;
+	fe_spectral_inversion_t 	inv;
+	fe_modulation_t 		mod;
+	fe_transmit_mode_t 		trans;
+	fe_bandwidth_t 			bw;
+	fe_guard_interval_t 		gi;
+	fe_code_rate_t 			cr, cr_lp;
+	fe_hierarchy_t			hier;
+} dvb_channel_t;
+
+
+typedef struct {
+	uint16_t NUM_CHANNELS;
+	uint16_t current;
+	dvb_channel_t *channels;
+} dvb_channels_list;
+
+typedef struct {
+	int type;
+	dvb_channels_list *list;
+	char *name;
+	int devno;
+} dvb_card_config_t;
+
+typedef struct {
+	int count;
+	dvb_card_config_t *cards;
+	void *priv;
+} dvb_config_t;
+
+
+typedef struct {
+	int card;
+    int fe_fd;
+    int sec_fd;
+    int demux_fd[3], demux_fds[DMX_FILTER_SIZE], demux_fds_cnt;
+    int dvr_fd;
+
+    dvb_config_t *config;
+    dvb_channels_list *list;
+	int tuner_type;
+	int is_on;
+	stream_t *stream;
+	char new_tuning[256], prev_tuning[256];
+	int retry;
+	int timeout;
+} dvb_priv_t;
+
+
+#define TUNER_SAT	1
+#define TUNER_TER	2
+#define TUNER_CBL	3
+#define TUNER_ATSC	4
+
+extern int dvb_step_channel(dvb_priv_t *, int);
+extern int dvb_set_channel(dvb_priv_t *, int, int);
+extern dvb_config_t *dvb_get_config(void);
+
+#endif