sync with en/mplayer.1 rev. 30611
[mplayer/glamo.git] / stream / dvbin.h
blob18a37d9522866f044f33cf8dbf51b28e52429d8e
1 /* Imported from the dvbstream project
3 * Modified for use with MPlayer, for details see the changelog at
4 * http://svn.mplayerhq.hu/mplayer/trunk/
5 * $Id$
6 */
8 #ifndef MPLAYER_DVBIN_H
9 #define MPLAYER_DVBIN_H
11 #include "config.h"
12 #include "stream.h"
14 #define SLOF (11700*1000UL)
15 #define LOF1 (9750*1000UL)
16 #define LOF2 (10600*1000UL)
18 #ifdef CONFIG_DVB_HEAD
19 #include <linux/dvb/dmx.h>
20 #include <linux/dvb/frontend.h>
21 #include <linux/dvb/version.h>
22 #else
23 #include <ost/dmx.h>
24 #include <ost/sec.h>
25 #include <ost/frontend.h>
26 #define fe_status_t FrontendStatus
27 #define fe_spectral_inversion_t SpectralInversion
28 #define fe_modulation_t Modulation
29 #define fe_code_rate_t CodeRate
30 #define fe_transmit_mode_t TransmitMode
31 #define fe_guard_interval_t GuardInterval
32 #define fe_bandwidth_t BandWidth
33 #define fe_hierarchy_t Hierarchy
34 #define fe_sec_voltage_t SecVoltage
35 #define dmx_pes_filter_params dmxPesFilterParams
36 #define dmx_sct_filter_params dmxSctFilterParams
37 #define dmx_pes_type_t dmxPesType_t
38 #endif
40 #undef DVB_ATSC
41 #if defined(DVB_API_VERSION_MINOR)
43 /* kernel headers >=2.6.28 have version 5.
45 * FIXME: are there any real differences between 3.1 and 5?
48 #if (DVB_API_VERSION == 3 && DVB_API_VERSION_MINOR >= 1) || DVB_API_VERSION == 5
49 #define DVB_ATSC 1
50 #endif
52 #endif
55 #define DVB_CHANNEL_LOWER -1
56 #define DVB_CHANNEL_HIGHER 1
58 #include "inttypes.h"
60 #ifndef DMX_FILTER_SIZE
61 #define DMX_FILTER_SIZE 16
62 #endif
64 typedef struct {
65 char *name;
66 int freq, srate, diseqc, tone;
67 char pol;
68 int tpid, dpid1, dpid2, progid, ca, pids[DMX_FILTER_SIZE], pids_cnt;
69 fe_spectral_inversion_t inv;
70 fe_modulation_t mod;
71 fe_transmit_mode_t trans;
72 fe_bandwidth_t bw;
73 fe_guard_interval_t gi;
74 fe_code_rate_t cr, cr_lp;
75 fe_hierarchy_t hier;
76 } dvb_channel_t;
78 typedef struct {
79 uint16_t NUM_CHANNELS;
80 uint16_t current;
81 dvb_channel_t *channels;
82 } dvb_channels_list;
84 typedef struct {
85 int type;
86 dvb_channels_list *list;
87 char *name;
88 int devno;
89 } dvb_card_config_t;
91 typedef struct {
92 int count;
93 dvb_card_config_t *cards;
94 void *priv;
95 } dvb_config_t;
97 typedef struct {
98 int card;
99 int fe_fd;
100 int sec_fd;
101 int demux_fd[3], demux_fds[DMX_FILTER_SIZE], demux_fds_cnt;
102 int dvr_fd;
104 dvb_config_t *config;
105 dvb_channels_list *list;
106 int tuner_type;
107 int is_on;
108 int retry;
109 int timeout;
110 int last_freq;
111 } dvb_priv_t;
114 #define TUNER_SAT 1
115 #define TUNER_TER 2
116 #define TUNER_CBL 3
117 #define TUNER_ATSC 4
119 int dvb_step_channel(stream_t *, int);
120 int dvb_set_channel(stream_t *, int, int);
121 dvb_config_t *dvb_get_config(void);
122 void dvb_free_config(dvb_config_t *config);
124 #endif /* MPLAYER_DVBIN_H */