Mercurial > mplayer.hg
view libmpdemux/dvbin.h @ 11352:d8b1f7509df2
Patch by Nico <nsabbi@libero.it>
this patch fixes a recently discovered bug for which DVB-C users
couldn't tune
(wrong parsing of the config file and incorrect parameter passing to
tune_it())
and includes the still unapplied patch posted in date 6/9/2003:
- it works correctly with and without caches; in the former case it
doesn't take anymore a lot of time to empty the cache before changing channel;
the uninit_cache() function is called in mplayer.c just after
the new tuning operation
- initialized a variable identifying the tuner type, and exit if it
isn't supported
- doesn't crash anymore when
1) the channels file doesn't exists
2) the tuner is used by another application
3) in the menu, when trying to select a channel before the first
4) some mp_msg() called in case of error
author | attila |
---|---|
date | Sat, 01 Nov 2003 15:17:01 +0000 |
parents | 11826d9f90c7 |
children | d158978a3d3c |
line wrap: on
line source
#ifndef DVBIN_H #define DVBIN_H #include "dvb_defaults.h" #include "stream.h" #ifdef HAVE_DVB_HEAD #include <linux/dvb/dmx.h> #include <linux/dvb/frontend.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_sec_voltage_t SecVoltage #define dmx_pes_filter_params dmxPesFilterParams #define dmx_sct_filter_params dmxSctFilterParams #define dmx_pes_type_t dmxPesType_t #endif #define DVB_CHANNEL_LOWER -1 #define DVB_CHANNEL_HIGHER 1 #include "inttypes.h" typedef struct { int next, prev; } dvb_history_t; typedef struct { char *name; int freq, srate, diseqc, tone; char pol; int vpid, apid1, apid2, tpid, dpid1, dpid2, progid, ca; 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; } dvb_channel_t; typedef struct { uint16_t NUM_CHANNELS; uint16_t current; dvb_channel_t channels[512]; } dvb_channels_list; typedef struct { int card; int fe_fd; int sec_fd; int demux_fd[3]; int dvr_fd; dvb_channels_list *list; int tuner_type; int is_on; stream_t *stream; char new_tuning[256], prev_tuning[256]; int retry; } dvb_priv_t; #define TUNER_SAT 1 #define TUNER_TER 2 #define TUNER_CBL 3 extern int dvb_step_channel(dvb_priv_t *, int); extern int dvb_set_channel(dvb_priv_t *, int); extern dvb_channels_list *dvb_get_channels(char *, int); extern dvb_history_t dvb_prev_next; #endif