Mercurial > mplayer.hg
annotate libmpdemux/dvbin.h @ 15205:19243f85e164
nico partially fixed the bug i reported; here's the rest of the fix.
basically demux_audio was mixing data in its header buffer in a bogus
manner, whereby it could sometimes "make up" valid mpeg headers where
no such header actually occurred in the file. it should be correct now.
btw these changes also fix the bug where mplayer reports huge initial
cpu usage for sound when playing mp3 files.
author | rfelker |
---|---|
date | Sun, 17 Apr 2005 17:17:52 +0000 |
parents | 8dd7a656eaf8 |
children | f580a7755ac5 |
rev | line source |
---|---|
15178
8dd7a656eaf8
Mark modified imported files as such to comply more closely with GPL ¡ø2a.
diego
parents:
14382
diff
changeset
|
1 /* Imported from the dvbstream project |
8dd7a656eaf8
Mark modified imported files as such to comply more closely with GPL ¡ø2a.
diego
parents:
14382
diff
changeset
|
2 * |
8dd7a656eaf8
Mark modified imported files as such to comply more closely with GPL ¡ø2a.
diego
parents:
14382
diff
changeset
|
3 * Modified for use with MPlayer, for details see the CVS changelog at |
8dd7a656eaf8
Mark modified imported files as such to comply more closely with GPL ¡ø2a.
diego
parents:
14382
diff
changeset
|
4 * http://www.mplayerhq.hu/cgi-bin/cvsweb.cgi/main/ |
8dd7a656eaf8
Mark modified imported files as such to comply more closely with GPL ¡ø2a.
diego
parents:
14382
diff
changeset
|
5 * $Id$ |
8dd7a656eaf8
Mark modified imported files as such to comply more closely with GPL ¡ø2a.
diego
parents:
14382
diff
changeset
|
6 */ |
9610 | 7 |
8 #ifndef DVBIN_H | |
9 #define DVBIN_H | |
10 | |
10560 | 11 #include "dvb_defaults.h" |
12 #include "stream.h" | |
13 | |
9610 | 14 #ifdef HAVE_DVB_HEAD |
15 #include <linux/dvb/dmx.h> | |
16 #include <linux/dvb/frontend.h> | |
14382 | 17 #include <linux/dvb/version.h> |
9610 | 18 #else |
19 #include <ost/dmx.h> | |
20 #include <ost/sec.h> | |
21 #include <ost/frontend.h> | |
22 #define fe_status_t FrontendStatus | |
23 #define fe_spectral_inversion_t SpectralInversion | |
24 #define fe_modulation_t Modulation | |
25 #define fe_code_rate_t CodeRate | |
26 #define fe_transmit_mode_t TransmitMode | |
27 #define fe_guard_interval_t GuardInterval | |
28 #define fe_bandwidth_t BandWidth | |
13155
fd40ef23053b
added forgotten dvb-t params lp_coderate and hierarchy
nicodvb
parents:
12803
diff
changeset
|
29 #define fe_hierarchy_t Hierarchy |
9610 | 30 #define fe_sec_voltage_t SecVoltage |
31 #define dmx_pes_filter_params dmxPesFilterParams | |
32 #define dmx_sct_filter_params dmxSctFilterParams | |
33 #define dmx_pes_type_t dmxPesType_t | |
34 #endif | |
35 | |
14382 | 36 #undef DVB_ATSC |
37 #if defined(DVB_API_VERSION_MINOR) | |
38 #if DVB_API_VERSION == 3 && DVB_API_VERSION_MINOR >= 1 | |
39 #define DVB_ATSC 1 | |
40 #endif | |
41 #endif | |
9610 | 42 |
43 | |
44 #define DVB_CHANNEL_LOWER -1 | |
45 #define DVB_CHANNEL_HIGHER 1 | |
46 | |
10395 | 47 #include "inttypes.h" |
9610 | 48 |
12803
168238f8c715
added multi-pid parsing code (up to 15), pid 0 is always added (for the PAT)
nicodvb
parents:
12309
diff
changeset
|
49 #ifndef DMX_FILTER_SIZE |
168238f8c715
added multi-pid parsing code (up to 15), pid 0 is always added (for the PAT)
nicodvb
parents:
12309
diff
changeset
|
50 #define DMX_FILTER_SIZE 16 |
168238f8c715
added multi-pid parsing code (up to 15), pid 0 is always added (for the PAT)
nicodvb
parents:
12309
diff
changeset
|
51 #endif |
9610 | 52 |
53 typedef struct { | |
54 char *name; | |
55 int freq, srate, diseqc, tone; | |
56 char pol; | |
12803
168238f8c715
added multi-pid parsing code (up to 15), pid 0 is always added (for the PAT)
nicodvb
parents:
12309
diff
changeset
|
57 int tpid, dpid1, dpid2, progid, ca, pids[DMX_FILTER_SIZE], pids_cnt; |
9610 | 58 fe_spectral_inversion_t inv; |
59 fe_modulation_t mod; | |
60 fe_transmit_mode_t trans; | |
61 fe_bandwidth_t bw; | |
62 fe_guard_interval_t gi; | |
13155
fd40ef23053b
added forgotten dvb-t params lp_coderate and hierarchy
nicodvb
parents:
12803
diff
changeset
|
63 fe_code_rate_t cr, cr_lp; |
fd40ef23053b
added forgotten dvb-t params lp_coderate and hierarchy
nicodvb
parents:
12803
diff
changeset
|
64 fe_hierarchy_t hier; |
9610 | 65 } dvb_channel_t; |
66 | |
67 | |
68 typedef struct { | |
69 uint16_t NUM_CHANNELS; | |
70 uint16_t current; | |
12309 | 71 dvb_channel_t *channels; |
9610 | 72 } dvb_channels_list; |
73 | |
12309 | 74 typedef struct { |
75 int type; | |
76 dvb_channels_list *list; | |
77 char *name; | |
78 int devno; | |
79 } dvb_card_config_t; | |
80 | |
81 typedef struct { | |
82 int count; | |
83 dvb_card_config_t *cards; | |
84 void *priv; | |
85 } dvb_config_t; | |
9610 | 86 |
87 | |
88 typedef struct { | |
10560 | 89 int card; |
9610 | 90 int fe_fd; |
91 int sec_fd; | |
12803
168238f8c715
added multi-pid parsing code (up to 15), pid 0 is always added (for the PAT)
nicodvb
parents:
12309
diff
changeset
|
92 int demux_fd[3], demux_fds[DMX_FILTER_SIZE], demux_fds_cnt; |
9610 | 93 int dvr_fd; |
94 | |
12309 | 95 dvb_config_t *config; |
9610 | 96 dvb_channels_list *list; |
10560 | 97 int tuner_type; |
98 int is_on; | |
99 stream_t *stream; | |
100 char new_tuning[256], prev_tuning[256]; | |
101 int retry; | |
9610 | 102 } dvb_priv_t; |
103 | |
104 | |
10560 | 105 #define TUNER_SAT 1 |
106 #define TUNER_TER 2 | |
107 #define TUNER_CBL 3 | |
14382 | 108 #define TUNER_ATSC 4 |
9610 | 109 |
10560 | 110 extern int dvb_step_channel(dvb_priv_t *, int); |
12309 | 111 extern int dvb_set_channel(dvb_priv_t *, int, int); |
112 extern dvb_config_t *dvb_get_config(); | |
9610 | 113 |
114 #endif |