annotate stream/dvbin.h @ 30811:50e0f6942e43

Implement Win32 mutexes. Implement Win32 mutexes; they used to just be mapped on top of events, which is not the same thing at all. The implementation is pretty much the obvious one, similar to the current critical section implementation and the semaphore implementation; a single lock count protected by a pthread mutex, and an event lockers can sleep on to know when the mutex is available. Also make CreateMutexA and ReleaseMutex available even if QuickTime codecs support is not configured.
author sesse
date Sat, 06 Mar 2010 10:13:37 +0000
parents d9bbd1844876
children 8449d9eab838
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 *
18783
0783dd397f74 CVS --> Subversion in copyright notices
diego
parents: 18561
diff changeset
3 * Modified for use with MPlayer, for details see the changelog at
0783dd397f74 CVS --> Subversion in copyright notices
diego
parents: 18561
diff changeset
4 * http://svn.mplayerhq.hu/mplayer/trunk/
15178
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
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
7
26029
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25535
diff changeset
8 #ifndef MPLAYER_DVBIN_H
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25535
diff changeset
9 #define MPLAYER_DVBIN_H
9610
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
10
30165
b4cbeff5153e Add a few missing header #includes and #defines.
diego
parents: 28667
diff changeset
11 #include "config.h"
10560
11826d9f90c7 this patch fixes
arpi
parents: 10395
diff changeset
12 #include "stream.h"
11826d9f90c7 this patch fixes
arpi
parents: 10395
diff changeset
13
19086
c51f44c008fc moved LOF macros from dvb_defaults.h
nicodvb
parents: 18783
diff changeset
14 #define SLOF (11700*1000UL)
c51f44c008fc moved LOF macros from dvb_defaults.h
nicodvb
parents: 18783
diff changeset
15 #define LOF1 (9750*1000UL)
c51f44c008fc moved LOF macros from dvb_defaults.h
nicodvb
parents: 18783
diff changeset
16 #define LOF2 (10600*1000UL)
c51f44c008fc moved LOF macros from dvb_defaults.h
nicodvb
parents: 18783
diff changeset
17
30776
d9bbd1844876 Drop support for old-style DVB code.
diego
parents: 30165
diff changeset
18 #include <linux/dvb/dmx.h>
d9bbd1844876 Drop support for old-style DVB code.
diego
parents: 30165
diff changeset
19 #include <linux/dvb/frontend.h>
d9bbd1844876 Drop support for old-style DVB code.
diego
parents: 30165
diff changeset
20 #include <linux/dvb/version.h>
9610
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
21
14382
42d792053cde added support for ATSC tuner and conf.file
nicodvb
parents: 13155
diff changeset
22 #undef DVB_ATSC
42d792053cde added support for ATSC tuner and conf.file
nicodvb
parents: 13155
diff changeset
23 #if defined(DVB_API_VERSION_MINOR)
28667
8363a6c42ace Accept DVB API 5, patch by Steven Brudenell, steven.brudenell gmail com.
diego
parents: 28051
diff changeset
24
8363a6c42ace Accept DVB API 5, patch by Steven Brudenell, steven.brudenell gmail com.
diego
parents: 28051
diff changeset
25 /* kernel headers >=2.6.28 have version 5.
8363a6c42ace Accept DVB API 5, patch by Steven Brudenell, steven.brudenell gmail com.
diego
parents: 28051
diff changeset
26 *
8363a6c42ace Accept DVB API 5, patch by Steven Brudenell, steven.brudenell gmail com.
diego
parents: 28051
diff changeset
27 * FIXME: are there any real differences between 3.1 and 5?
8363a6c42ace Accept DVB API 5, patch by Steven Brudenell, steven.brudenell gmail com.
diego
parents: 28051
diff changeset
28 */
8363a6c42ace Accept DVB API 5, patch by Steven Brudenell, steven.brudenell gmail com.
diego
parents: 28051
diff changeset
29
8363a6c42ace Accept DVB API 5, patch by Steven Brudenell, steven.brudenell gmail com.
diego
parents: 28051
diff changeset
30 #if (DVB_API_VERSION == 3 && DVB_API_VERSION_MINOR >= 1) || DVB_API_VERSION == 5
14382
42d792053cde added support for ATSC tuner and conf.file
nicodvb
parents: 13155
diff changeset
31 #define DVB_ATSC 1
42d792053cde added support for ATSC tuner and conf.file
nicodvb
parents: 13155
diff changeset
32 #endif
28667
8363a6c42ace Accept DVB API 5, patch by Steven Brudenell, steven.brudenell gmail com.
diego
parents: 28051
diff changeset
33
14382
42d792053cde added support for ATSC tuner and conf.file
nicodvb
parents: 13155
diff changeset
34 #endif
9610
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
35
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
36
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
37 #define DVB_CHANNEL_LOWER -1
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
38 #define DVB_CHANNEL_HIGHER 1
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
39
10395
362a0e40491b fix compilation (uint*_t undefined)
colin
parents: 9611
diff changeset
40 #include "inttypes.h"
9610
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
41
12803
168238f8c715 added multi-pid parsing code (up to 15), pid 0 is always added (for the PAT)
nicodvb
parents: 12309
diff changeset
42 #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
43 #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
44 #endif
9610
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
45
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
46 typedef struct {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
47 char *name;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
48 int freq, srate, diseqc, tone;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
49 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
50 int tpid, dpid1, dpid2, progid, ca, pids[DMX_FILTER_SIZE], pids_cnt;
9610
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
51 fe_spectral_inversion_t inv;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
52 fe_modulation_t mod;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
53 fe_transmit_mode_t trans;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
54 fe_bandwidth_t bw;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
55 fe_guard_interval_t gi;
13155
fd40ef23053b added forgotten dvb-t params lp_coderate and hierarchy
nicodvb
parents: 12803
diff changeset
56 fe_code_rate_t cr, cr_lp;
fd40ef23053b added forgotten dvb-t params lp_coderate and hierarchy
nicodvb
parents: 12803
diff changeset
57 fe_hierarchy_t hier;
9610
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
58 } dvb_channel_t;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
59
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
60 typedef struct {
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
61 uint16_t NUM_CHANNELS;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
62 uint16_t current;
12309
5c375ea5fb0f new configuration structure, gcc warn silencing
nicodvb
parents: 11872
diff changeset
63 dvb_channel_t *channels;
9610
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
64 } dvb_channels_list;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
65
12309
5c375ea5fb0f new configuration structure, gcc warn silencing
nicodvb
parents: 11872
diff changeset
66 typedef struct {
5c375ea5fb0f new configuration structure, gcc warn silencing
nicodvb
parents: 11872
diff changeset
67 int type;
5c375ea5fb0f new configuration structure, gcc warn silencing
nicodvb
parents: 11872
diff changeset
68 dvb_channels_list *list;
5c375ea5fb0f new configuration structure, gcc warn silencing
nicodvb
parents: 11872
diff changeset
69 char *name;
5c375ea5fb0f new configuration structure, gcc warn silencing
nicodvb
parents: 11872
diff changeset
70 int devno;
5c375ea5fb0f new configuration structure, gcc warn silencing
nicodvb
parents: 11872
diff changeset
71 } dvb_card_config_t;
5c375ea5fb0f new configuration structure, gcc warn silencing
nicodvb
parents: 11872
diff changeset
72
5c375ea5fb0f new configuration structure, gcc warn silencing
nicodvb
parents: 11872
diff changeset
73 typedef struct {
5c375ea5fb0f new configuration structure, gcc warn silencing
nicodvb
parents: 11872
diff changeset
74 int count;
5c375ea5fb0f new configuration structure, gcc warn silencing
nicodvb
parents: 11872
diff changeset
75 dvb_card_config_t *cards;
5c375ea5fb0f new configuration structure, gcc warn silencing
nicodvb
parents: 11872
diff changeset
76 void *priv;
5c375ea5fb0f new configuration structure, gcc warn silencing
nicodvb
parents: 11872
diff changeset
77 } dvb_config_t;
9610
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
78
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
79 typedef struct {
10560
11826d9f90c7 this patch fixes
arpi
parents: 10395
diff changeset
80 int card;
20661
d698ee121edc cosmetics: reformatted with only tabs
nicodvb
parents: 20659
diff changeset
81 int fe_fd;
d698ee121edc cosmetics: reformatted with only tabs
nicodvb
parents: 20659
diff changeset
82 int sec_fd;
d698ee121edc cosmetics: reformatted with only tabs
nicodvb
parents: 20659
diff changeset
83 int demux_fd[3], demux_fds[DMX_FILTER_SIZE], demux_fds_cnt;
d698ee121edc cosmetics: reformatted with only tabs
nicodvb
parents: 20659
diff changeset
84 int dvr_fd;
9610
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
85
20661
d698ee121edc cosmetics: reformatted with only tabs
nicodvb
parents: 20659
diff changeset
86 dvb_config_t *config;
d698ee121edc cosmetics: reformatted with only tabs
nicodvb
parents: 20659
diff changeset
87 dvb_channels_list *list;
10560
11826d9f90c7 this patch fixes
arpi
parents: 10395
diff changeset
88 int tuner_type;
11826d9f90c7 this patch fixes
arpi
parents: 10395
diff changeset
89 int is_on;
11826d9f90c7 this patch fixes
arpi
parents: 10395
diff changeset
90 int retry;
18561
15fbdb09330f configurable tuning timeout
nicodvb
parents: 17566
diff changeset
91 int timeout;
20659
31b525f90395 nonsense removal: compare old and new frequency in order to skip tuning
nicodvb
parents: 19271
diff changeset
92 int last_freq;
9610
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
93 } dvb_priv_t;
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
94
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
95
10560
11826d9f90c7 this patch fixes
arpi
parents: 10395
diff changeset
96 #define TUNER_SAT 1
11826d9f90c7 this patch fixes
arpi
parents: 10395
diff changeset
97 #define TUNER_TER 2
11826d9f90c7 this patch fixes
arpi
parents: 10395
diff changeset
98 #define TUNER_CBL 3
14382
42d792053cde added support for ATSC tuner and conf.file
nicodvb
parents: 13155
diff changeset
99 #define TUNER_ATSC 4
9610
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
100
28051
9e739bdb049c Get rid of pointless 'extern' keywords.
diego
parents: 27370
diff changeset
101 int dvb_step_channel(stream_t *, int);
9e739bdb049c Get rid of pointless 'extern' keywords.
diego
parents: 27370
diff changeset
102 int dvb_set_channel(stream_t *, int, int);
9e739bdb049c Get rid of pointless 'extern' keywords.
diego
parents: 27370
diff changeset
103 dvb_config_t *dvb_get_config(void);
9e739bdb049c Get rid of pointless 'extern' keywords.
diego
parents: 27370
diff changeset
104 void dvb_free_config(dvb_config_t *config);
9610
76c6d8f1ebf5 this is a combo patch that:
arpi
parents:
diff changeset
105
26029
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25535
diff changeset
106 #endif /* MPLAYER_DVBIN_H */